drg_cms 0.4.39 → 0.4.53
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +49 -0
- data/app/assets/images/drg_cms/file_manager.png +0 -0
- data/app/assets/javascripts/drg_cms/drg_cms.js +8 -8
- data/app/assets/stylesheets/drg_cms/drg_cms.css +22 -20
- data/app/controllers/cmsedit_controller.rb +170 -114
- data/app/controllers/dc_application_controller.rb +142 -56
- data/app/controllers/dc_common_controller.rb +56 -34
- data/app/controllers/dc_main_controller.rb +1 -4
- data/app/controllers/drgcms_controls/dc_page_controls.rb +3 -0
- data/app/forms/all_options.yml +3 -0
- data/app/forms/cms_menu.yml +100 -117
- data/app/forms/dc_design.yml +1 -1
- data/app/forms/dc_ident.yml +37 -0
- data/app/forms/dc_menu_item.yml +1 -1
- data/app/forms/dc_permission.yml +1 -1
- data/app/forms/dc_site.yml +4 -0
- data/app/helpers/cmsedit_helper.rb +44 -80
- data/app/helpers/dc_ad_renderer.rb +27 -15
- data/app/helpers/dc_application_helper.rb +433 -196
- data/app/helpers/dc_big_menu_renderer.rb +40 -40
- data/app/helpers/dc_captcha_renderer.rb +38 -25
- data/app/helpers/dc_common_renderer.rb +15 -48
- data/app/helpers/dc_menu_renderer.rb +30 -20
- data/app/helpers/dc_page_renderer.rb +14 -18
- data/app/helpers/dc_part_renderer.rb +45 -16
- data/app/helpers/dc_piece_renderer.rb +23 -29
- data/app/helpers/dc_poll_renderer.rb +31 -20
- data/app/helpers/dc_renderer.rb +5 -4
- data/app/helpers/dc_simple_menu_renderer.rb +90 -68
- data/app/models/{__dc_global_data.rb → __dc_stat.rb} +20 -21
- data/app/models/dc_ad.rb +13 -1
- data/app/models/dc_ad_stat.rb +6 -0
- data/app/models/dc_big_menu.rb +15 -2
- data/app/models/dc_big_table.rb +27 -4
- data/app/models/dc_big_table_locale.rb +7 -0
- data/app/models/dc_big_table_value.rb +7 -0
- data/app/models/dc_category.rb +9 -3
- data/app/models/dc_design.rb +50 -0
- data/app/models/dc_dummy.rb +41 -1
- data/app/models/dc_folder_permission.rb +9 -2
- data/app/models/{dc_global_data.rb → dc_ident.rb} +20 -22
- data/app/models/dc_journal.rb +9 -1
- data/app/models/dc_key_value_store.rb +41 -4
- data/app/models/dc_link.rb +7 -0
- data/app/models/dc_menu.rb +20 -3
- data/app/models/dc_menu_item.rb +7 -0
- data/app/models/dc_page.rb +31 -12
- data/app/models/dc_part.rb +34 -4
- data/app/models/dc_permission.rb +32 -12
- data/app/models/dc_piece.rb +32 -4
- data/app/models/dc_policy.rb +17 -11
- data/app/models/dc_policy_role.rb +12 -7
- data/app/models/dc_policy_rule.rb +32 -4
- data/app/models/dc_poll.rb +8 -0
- data/app/models/dc_poll_item.rb +6 -0
- data/app/models/dc_simple_menu.rb +18 -3
- data/app/models/dc_simple_menu_item.rb +20 -2
- data/app/models/dc_site.rb +13 -3
- data/app/models/dc_stat.rb +8 -1
- data/app/models/dc_user.rb +18 -2
- data/app/models/dc_user_role.rb +7 -0
- data/app/models/dc_visit.rb +5 -0
- data/app/{helpers → models}/drgcms_form_field.rb +171 -73
- data/app/views/__dc_at_the_beginning/create.html.erb +9 -0
- data/app/views/__dc_at_the_beginning/index.html.erb +19 -0
- data/app/views/cmsedit/_edit_stuff.html.erb +2 -0
- data/app/views/cmsedit/_form.html.erb +0 -1
- data/app/views/dc_mail/subscribe.html.erb +0 -0
- data/config/initializers/kaminari_patch.rb +5 -4
- data/config/locales/drgcms_en.yml +4 -0
- data/config/locales/drgcms_sl.yml +1 -0
- data/config/locales/models_en.yml +14 -3
- data/config/locales/models_sl.yml +13 -4
- data/drg_cms.gemspec +4 -4
- data/lib/drg_cms.rb +37 -8
- data/lib/drg_cms/engine.rb +2 -2
- data/lib/drg_cms/version.rb +3 -2
- data/lib/tasks/at_the_beginning.yml +0 -0
- data/lib/tasks/dc_at_the_beginning.rake +118 -0
- data/lib/tasks/dc_cleanup.rake +19 -7
- data/lib/tasks/log_statistics.rb +66 -0
- data/lib/tasks/site_statistics.rake +29 -12
- data/test/dummy/app/controllers/application_controller.rb +1 -1
- data/test/dummy/app/helpers/application_helper.rb +1 -1
- metadata +15 -26
- data/README.rdoc +0 -3
- data/app/controllers/dc_at_the_beginning_controller.rb +0 -120
- data/app/controllers/dc_mail_controller.rb +0 -89
- data/app/forms/dc_forum_cat.yml +0 -54
- data/app/forms/dc_forum_forum.yml +0 -53
- data/app/forms/dc_forum_msg.yml +0 -124
- data/app/forms/dc_forum_privmsg.yml +0 -125
- data/app/forms/dc_forum_topic.yml +0 -131
- data/app/forms/dc_mail.yml +0 -88
- data/app/forms/dc_mail_address.yml +0 -56
- data/app/forms/dc_mail_list.yml +0 -44
- data/app/forms/dc_mail_list_member.yml +0 -42
- data/app/helpers/dc_mail_renderer.rb +0 -76
- data/app/models/dc_mail.rb +0 -64
- data/app/models/dc_mail_address.rb +0 -69
- data/app/models/dc_mail_list.rb +0 -48
- data/app/models/dc_mail_list_member.rb +0 -34
- data/app/models/dc_sendmail.rb +0 -48
@@ -21,24 +21,23 @@
|
|
21
21
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
22
|
#++
|
23
23
|
|
24
|
-
|
25
|
-
#
|
26
|
-
#
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
end
|
24
|
+
########################################################################
|
25
|
+
# Mongoid::Document model for dc_stat documents.
|
26
|
+
#
|
27
|
+
#
|
28
|
+
########################################################################
|
29
|
+
|
30
|
+
class DcStat #:nodoc:
|
31
|
+
include Mongoid::Document
|
32
|
+
include Mongoid::Timestamps
|
33
|
+
|
34
|
+
field :key1, type: String
|
35
|
+
field :key2, type: String
|
36
|
+
field :key3, type: String
|
37
|
+
field :value, type: Integer, default: 0
|
38
|
+
field :text1, type: String
|
39
|
+
field :text2, type: String
|
40
|
+
field :link, type: String
|
41
|
+
|
42
|
+
index( { key1: 1, key2: 1, key3: 1 } )
|
43
|
+
end
|
data/app/models/dc_ad.rb
CHANGED
@@ -21,6 +21,15 @@
|
|
21
21
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
22
|
#++
|
23
23
|
|
24
|
+
##########################################################################
|
25
|
+
# Mongoid::Document model for dc_ads collection.
|
26
|
+
#
|
27
|
+
# Ads can be defined as picture file, flash file or script.
|
28
|
+
#
|
29
|
+
# More than one ad can be shown on the same place of design. They are grouped by
|
30
|
+
# position field, have priority, valid time period and can be limited by number of
|
31
|
+
# clicks or displays.
|
32
|
+
##########################################################################
|
24
33
|
class DcAd
|
25
34
|
include Mongoid::Document
|
26
35
|
include Mongoid::Timestamps
|
@@ -31,7 +40,7 @@ class DcAd
|
|
31
40
|
field :file, type: String, default: ''
|
32
41
|
field :script, type: String, default: ''
|
33
42
|
field :link, type: String, default: ''
|
34
|
-
field :link_target,
|
43
|
+
field :link_target, type: String, default: ''
|
35
44
|
field :height, type: Integer
|
36
45
|
field :width, type: Integer
|
37
46
|
field :valid_from, type: DateTime
|
@@ -49,4 +58,7 @@ class DcAd
|
|
49
58
|
belongs_to :dc_site
|
50
59
|
|
51
60
|
index( { dc_site: 1, position: 1 } )
|
61
|
+
|
62
|
+
validates :position, presence: true
|
63
|
+
validates :description, presence: true
|
52
64
|
end
|
data/app/models/dc_ad_stat.rb
CHANGED
@@ -21,6 +21,12 @@
|
|
21
21
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
22
|
#++
|
23
23
|
|
24
|
+
##########################################################################
|
25
|
+
# Mongoid::Document model for dc_ad_stats collection.
|
26
|
+
#
|
27
|
+
# Documents in this collection holds data about displays and clicks on ads which
|
28
|
+
# can be further processed for statistical purposes.
|
29
|
+
##########################################################################
|
24
30
|
class DcAdStat
|
25
31
|
include Mongoid::Document
|
26
32
|
include Mongoid::Timestamps
|
data/app/models/dc_big_menu.rb
CHANGED
@@ -20,6 +20,15 @@
|
|
20
20
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
21
21
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
22
|
#++
|
23
|
+
|
24
|
+
##########################################################################
|
25
|
+
# Mongoid::Document model for dc_big_menus collection.
|
26
|
+
#
|
27
|
+
# This menu system is still experimental. It can be used for sites with menu
|
28
|
+
# which has many sub menus each linked to its own document. Unlike other menu
|
29
|
+
# models which provide menu in single document (with embedded documents as sub menus) this
|
30
|
+
# menu system provides one document for every menu option.
|
31
|
+
##########################################################################
|
23
32
|
class DcBigMenu
|
24
33
|
include Mongoid::Document
|
25
34
|
include Mongoid::Timestamps
|
@@ -41,7 +50,9 @@ class DcBigMenu
|
|
41
50
|
index( { dc_site_id: 1, parent: 1 } )
|
42
51
|
index( { page_id: 1 } )
|
43
52
|
|
44
|
-
###########################################################################
|
53
|
+
###########################################################################
|
54
|
+
# Process submenu. Subroutine of choices4_menu.
|
55
|
+
###########################################################################
|
45
56
|
def self.add_sub_menu(site, parent, rez, level)
|
46
57
|
#TODO Make this faster
|
47
58
|
only(:_id,:parent,:caption).where(dc_site_id: site._id, parent: parent).sort( order: 1).to_a.each do |m|
|
@@ -50,7 +61,9 @@ def self.add_sub_menu(site, parent, rez, level)
|
|
50
61
|
end
|
51
62
|
end
|
52
63
|
|
53
|
-
###########################################################################
|
64
|
+
###########################################################################
|
65
|
+
# Returns available menu choices for selecting menu
|
66
|
+
###########################################################################
|
54
67
|
def self.choices4_menu(site)
|
55
68
|
rez = []
|
56
69
|
self.add_sub_menu(site, nil, rez, -1)
|
data/app/models/dc_big_table.rb
CHANGED
@@ -20,6 +20,29 @@
|
|
20
20
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
21
21
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
22
|
#++
|
23
|
+
|
24
|
+
##########################################################################
|
25
|
+
# Mongoid::Document model for dc_big_table collection.
|
26
|
+
#
|
27
|
+
# Big table is meant to be a common space for defining default choices for select fields on forms.
|
28
|
+
# Documents are organized as key-value pair with the difference that values for the key can
|
29
|
+
# be defined for every site and can also be localized.
|
30
|
+
#
|
31
|
+
# Usage (as used in forms):
|
32
|
+
#
|
33
|
+
# In the example administrator may help user by providing values that can be used
|
34
|
+
# on DcAd document position field by defining them in ads-position key of big table.
|
35
|
+
# Example is from dc_ads.yml form.
|
36
|
+
#
|
37
|
+
# 10:
|
38
|
+
# name: position
|
39
|
+
# type: text_with_select
|
40
|
+
# eval: dc_big_table 'ads-positions'
|
41
|
+
# html:
|
42
|
+
# size: 20
|
43
|
+
#
|
44
|
+
# dc_big_table collection embeds many DcBigTableValue documents.
|
45
|
+
##########################################################################
|
23
46
|
class DcBigTable
|
24
47
|
include Mongoid::Document
|
25
48
|
include Mongoid::Timestamps
|
@@ -34,17 +57,17 @@ class DcBigTable
|
|
34
57
|
|
35
58
|
embeds_many :dc_big_table_values
|
36
59
|
|
37
|
-
index( {
|
60
|
+
index( { key: 1, site_id: 1 } )
|
38
61
|
|
39
62
|
validates :key, presence: true
|
40
63
|
validates :description, presence: true
|
41
64
|
|
42
65
|
########################################################################
|
43
|
-
#
|
66
|
+
# Will return possible choices for specified key prepared for usega in select input field.
|
44
67
|
########################################################################
|
45
|
-
def self.choices4(
|
68
|
+
def self.choices4(key, site, locale=nil)
|
46
69
|
a = []
|
47
|
-
r = find(
|
70
|
+
r = find(key: key, site: site)
|
48
71
|
if r
|
49
72
|
r.dc_big_table_values.each do |v|
|
50
73
|
desc = v.description
|
@@ -20,6 +20,13 @@
|
|
20
20
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
21
21
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
22
|
#++
|
23
|
+
|
24
|
+
#####################################################################
|
25
|
+
# Mongoid::Document model for dc_big_table_locale embedded document.
|
26
|
+
#
|
27
|
+
# Documents are embedded in DcBigTableValue documents. Every value defined in
|
28
|
+
# DcBigTableValue parent document can have its locale translation.
|
29
|
+
#####################################################################
|
23
30
|
class DcBigTableLocale
|
24
31
|
include Mongoid::Document
|
25
32
|
include Mongoid::Timestamps
|
@@ -20,6 +20,13 @@
|
|
20
20
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
21
21
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
22
|
#++
|
23
|
+
|
24
|
+
#####################################################################
|
25
|
+
# Mongoid::Document model for dc_big_table_values embedded documents.
|
26
|
+
#
|
27
|
+
# Documents are embedded in DcBigTable document. Every value defined has its own description,
|
28
|
+
# which can further be translated in embedded DcBigTableLocale documents.
|
29
|
+
#####################################################################
|
23
30
|
class DcBigTableValue
|
24
31
|
include Mongoid::Document
|
25
32
|
include Mongoid::Timestamps
|
data/app/models/dc_category.rb
CHANGED
@@ -20,6 +20,13 @@
|
|
20
20
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
21
21
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
22
|
#++
|
23
|
+
|
24
|
+
#####################################################################
|
25
|
+
# Mongoid::Document model for dc_categories collection.
|
26
|
+
#
|
27
|
+
# Categories are used on DcPage documents for grouping documents. Categorization
|
28
|
+
# is most useful for grouping news, blog entries ...
|
29
|
+
#####################################################################
|
23
30
|
class DcCategory
|
24
31
|
include Mongoid::Document
|
25
32
|
include Mongoid::Timestamps
|
@@ -39,10 +46,9 @@ class DcCategory
|
|
39
46
|
index ctype: 1
|
40
47
|
|
41
48
|
#########################################################################
|
42
|
-
#
|
49
|
+
# Returns all values where parent value is nil (top level parent).
|
43
50
|
#########################################################################
|
44
|
-
|
45
|
-
def self.values_for_parent
|
51
|
+
def self.values_for_parent #:nodoc:
|
46
52
|
where(parent: nil).sort(name: 1).inject([]) {|r,v| r << [v.name, v._id]}
|
47
53
|
end
|
48
54
|
end
|
data/app/models/dc_design.rb
CHANGED
@@ -20,6 +20,55 @@
|
|
20
20
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
21
21
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
22
|
#++
|
23
|
+
|
24
|
+
########################################################################
|
25
|
+
# Mongoid::Document model for dc_designs collection.
|
26
|
+
#
|
27
|
+
# Designs are essential parts of DRG CMS. Every DcPage document must have its design document defined.
|
28
|
+
# If DcPage documents are anchors for url addresses, DcDesign documents define how
|
29
|
+
# will page data be rendered in browser.
|
30
|
+
#
|
31
|
+
# DcDesign documents define what would normally be written into Rails view file. The code
|
32
|
+
# is saved in the body field of DcDesign document. If you prefere Rails way, enter view
|
33
|
+
# file name into rails_view field and put your code into file into views directory
|
34
|
+
# (ex. designs/home_page for ../views/designs/home_page.html.erb file).
|
35
|
+
#
|
36
|
+
# If you choose to save code to Rails view file you must add one top and bottom line to every source file.
|
37
|
+
# Top line will provide CMS edit menu, bottom line will provide additional CSS and javascript code
|
38
|
+
# scooped when renderers are called.
|
39
|
+
#
|
40
|
+
# Example (as written in body of dc_design):
|
41
|
+
# <div id="site">
|
42
|
+
# <div id="site-top-bg">
|
43
|
+
# <div id="site-top"><div id="logo"><%= dc_render(:dc_piece, name: 'site-top') %></div>
|
44
|
+
# <div id="login"><%= dc_render(:common, method: 'login') %></div>
|
45
|
+
# </div>
|
46
|
+
# <%= dc_render(:dc_menu, name: 'test-menu') %>
|
47
|
+
# </div>
|
48
|
+
#
|
49
|
+
# <div id="page"><%= dc_render(:dc_page) %></div>
|
50
|
+
# </div>
|
51
|
+
# <div id="site-bottom"><%= dc_render(:dc_piece, name: 'site-bottom') %></div>
|
52
|
+
#
|
53
|
+
# Example (as written in Rails view file):
|
54
|
+
#
|
55
|
+
# <!-- Pay attention on lines added at the top and bottom of file -->
|
56
|
+
# <%= render partial: 'cmsedit/edit_stuff' if session[:edit_mode] > 0 %>
|
57
|
+
#
|
58
|
+
# <div id="site">
|
59
|
+
# <div id="site-top-bg">
|
60
|
+
# <div id="site-top"><div id="logo"><%= dc_render(:dc_piece, name: 'site-top') %></div>
|
61
|
+
# <div id="login"><%= dc_render(:common, method: 'login') %></div>
|
62
|
+
# </div>
|
63
|
+
# <%= dc_render(:dc_menu, name: 'test-menu') %>
|
64
|
+
# </div>
|
65
|
+
#
|
66
|
+
# <div id="page"><%= dc_render(:dc_page) %></div>
|
67
|
+
# </div>
|
68
|
+
# <div id="site-bottom"><%= dc_render(:dc_piece, name: 'site-bottom') %></div>
|
69
|
+
#
|
70
|
+
# <style type="text/css"><%= @css.html_safe %></style><%= javascript_tag @js %>
|
71
|
+
########################################################################
|
23
72
|
class DcDesign
|
24
73
|
include Mongoid::Document
|
25
74
|
include Mongoid::Timestamps
|
@@ -35,6 +84,7 @@ class DcDesign
|
|
35
84
|
field :updated_by, type: BSON::ObjectId
|
36
85
|
|
37
86
|
embeds_many :dc_parts
|
87
|
+
# embeds_many :dc_parts, as: :dc_parts
|
38
88
|
|
39
89
|
index( { name: 1 }, { unique: true } )
|
40
90
|
|
data/app/models/dc_dummy.rb
CHANGED
@@ -21,10 +21,50 @@
|
|
21
21
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
22
|
#++
|
23
23
|
|
24
|
+
########################################################################
|
25
|
+
# Mongoid::Document model for dc_dummy collection.
|
26
|
+
#
|
27
|
+
# Which is not collection at all. DcDummy model is used for entering data on forms
|
28
|
+
# where data will not be saved to database but will instead be processed by custom
|
29
|
+
# made routine. For example entering begin and end date on report.
|
30
|
+
#
|
31
|
+
# Example (as used in forms):
|
32
|
+
#
|
33
|
+
# table: dc_dummy
|
34
|
+
# title: Enter time period
|
35
|
+
#
|
36
|
+
# form:
|
37
|
+
# actions:
|
38
|
+
# 1:
|
39
|
+
# type: ajax
|
40
|
+
# method: post
|
41
|
+
# controller: reports
|
42
|
+
# action: do_some_report
|
43
|
+
# caption: Run report
|
44
|
+
#
|
45
|
+
# fields:
|
46
|
+
# 10:
|
47
|
+
# name: date_start
|
48
|
+
# type: date_picker
|
49
|
+
# caption: Start date
|
50
|
+
# 20:
|
51
|
+
# name: date_end
|
52
|
+
# type: date_picker
|
53
|
+
# caption: End date
|
54
|
+
#
|
55
|
+
# And suppose your report saved data to file named public/report.pdf. Put this line at the end of do_some_report
|
56
|
+
# action:
|
57
|
+
# render inline: { :window_report => '/report.pdf' }.to_json, formats: 'js'
|
58
|
+
#
|
59
|
+
# As result report.pdf file will be opened in new browser window.
|
60
|
+
########################################################################
|
24
61
|
class DcDummy
|
25
62
|
include Mongoid::Document
|
26
63
|
|
27
|
-
|
64
|
+
########################################################################
|
65
|
+
# Ignore errors.
|
66
|
+
########################################################################
|
67
|
+
def method_missing(m, *args, &block) #:nodoc:
|
28
68
|
nil
|
29
69
|
end
|
30
70
|
end
|
@@ -22,7 +22,14 @@
|
|
22
22
|
#++
|
23
23
|
|
24
24
|
#########################################################################
|
25
|
-
#
|
25
|
+
# Mongoid::Document model for dc_folder_permissions collection.
|
26
|
+
#
|
27
|
+
# Similar to DcPermission DcFolderPermission model defines documents
|
28
|
+
# for accessing file system. Permissions defined on a parent folder automatically
|
29
|
+
# apply to all folders below unless folder on lower level has its own permission document.
|
30
|
+
#
|
31
|
+
# At least one document must exist for file manager to work. Default document
|
32
|
+
# usually defines that admin role has ADMINISTRATOR rights on top level folder.
|
26
33
|
#########################################################################
|
27
34
|
class DcFolderPermission
|
28
35
|
include Mongoid::Document
|
@@ -30,7 +37,7 @@ include Mongoid::Timestamps
|
|
30
37
|
|
31
38
|
field :folder_name, type: String
|
32
39
|
field :inherited, type: Boolean, default: true
|
33
|
-
field :is_default, type: Boolean, default: false
|
40
|
+
#field :is_default, type: Boolean, default: false
|
34
41
|
field :active, type: Boolean, default: true
|
35
42
|
|
36
43
|
embeds_many :dc_policy_rules
|
@@ -1,5 +1,5 @@
|
|
1
1
|
#--
|
2
|
-
# Copyright (c)
|
2
|
+
# Copyright (c) 2015+ Damjan Rems
|
3
3
|
#
|
4
4
|
# Permission is hereby granted, free of charge, to any person obtaining
|
5
5
|
# a copy of this software and associated documentation files (the
|
@@ -21,24 +21,22 @@
|
|
21
21
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
22
|
#++
|
23
23
|
|
24
|
-
|
25
|
-
#
|
26
|
-
#
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
end
|
44
|
-
end
|
24
|
+
########################################################################
|
25
|
+
# Mongoid::Document model for dc_idents emdedded documents.
|
26
|
+
#
|
27
|
+
# dc_idents are similar to mongoid hash structure and can be used for saveing
|
28
|
+
# key/value object. Fact is that I have overlooked the existance of MongoDB Hash field type
|
29
|
+
# and this structure will be used until drg_forms_field which will use Hash field type is created.
|
30
|
+
#########################################################################
|
31
|
+
class DcIdent
|
32
|
+
include Mongoid::Document
|
33
|
+
include Mongoid::Timestamps
|
34
|
+
|
35
|
+
field :key, type: String
|
36
|
+
field :value, type: String
|
37
|
+
|
38
|
+
embedded_in :idents, polymorphic: true
|
39
|
+
|
40
|
+
validates :key, presence: true
|
41
|
+
validates :value, presence: true
|
42
|
+
end
|
data/app/models/dc_journal.rb
CHANGED
@@ -21,6 +21,14 @@
|
|
21
21
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
22
|
#++
|
23
23
|
|
24
|
+
#########################################################################
|
25
|
+
# Mongoid::Document model for dc_journals collection.
|
26
|
+
#
|
27
|
+
# dc_journals collections saves all data that has been updated through cmsedit
|
28
|
+
# controller. It saves old and new values of changed fields and can be used for
|
29
|
+
# instant restore of single document field or tracking who and when updated
|
30
|
+
# particular document.
|
31
|
+
#########################################################################
|
24
32
|
class DcJournal
|
25
33
|
include Mongoid::Document
|
26
34
|
|
@@ -32,7 +40,7 @@ class DcJournal
|
|
32
40
|
field :ids, type: String
|
33
41
|
field :ip, type: String
|
34
42
|
field :time, type: DateTime
|
35
|
-
field :diff,
|
43
|
+
field :diff, type: String
|
36
44
|
|
37
45
|
index( { user_id: 1, time: -1 } )
|
38
46
|
index( { time: 1 } )
|