c80_estate 0.1.0.7 → 0.1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 51be21dfc7b817fbf3c99cad584bfa7c2aec9336
4
- data.tar.gz: d1a7db257d0b45d4d2d390cfe0ac782b5bdbfefc
3
+ metadata.gz: ef45a0734f727ca6c28d890cacc0f5b90d137f77
4
+ data.tar.gz: 95cf465ec2c7414913fb91bcd7f27653851bb714
5
5
  SHA512:
6
- metadata.gz: d5d01cbf64293131e35ce9a26a012a1ef0b537725ca363c5e77486fd777effbed15c5b9f3bdc2aa41acc487c8c8c955056c2b118ac82566eb4c775509991506e
7
- data.tar.gz: 292badf21737ac6f62a7b5155005437249179fbb73cb3e31057973026f9712110bed46a1280320c66f0c14233b74a832e2d5b2d75db39fbb2d16440f67cd0bb1
6
+ metadata.gz: c343480a6bfe00c558a894e34bab39bbb56c9f9d8d4f347aea72cf87e930450132a90df7645166cc0388194aceba22b2e74aa84e37c633e9bd22deb26eddf938
7
+ data.tar.gz: 4eb510782d6a2bda0d9218c0b22bad51104c4586e241ce6a1dde9f9747cea881413ce448d6082e8f00f68648a90b000c7c48c33d6009cbf828c08e3f3fe5d56c
@@ -0,0 +1,64 @@
1
+ ActiveAdmin.register AdminUser do
2
+
3
+ permit_params :email,
4
+ :password,
5
+ :password_confirmation,
6
+ :roles_attributes => [:id, :role_type_id]
7
+
8
+ batch_action :destroy, false
9
+
10
+ controller do
11
+
12
+ def update
13
+ if params[:admin_user][:password].blank?
14
+ params[:admin_user].delete('password')
15
+ params[:admin_user].delete('password_confirmation')
16
+ end
17
+ super
18
+ end
19
+
20
+ end
21
+
22
+ # menu :if => proc {current_admin_user.email == "tz007@mail.ru"}
23
+ menu label: 'Пользователи', :if => proc { current_admin_user.can_view_users? }
24
+ index do
25
+ selectable_column
26
+ id_column
27
+ column :email
28
+ column :current_sign_in_at
29
+ column :sign_in_count
30
+ column :created_at
31
+ column :role do |user|
32
+ user.role_type_title
33
+ end
34
+ actions
35
+ end
36
+
37
+ filter :email
38
+ filter :current_sign_in_at
39
+ filter :sign_in_count
40
+ filter :created_at
41
+
42
+ form do |f|
43
+ f.inputs "Свойства" do
44
+ f.input :email
45
+
46
+ if f.object.new_record?
47
+ f.input :password
48
+ f.input :password_confirmation
49
+ else
50
+ # f.input :password
51
+ # f.input :password_confirmation
52
+ end
53
+
54
+ # f.input :roles
55
+ f.has_many :roles,
56
+ new_record: true,
57
+ allow_destroy: false do |r|
58
+ r.input :role_type
59
+ end
60
+ end
61
+ f.actions
62
+ end
63
+
64
+ end
@@ -13,21 +13,72 @@ ActiveAdmin.register C80Estate::Area, as: 'Area' do
13
13
  :atype_id,
14
14
  :property_id,
15
15
  :astatus_ids => [],
16
- :aphotos_attributes => [:id,:image,:_destroy],
16
+ :aphotos_attributes => [:id, :image, :_destroy],
17
17
  :item_props_attributes => [:value, :_destroy, :prop_name_id, :id]
18
18
 
