c80_estate 0.1.0.7 → 0.1.0.8

Sign up to get free protection for your applications and to get access to all the features.
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