19
+ batch_action :destroy, false
20
+
21
+ batch_action 'Задать цену', form: {
22
+ # type: %w[Offensive Spam Other],
23
+ val: :text,
24
+ # notes: :textarea,
25
+ # hide: :checkbox,
26
+ # date: :datepicker
27
+ } do |ids, inputs|
28
+ # inputs is a hash of all the form fields you requested
29
+ redirect_to collection_path, notice: [ids, inputs].to_s
30
+
31
+ end
32
+
33
+ batch_action 'Задать объём площади', form: {
34
+ # type: %w[Offensive Spam Other],
35
+ val: :text,
36
+ # notes: :textarea,
37
+ # hide: :checkbox,
38
+ # date: :datepicker
39
+ } do |ids, inputs|
40
+ # inputs is a hash of all the form fields you requested
41
+ redirect_to collection_path, notice: [ids, inputs].to_s
42
+ end
43
+
44
+ config.clear_action_items!
45
+
46
+ action_item :new_model, :only => :index do
47
+ if current_admin_user.can_create_areas?
48
+ link_to I18n.t("active_admin.new_model"), '/admin/areas/new', method: :get
49
+ end
50
+ end
51
+
52
+ action_item only: [:show] do
53
+ if current_admin_user.can_edit_area?(resource)
54
+ link_to I18n.t("active_admin.edit_model"), edit_admin_area_path(resource)
55
+ end
56
+ end
57
+
58
+ action_item only: [:show] do
59
+ if current_admin_user.can_delete_area?
60
+ link_to I18n.t("active_admin.delete_model"),
61
+ admin_area_path(resource),
62
+ data: {
63
+ confirm: 'Вы уверены, что хотите удалить это?',
64
+ method: 'delete'
65
+ }
66
+ # <a class="delete_link member_link" data-confirm="Вы уверены, что хотите удалить это?" rel="nofollow" data-method="delete" href="/admin/areas/1">Удалить</a>
67
+ end
68
+ end
69
+
19
70
  config.sort_order = 'id_asc'
20
71
 
21
72
  filter :atype_id,
22
73
  :label => 'Тип площади',
23
74
  :as => :select,
24
- :collection => -> {C80Estate::Atype.all.map { |p| ["#{p.title}", p.id]}},
25
- :input_html => { :class => 'selectpicker', 'data-size' => "10", 'data-width' => '100%'}
75
+ :collection => -> { C80Estate::Atype.all.map { |p| ["#{p.title}", p.id] } },
76
+ :input_html => {:class => 'selectpicker', 'data-size' => "10", 'data-width' => '100%'}
26
77
  filter :property_id,
27
78
  :label => 'Объект недвижимости',
28
79
  :as => :select,
29
- :collection => -> {C80Estate::Property.all.map { |p| ["#{p.title}", p.id]}},
30
- :input_html => { :class => 'selectpicker', 'data-size' => "10", 'data-width' => '100%'}
80
+ :collection => -> { C80Estate::Property.all.map { |p| ["#{p.title}", p.id] } },
81
+ :input_html => {:class => 'selectpicker', 'data-size' => "10", 'data-width' => '100%'}
31
82
 
32
83
  # filter :item_prop_square_val_in,
33
84
  # :as => :string,
@@ -36,10 +87,10 @@ ActiveAdmin.register C80Estate::Area, as: 'Area' do
36
87
  filter :item_prop_square_val_in,
37
88
  :as => :string,
38
89
  :label => 'Площадь (м.кв.)',
39
- :input_html => { data: {
90
+ :input_html => {data: {
40
91
  provide: 'slider',
41
- slider_ticks: C80Estate::ItemProp.all_uniq_values(9).to_json, #'[0, 1, 2, 3]',
42
- slider_labels: C80Estate::ItemProp.all_uniq_values(9).to_json, #'["none", short", "medium","long"]',
92
+ slider_ticks: C80Estate::ItemProp.all_uniq_values(9).to_json, #'[0, 1, 2, 3]',
93
+ slider_labels: C80Estate::ItemProp.all_uniq_values(9).to_json, #'["none", short", "medium","long"]',
43
94
  slider_min: C80Estate::ItemProp.all_uniq_values(9).last,
44
95
  slider_max: C80Estate::ItemProp.all_uniq_values(9).first,
45
96
  slider_step: 1,
@@ -50,41 +101,41 @@ ActiveAdmin.register C80Estate::Area, as: 'Area' do
50
101
  filter :item_prop_price_val_in,
51
102
  :as => :string,
52
103
  :label => 'Цена (руб/м.кв в месяц)',
53
- :input_html => { data: {
54
- provide: 'slider',
55
- slider_ticks: C80Estate::ItemProp.all_uniq_values(1).to_json, #'[0, 1, 2, 3]',
56
- slider_labels: C80Estate::ItemProp.all_uniq_values(1).to_json, #'["none", short", "medium","long"]',
57
- slider_min: C80Estate::ItemProp.all_uniq_values(1).last,
58
- slider_max: C80Estate::ItemProp.all_uniq_values(1).first,
59
- slider_step: 1,
60
- slider_value: 0,
61
- slider_range: true
104
+ :input_html => {data: {
105
+ provide: 'slider',
106
+ slider_ticks: C80Estate::ItemProp.all_uniq_values(1).to_json, #'[0, 1, 2, 3]',
107
+ slider_labels: C80Estate::ItemProp.all_uniq_values(1).to_json, #'["none", short", "medium","long"]',
108
+ slider_min: C80Estate::ItemProp.all_uniq_values(1).last,
109
+ slider_max: C80Estate::ItemProp.all_uniq_values(1).first,
110
+ slider_step: 1,
111
+ slider_value: 0,
112
+ slider_range: true
62
113
  }}
63
114
 
64
115
  filter :item_prop_oenter_in,
65
116
  :as => :select,
66
- :collection => [['Есть',11],['Нет',10]],
117
+ :collection => [['Есть', 11], ['Нет', 10]],
67
118
  :label => 'Отдельный вход с улицы',
68
- :input_html => { :class => 'selectpicker', 'data-size' => "3", 'data-width' => '100%'}
119
+ :input_html => {:class => 'selectpicker', 'data-size' => "3", 'data-width' => '100%'}
69
120
 
70
121
  filter :item_prop_floor_val_in,
71
122
  :as => :select,
72
123
  :collection => -> { C80Estate::ItemProp.all_uniq_values(5) },
73
124
  :label => 'Этаж',
74
- :input_html => { :class => 'selectpicker', 'data-size' => "3", 'data-width' => '100%'}
125
+ :input_html => {:class => 'selectpicker', 'data-size' => "3", 'data-width' => '100%'}
75
126
 
76
127
  # filter :title
77
128
  filter :assigned_person_id,
78
129
  :label => 'Назначенный пользователь',
79
130
  :as => :select,
80
- :collection => -> {AdminUser.all.map{|u| ["#{u.email}", u.id]}},
81
- :input_html => { :class => 'selectpicker', 'data-size' => "10", 'data-width' => '100%'}
131
+ :collection => -> { AdminUser.all.map { |u| ["#{u.email}", u.id] } },
132
+ :input_html => {:class => 'selectpicker', 'data-size' => "10", 'data-width' => '100%'}
82
133
  filter :created_at
83
134
  filter :updated_at
84
135
 
85
- scope "All", :all_areas
86
- scope "Free", :free_areas
87
- scope "Busy", :busy_areas
136
+ scope "All", :all_areas
137
+ scope "Free", :free_areas
138
+ scope "Busy", :busy_areas
88
139
 
89
140
  index do
90
141
  selectable_column
@@ -93,29 +144,40 @@ ActiveAdmin.register C80Estate::Area, as: 'Area' do
93
144
  area.atype_title
94
145
  end
95
146
  column :property do |area|
96
- area.property_title
147
+ "<div class='image_vertical properties_index_logo'>
148
+ <span></span><img src='#{image_path(area.property.logo_path)}'>
149
+ </div><span class='properties_index_logo_title'>#{area.property_title}</span>".html_safe
150
+
97
151
  end
98
152
  column :astatuses do |area|
99
- area.astatus_title
153
+ "<span class='status_#{area.astatus_tag}'>#{area.astatus_title}</span>".html_safe
100
154
  end
101
155
  column :assigned_person do |area|
102
156
  area.assigned_person_title
103
157
  end
104
- actions
158
+ # actions
159
+ column '' do |area|
160
+ link_to I18n.t("active_admin.view"), "/admin/areas/#{area.id}", class: 'member_link'
161
+ end
162
+ column '' do |area|
163
+ if current_admin_user.can_edit_area?(area)
164
+ link_to I18n.t("active_admin.edit"), "/admin/areas/#{area.id}/edit", class: 'member_link'
165
+ end
166
+ end
105
167
  end
106
168
 
107
169
  form(:html => {:multipart => true}) do |f|
108
170
 
109
171
  f.inputs 'Свойства' do
110
172
  f.input :title
111
- f.input :atype, :input_html => { :class => 'selectpicker', 'data-size' => "10", 'data-width' => '400px'}
112
- f.input :property, :input_html => { :class => 'selectpicker', 'data-size' => "10", 'data-width' => '400px'}
173
+ f.input :atype, :input_html => {:class => 'selectpicker', 'data-size' => "10", 'data-width' => '400px'}
174
+ f.input :property, :input_html => {:class => 'selectpicker', 'data-size' => "10", 'data-width' => '400px'}
113
175
  f.input :assigned_person,
114
- :input_html => { :class => 'selectpicker', 'data-size' => "10", 'data-width' => '400px'},
115
- :collection => AdminUser.all.map{|u| ["#{u.email}", u.id]}
116
- f.input :assigned_person_type, :input_html => { :value => "AdminUser" }, as: :hidden
176
+ :input_html => {:class => 'selectpicker', 'data-size' => "10", 'data-width' => '400px'},
177
+ :collection => AdminUser.all.map { |u| ["#{u.email}", u.id] }
178
+ f.input :assigned_person_type, :input_html => {:value => "AdminUser"}, as: :hidden
117
179
  f.input :astatuses,
118
- :input_html => { :class => 'selectpicker', 'data-size' => "10", 'data-width' => '400px', :multiple => false}
180
+ :input_html => {:class => 'selectpicker', 'data-size' => "10", 'data-width' => '400px', :multiple => false}
119
181
  f.input :desc, :as => :ckeditor
120
182
 
121
183
  f.inputs "Свойства" do
@@ -133,8 +195,11 @@ ActiveAdmin.register C80Estate::Area, as: 'Area' do
133
195
  :hint => image_tag(gp.object.image.thumb512)
134
196
  end
135
197
 
136
- f.input :owner_id, :input_html => { :value => current_admin_user.id }, as: :hidden
137
- f.input :owner_type, :input_html => { :value => "AdminUser" }, as: :hidden
198
+ if f.object.new_record?
199
+ f.input :owner_id, :input_html => {:value => current_admin_user.id}, as: :hidden
200
+ f.input :owner_type, :input_html => {:value => "AdminUser"}, as: :hidden
201
+ end
202
+
138
203
  end
139
204
 
140
205
  f.actions
@@ -1,7 +1,7 @@
1
1
  # ПОДкатегории строительных материалов
2
2
  ActiveAdmin.register C80Estate::Astatus, :as => 'Astatus' do
3
3
 
4
- menu :label => "Статусы", :parent => "Настройки"
4
+ menu :label => "Статусы", :parent => "Настройки", :if => proc { current_admin_user.can_view_settings? }
5
5
 
6
6
  permit_params :title
7
7
 
@@ -1,7 +1,7 @@
1
1
  # ПОДкатегории строительных материалов
2
2
  ActiveAdmin.register C80Estate::Atype, :as => 'Atype' do
3
3
 
4
- menu :label => "Типы", :parent => "Настройки"
4
+ menu :label => "Типы", :parent => "Настройки", :if => proc { current_admin_user.can_view_settings? }
5
5
 
6
6
  permit_params :title,
7
7
  :slug,
@@ -0,0 +1,25 @@
1
+ ActiveAdmin.register ActiveAdmin::Comment, :as => 'Comment' do
2
+
3
+ menu label: 'Комментарии', :if => proc { current_admin_user.can_view_comments? }
4
+
5
+ batch_action :destroy, false
6
+
7
+ config.clear_action_items!
8
+
9
+ index do
10
+ # selectable_column
11
+ id_column
12
+ column :author
13
+ column :resource
14
+ column :body
15
+ column :created_at
16
+ end
17
+
18
+ filter :author_id,
19
+ :label => 'Автор',
20
+ :as => :select,
21
+ :collection => -> { AdminUser.all.map { |u| ["#{u.email}", u.id] } },
22
+ :input_html => {:class => 'selectpicker', 'data-size' => "10", 'data-width' => '100%'}
23
+ filter :created_at
24
+
25
+ end
@@ -1,6 +1,6 @@
1
1
  ActiveAdmin.register C80Estate::PropName, as: 'PropName' do
2
2
 
3
- menu :label => "Имена свойств", :parent => "Настройки"
3
+ menu :label => "Имена свойств", :parent => "Настройки", :if => proc { current_admin_user.can_view_settings? }
4
4
 
5
5
  permit_params :title,
6
6
  :uom_id,
@@ -17,6 +17,16 @@ ActiveAdmin.register C80Estate::Property, as: 'Property' do
17
17
  :pphotos_attributes => [:id,:image,:_destroy],
18
18
  :plogos_attributes => [:id,:image,:_destroy]
19
19
 
20
+ batch_action :destroy, false
21
+
22
+ config.clear_action_items!
23
+
24
+ action_item :new_model, :only => :index do
25
+ if current_admin_user.can_create_properties?
26
+ link_to I18n.t("active_admin.new_model"), '/admin/properties/new', method: :get
27
+ end
28
+ end
29
+
20
30
  config.sort_order = 'id_asc'
21
31
 
22
32
  filter :title
@@ -29,6 +39,11 @@ ActiveAdmin.register C80Estate::Property, as: 'Property' do
29
39
 
30
40
  index do
31
41
  selectable_column
42
+ column '' do |prop|
43
+ "<div class='image_vertical properties_index_logo'>
44
+ <span></span><img src='#{image_path(prop.logo_path)}'>
45
+ </div>".html_safe
46
+ end
32
47
  column :title
33
48
  column :address
34
49
  column :gps do |prop|
@@ -40,7 +55,17 @@ ActiveAdmin.register C80Estate::Property, as: 'Property' do
40
55
  # column :atype do |prop|
41
56
  # prop.atype.title
42
57
  # end
43
- actions
58
+ # actions
59
+
60
+ column '' do |property|
61
+ link_to I18n.t("active_admin.view"), "/admin/properties/#{property.id}", class: 'member_link'
62
+ end
63
+ column '' do |property|
64
+ if current_admin_user.can_edit_property?(property)
65
+ link_to I18n.t("active_admin.edit"), "/admin/properties/#{property.id}/edit", class: 'member_link'
66
+ end
67
+ end
68
+
44
69
  end
45
70
 
46
71
  form(:html => {:multipart => true}) do |f|
@@ -52,8 +77,12 @@ ActiveAdmin.register C80Estate::Property, as: 'Property' do
52
77
  :collection => AdminUser.all.map{|u| ["#{u.email}", u.id]}
53
78
  f.input :assigned_person_type, :input_html => { :value => "AdminUser" }, as: :hidden
54
79
  # f.input :atype, :input_html => { :class => 'selectpicker', 'data-size' => "5", 'data-width' => '400px'}
55
- f.input :owner_id, :input_html => { :value => current_admin_user.id }, as: :hidden
56
- f.input :owner_type, :input_html => { :value => "AdminUser" }, as: :hidden
80
+
81
+ if f.object.new_record?
82
+ f.input :owner_id, :input_html => { :value => current_admin_user.id }, as: :hidden
83
+ f.input :owner_type, :input_html => { :value => "AdminUser" }, as: :hidden
84
+ end
85
+
57
86
  f.input :address
58
87
  f.input :latitude
59
88
  f.input :longitude
@@ -2,7 +2,7 @@ ActiveAdmin.register C80Estate::Pstat, as: 'Pstat' do
2
2
 
3
3
  # scope_to :current_admin_user, association_method: :sites_list
4
4
 
5
- menu :label => "Объекты", :parent => 'Статистика'
5
+ menu :label => "Объекты", :parent => 'Статистика', if: proc{ current_admin_user.can_view_statistics? }
6
6
 
7
7
  config.sort_order = 'id_asc'
8
8
 
@@ -1,7 +1,7 @@
1
1
  # ПОДкатегории строительных материалов
2
2
  ActiveAdmin.register C80Estate::RoleType, :as => 'RoleType' do
3
3
 
4
- menu :label => "Роли", :parent => "Настройки"
4
+ menu :label => "Роли", :parent => "Настройки", :if => proc { current_admin_user.can_view_settings? }
5
5
 
6
6
  permit_params :title,
7
7
  :desc
@@ -2,7 +2,7 @@ ActiveAdmin.register C80Estate::Sevent, as: 'Sevent' do
2
2
 
3
3
  # scope_to :current_admin_user, association_method: :sites_list
4
4
 
5
- menu :label => "Площади", :parent => 'Статистика'
5
+ menu :label => "Площади", :parent => 'Статистика', if: proc{ current_admin_user.can_view_statistics? }
6
6
 
7
7
  permit_params :area_id,
8
8
  :atype_id,
@@ -1,7 +1,7 @@
1
1
  # единицы измерения
2
2
  ActiveAdmin.register C80Estate::Uom, :as => 'Uom' do
3
3
 
4
- menu :label => "Единицы измерения", :parent => "Настройки"
4
+ menu :label => "Единицы измерения", :parent => "Настройки", :if => proc { current_admin_user.can_view_settings? }
5
5
 
6
6
  permit_params :title, :comment, :is_number
7
7
 
@@ -417,7 +417,37 @@ var fEdit = function () {
417
417
  fLoadingShow();
418
418
  };
419
419
 
420
+ var fAreasIndex = function () {
421
+
422
+ //var $input_square_min = $('<input type="text" class="min_text_input"/>')
423
+ // .appendTo($("#q_item_prop_square_val_in").parent());
424
+ //
425
+ //var $input_square_max = $('<input type="text" class="max_text_input"/>')
426
+ // .appendTo($("#q_item_prop_square_val_in").parent());
427
+
428
+ // переведём scope надписи
429
+
430
+ var $li, $a, $a_span;
431
+
432
+ $li = $('li.scope.all');
433
+ $a = $li.find(".table_tools_button");
434
+ $a_span = $a.find('span');
435
+ $a.html('Все <span class="count">' + $a_span.text() + '</span>');
436
+
437
+ $li = $('li.scope.free');
438
+ $a = $li.find(".table_tools_button");
439
+ $a_span = $a.find('span');
440
+ $a.html('Свободные <span class="count">' + $a_span.text() + '</span>');
441
+
442
+ $li = $('li.scope.busy');
443
+ $a = $li.find(".table_tools_button");
444
+ $a_span = $a.find('span');
445
+ $a.html('Занятые <span class="count">' + $a_span.text() + '</span>');
446
+
447
+ };
448
+
420
449
  YOUR_APP.areas = {
421
450
  edit: fEdit,
422
- "new": jsinit.go
451
+ "new": jsinit.go,
452
+ index: fAreasIndex
423
453
  };
@@ -107,10 +107,6 @@ body.admin_areas {
107
107
 
108
108
  }
109
109
 
110
- a.delete_link {
111
- display: none;
112
- }
113
-
114
110
  .slider.slider-horizontal {
115
111
  width: 227px !important;
116
112
  }
@@ -123,5 +119,65 @@ body.admin_areas {
123
119
  margin-top: 0 !important;
124
120
  }
125
121
 
122
+ &.index {
123
+
124
+ .min_text_input {
125
+ margin-top: 15px;
126
+ width: 45% !important;
127
+ }
128
+
129
+ .max_text_input {
130
+ margin-top: 15px;
131
+ width: 45% !important;
132
+ margin-left: 10%;
133
+ }
134
+
135
+ a.delete_link {
136
+ /*display: none;*/
137
+ }
138
+
139
+ span.status_free {
140
+ display: block;
141
+ position: relative;
142
+ padding: 0 0 0 17px;
143
+
144
+ &:after {
145
+ display: block;
146
+ position: absolute;
147
+ top:0;
148
+ left:0;
149
+ width: 20px;
150
+ height: 20px;
151
+ font-family: FontAwesome;
152
+ content: '\f059';
153
+ color: #51e471;
154
+ }
155
+
156
+ }
157
+
158
+ span.status_busy {
159
+ display: block;
160
+ position: relative;
161
+ padding: 0 0 0 17px;
162
+
163
+ &:after {
164
+ display: block;
165
+ position: absolute;
166
+ top:0;
167
+ left:0;
168
+ width: 20px;
169
+ height: 20px;
170
+ font-family: FontAwesome;
171
+ content: '\f058';
172
+ color: #ff2d2d;
173
+ }
174
+
175
+ }
176
+
177
+ }
178
+
179
+ &.show {
180
+
181
+ }
126
182
 
127
183
  }
@@ -0,0 +1,15 @@
1
+ div.properties_index_logo {
2
+ height: 30px;
3
+ width: 30px;
4
+ float: left;
5
+ margin-right: 10px;
6
+
7
+ img {
8
+ max-width: 100%;
9
+ width: 100%;
10
+ }
11
+
12
+ }
13
+
14
+ span.properties_index_logo_title {
15
+ }
@@ -1,3 +1,18 @@
1
1
  #admin_user_1 {
2
2
  display: none;
3
+ }
4
+
5
+ .image_vertical {
6
+ text-align: center; /*!*/
7
+ white-space: nowrap; /*!*/
8
+
9
+ > span {
10
+ display: inline-block; /*!*/
11
+ vertical-align: middle; /*!*/
12
+ height: 100%; /*!*/
13
+ }
14
+
15
+ > img {
16
+ vertical-align: middle; /*!*/
17
+ }
3
18
  }
@@ -141,6 +141,14 @@ module C80Estate
141
141
  res
142
142
  end
143
143
 
144
+ def astatus_tag
145
+ res = -1
146
+ if astatuses.count > 0
147
+ res = astatuses.first.tag
148
+ end
149
+ res
150
+ end
151
+
144
152
  def assigned_person_title
145
153
  res = "-"
146
154
  if assigned_person.present?
@@ -48,6 +48,64 @@ module C80Estate
48
48
  roles << r
49
49
  end
50
50
 
51
+ def can_view_statistics?
52
+ r1 = roles.where(role_type: 1)
53
+ r2 = roles.where(role_type: 2)
54
+ r1.count > 0 || r2.count > 0
55
+ end
56
+
57
+ def can_view_comments?
58
+ r1 = roles.where(role_type: 1)
59
+ r2 = roles.where(role_type: 2)
60
+ r1.count > 0 || r2.count > 0
61
+ end
62
+
63
+ def can_view_settings?
64
+ r1 = roles.where(role_type: 1)
65
+ r1.count > 0
66
+ end
67
+
68
+ def can_view_users?
69
+ r1 = roles.where(role_type: 1)
70
+ r1.count > 0
71
+ # true
72
+ end
73
+
74
+ def can_edit_area?(area)
75
+ r1 = roles.where(role_type: 1)
76
+ # mark_is_owner = area.owner.id == id
77
+ mark_is_assigned = area.assigned_person.id == id
78
+ r1.count > 0 || mark_is_assigned # || mark_is_owner
79
+ # true
80
+ end
81
+
82
+
83
+ def can_edit_property?(property)
84
+ r1 = roles.where(role_type: 1)
85
+ # mark_is_owner = property.owner.id == id
86
+ mark_is_assigned = property.assigned_person.id == id
87
+ r1.count > 0 || mark_is_assigned # || mark_is_owner
88
+ # true
89
+ end
90
+
91
+ def can_create_areas?
92
+ r1 = roles.where(role_type: 1)
93
+ r1.count > 0
94
+ # true
95
+ end
96
+
97
+ def can_create_properties?
98
+ r1 = roles.where(role_type: 1)
99
+ r1.count > 0
100
+ # true
101
+ end
102
+
103
+ def can_delete_area?
104
+ r1 = roles.where(role_type: 1)
105
+ r1.count > 0
106
+ # true
107
+ end
108
+
51
109
  end
52
110
  end
53
111
  end
@@ -4,7 +4,7 @@ ru:
4
4
  area:
5
5
  one: "площадь"
6
6
  other: "Площади"
7
- c80_news_tz/nphoto: ""
7
+ c80_estate/aphoto: "изображение"
8
8
  c80_news_tz/gallery: ""
9
9
  c80_news_tz/gphoto: "картинку"
10
10
  c80_news_tz/cphoto: ""
@@ -31,15 +31,36 @@ ru:
31
31
  admin_user:
32
32
  one: 'пользователя'
33
33
  other: 'Пользователи'
34
+ email: 'Email'
35
+ password: 'Пароль'
36
+ password_confirmation: 'Пароль ещё раз'
37
+ role: 'роль'
34
38
  attributes:
35
39
  c80_estate/area:
36
40
  title: "Название"
37
41
  atype: 'Тип'
38
42
  property: 'Объект'
43
+ desc: 'Описание'
39
44
  astatus: 'Статус'
40
45
  assigned_person: 'Ответственный'
41
46
  created_at: 'Время создания'
42
47
  updated_at: 'Изменён'
48
+ owner: 'Создатель'
49
+ astatuses: 'Статус'
50
+ c80_estate/property:
51
+ title: "Название"
52
+ address: 'Адрес'
53
+ gps: 'GPS'
54
+ desc: 'Описание'
55
+ latitude: 'Широта'
56
+ longitude: 'Долгота'
57
+ assigned_person: 'Ответственный'
58
+ created_at: 'Время создания'
59
+ updated_at: 'Изменён'
60
+ owner: 'Создатель'
61
+ astatuses: 'Статус'
62
+ c80_estate/aphoto:
63
+ image: 'Файл'
43
64
  c80_news_tz/nphoto:
44
65
  image: 'Файл'
45
66
  c80_news_tz/adress:
@@ -1,3 +1,3 @@
1
1
  module C80Estate
2
- VERSION = "0.1.0.7"
2
+ VERSION = "0.1.0.8"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: c80_estate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.7
4
+ version: 0.1.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - C80609A
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-07-22 00:00:00.000000000 Z
11
+ date: 2016-07-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -65,9 +65,11 @@ files:
65
65
  - LICENSE.txt
66
66
  - README.md
67
67
  - Rakefile
68
+ - app/admin/c80_estate/admin_user.rb
68
69
  - app/admin/c80_estate/areas.rb
69
70
  - app/admin/c80_estate/astatuses.rb
70
71
  - app/admin/c80_estate/atypes.rb
72
+ - app/admin/c80_estate/comments.rb
71
73
  - app/admin/c80_estate/dashboard.rb
72
74
  - app/admin/c80_estate/prop_names.rb
73
75
  - app/admin/c80_estate/properties.rb
@@ -89,6 +91,7 @@ files:
89
91
  - app/assets/javascript/c80_estate_active_admin.js.coffee
90
92
  - app/assets/stylesheets/c80_estate/backend/admin_areas.scss
91
93
  - app/assets/stylesheets/c80_estate/backend/admin_prop_names.scss
94
+ - app/assets/stylesheets/c80_estate/backend/admin_properties.scss
92
95
  - app/assets/stylesheets/c80_estate/backend/admin_pstats.scss
93
96
  - app/assets/stylesheets/c80_estate/backend/admin_sevents.scss
94
97
  - app/assets/stylesheets/c80_estate/backend/admin_users.scss