c80_estate 0.1.0.34 → 0.1.0.35
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 +4 -4
- data/app/admin/c80_estate/areas.rb +4 -0
- data/app/admin/c80_estate/dashboard.rb +12 -0
- data/app/admin/c80_estate/sevents.rb +2 -1
- data/app/assets/stylesheets/c80_estate/backend/admin_properties.scss +3 -1
- data/app/assets/stylesheets/c80_estate/backend/common/collapse.scss +1 -1
- data/app/assets/stylesheets/c80_estate/backend/common/panel.scss +1 -1
- data/app/assets/stylesheets/c80_estate/backend/common/{free_busy.scss → text_styling/free_busy.scss} +0 -0
- data/app/assets/stylesheets/c80_estate/backend/common/text_styling/span_time_date.scss +13 -0
- data/app/assets/stylesheets/c80_estate/backend/common/text_styling/white_link.scss +26 -0
- data/app/assets/stylesheets/c80_estate/backend/dashboard/common.scss +0 -11
- data/app/assets/stylesheets/c80_estate/backend/dashboard/index_table.scss +28 -0
- data/app/assets/stylesheets/c80_estate/backend/dashboard/table_last_sevents.scss +13 -0
- data/app/helpers/c80_estate/app_helper.rb +32 -0
- data/app/helpers/c80_estate/areas_helper.rb +1 -1
- data/app/models/c80_estate/area.rb +11 -7
- data/app/models/c80_estate/owner.rb +2 -2
- data/app/models/c80_estate/sevent.rb +2 -13
- data/app/views/c80_estate/shared/_table_last_sevents.html.erb +25 -0
- data/app/views/c80_estate/shared/_table_properties_coef_busy_sq.html.erb +1 -0
- data/app/views/c80_estate/shared/areas/_single_area_on_page.html.erb +12 -0
- data/app/views/c80_estate/shared/properties/_single_property_on_page.html.erb +12 -0
- data/db/migrate/20160810064747_add_last_editor_to_c80_estate_areas.rb +6 -0
- data/lib/c80_estate/version.rb +1 -1
- metadata +8 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a63ef92bdfb5688fb9a777edb2f0fe55a1853b60
|
4
|
+
data.tar.gz: 0e6a05f89a444b4bb1c1bf0ccb0426519f152310
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 719fa3098fdf9b9b50fbea6ee3ef9ef1bee4d006e6a147e09d9c81132acfc2c9750890916684dcad83914d263dce79e04af487bd34f4da7aa7eea6cec6c36c47
|
7
|
+
data.tar.gz: 42254bee3a70f7aae32832c2115a04b5d07f8d15d6a86dc3a65596e8f7fed264f7f5ba60f233b46405c38a7aec221fb94892be32915e6940d79b4318239010ad
|
@@ -13,6 +13,8 @@ ActiveAdmin.register C80Estate::Area, as: 'Area' do
|
|
13
13
|
:owner_type,
|
14
14
|
:assigned_person_id,
|
15
15
|
:assigned_person_type,
|
16
|
+
:last_updater_id,
|
17
|
+
:last_updater_type,
|
16
18
|
:atype_id,
|
17
19
|
:property_id,
|
18
20
|
:astatus_ids => [],
|
@@ -244,6 +246,8 @@ ActiveAdmin.register C80Estate::Area, as: 'Area' do
|
|
244
246
|
f.input :owner_id, :input_html => {:value => current_admin_user.id}, as: :hidden
|
245
247
|
f.input :owner_type, :input_html => {:value => "AdminUser"}, as: :hidden
|
246
248
|
end
|
249
|
+
f.input :last_updater_id, :input_html => {:value => current_admin_user.id}, as: :hidden
|
250
|
+
f.input :last_updater_type, :input_html => {:value => "AdminUser"}, as: :hidden
|
247
251
|
|
248
252
|
end
|
249
253
|
|
@@ -35,6 +35,18 @@ ActiveAdmin.register_page "Dashboard" do
|
|
35
35
|
|
36
36
|
end
|
37
37
|
|
38
|
+
if current_admin_user.can_view_statistics?
|
39
|
+
section '' do
|
40
|
+
columns do
|
41
|
+
column do
|
42
|
+
panel "10 последних событий изменения статуса площадей (<a class='white_link' href='/admin/sevents'>Просмотреть все</a>)".html_safe do
|
43
|
+
render_table_last_sevents
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
38
50
|
# section '', if: -> { current_admin_user.email == 'tz007@mail.ru' } do
|
39
51
|
# columns do
|
40
52
|
# column do
|
@@ -54,7 +54,8 @@ ActiveAdmin.register C80Estate::Sevent, as: 'Sevent' do
|
|
54
54
|
end
|
55
55
|
column :created_at
|
56
56
|
column :property do |sevent|
|
57
|
-
sevent.property_title
|
57
|
+
# sevent.property_title
|
58
|
+
link_to sevent.property.title, "/admin/properties/#{sevent.property.id}"
|
58
59
|
end
|
59
60
|
actions
|
60
61
|
end
|
@@ -14,7 +14,9 @@ div.properties_index_logo {
|
|
14
14
|
span.properties_index_logo_title {
|
15
15
|
}
|
16
16
|
|
17
|
-
body.admin_properties
|
17
|
+
body.admin_properties,
|
18
|
+
body.admin_areas // т.к. подобную кнопку я теперь стал рисовать и на странице просмотра площади
|
19
|
+
{
|
18
20
|
|
19
21
|
button {
|
20
22
|
span.fa.fa-chevron-right {
|
data/app/assets/stylesheets/c80_estate/backend/common/{free_busy.scss → text_styling/free_busy.scss}
RENAMED
File without changes
|
@@ -0,0 +1,26 @@
|
|
1
|
+
a.white_link {
|
2
|
+
color: #ddd !important;
|
3
|
+
text-decoration: underline !important;
|
4
|
+
|
5
|
+
-webkit-transition: opacity .2s ease-out;
|
6
|
+
-moz-transition: opacity .2s ease-out;
|
7
|
+
-ms-transition: opacity .2s ease-out;
|
8
|
+
-o-transition: opacity .2s ease-out;
|
9
|
+
transition: opacity .2s ease-out;
|
10
|
+
|
11
|
+
&:hover {
|
12
|
+
color: #ffd7a7 !important;
|
13
|
+
text-decoration: underline !important;
|
14
|
+
}
|
15
|
+
&:focus {
|
16
|
+
color: #a3ff96 !important;
|
17
|
+
}
|
18
|
+
&:active {
|
19
|
+
color: #7affe4 !important;
|
20
|
+
}
|
21
|
+
}
|
22
|
+
|
23
|
+
// в dashboard в заголовке панели это встречается
|
24
|
+
h3 a.white_link {
|
25
|
+
font-size: 12px;
|
26
|
+
}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
body.admin_dashboard {
|
2
|
+
|
3
|
+
table.index_table {
|
4
|
+
|
5
|
+
a {
|
6
|
+
|
7
|
+
// обычные ссылки без стилизации
|
8
|
+
text-decoration: none !important;
|
9
|
+
color: #323537 !important;
|
10
|
+
&:hover {
|
11
|
+
text-decoration: underline !important;
|
12
|
+
color: #124068 !important;
|
13
|
+
}
|
14
|
+
|
15
|
+
// чтобы стилизовать - надо явно указывать класс
|
16
|
+
&.link {
|
17
|
+
text-decoration: underline !important;
|
18
|
+
color: #3e7de5 !important;
|
19
|
+
&:hover {
|
20
|
+
text-decoration: underline !important;
|
21
|
+
color: #4498ff !important;
|
22
|
+
}
|
23
|
+
}
|
24
|
+
}
|
25
|
+
|
26
|
+
}
|
27
|
+
|
28
|
+
}
|
@@ -164,5 +164,37 @@ module C80Estate
|
|
164
164
|
render :partial => 'c80_estate/shared/properties/single_property_on_page'
|
165
165
|
end
|
166
166
|
|
167
|
+
def render_table_last_sevents(property = nil, area = nil, limit = nil)
|
168
|
+
# Rails.logger.debug "[TRACE] <AppHelper.render_table_last_sevents> current_admin_user.can_view_statistics? = #{current_admin_user.can_view_statistics?}"
|
169
|
+
|
170
|
+
# сначал выберем из базы
|
171
|
+
|
172
|
+
sevents_list = Sevent.all
|
173
|
+
|
174
|
+
if property.present?
|
175
|
+
sevents_list = sevents_list.where(:property_id => property.id)
|
176
|
+
end
|
177
|
+
|
178
|
+
if area.present?
|
179
|
+
sevents_list = sevents_list.where(:area_id => area.id)
|
180
|
+
end
|
181
|
+
|
182
|
+
lim = 10
|
183
|
+
|
184
|
+
if limit.present?
|
185
|
+
lim = limit
|
186
|
+
end
|
187
|
+
|
188
|
+
sevents_list = sevents_list.limit(lim).created_at_desc
|
189
|
+
|
190
|
+
# теперь нарисуем
|
191
|
+
|
192
|
+
render :partial => 'c80_estate/shared/table_last_sevents',
|
193
|
+
:locals => {
|
194
|
+
sevents_list: sevents_list
|
195
|
+
}
|
196
|
+
|
197
|
+
end
|
198
|
+
|
167
199
|
end
|
168
200
|
end
|
@@ -58,7 +58,7 @@ module C80Estate
|
|
58
58
|
{ title: 'Кто создал', value: area.owner.email },
|
59
59
|
{ title: 'Время создания', value: area.created_at.strftime('%Y/%m/%d %H:%M:%S') },
|
60
60
|
{ title: 'Время последнего изменения', value: area.updated_at.strftime('%Y/%m/%d %H:%M:%S') },
|
61
|
-
{ title: 'Кто последний раз вносил изменения', value: area.
|
61
|
+
{ title: 'Кто последний раз вносил изменения', value: area.last_updater_title },
|
62
62
|
{ title: 'Ответственный', value: area.assigned_person_title }
|
63
63
|
]
|
64
64
|
|
@@ -4,6 +4,7 @@ module C80Estate
|
|
4
4
|
belongs_to :atype
|
5
5
|
belongs_to :owner, :polymorphic => true
|
6
6
|
belongs_to :assigned_person, :polymorphic => true
|
7
|
+
belongs_to :last_updater, :polymorphic => true
|
7
8
|
has_many :item_props, :dependent => :destroy
|
8
9
|
accepts_nested_attributes_for :item_props,
|
9
10
|
:reject_if => lambda { |attributes|
|
@@ -312,8 +313,10 @@ module C80Estate
|
|
312
313
|
res
|
313
314
|
end
|
314
315
|
|
315
|
-
def
|
316
|
-
|
316
|
+
def last_updater_title
|
317
|
+
if last_updater.present?
|
318
|
+
last_updater.email
|
319
|
+
end
|
317
320
|
end
|
318
321
|
|
319
322
|
# выдать цену за м.кв. в месяц
|
@@ -443,13 +446,13 @@ module C80Estate
|
|
443
446
|
|
444
447
|
protected
|
445
448
|
|
446
|
-
#
|
449
|
+
# после создания площади генерится начальное событие
|
447
450
|
def create_initial_sevent
|
448
|
-
Rails.logger.debug "<Area.create_initial_sevent> self.astatuses.count = #{self.astatuses.count}"
|
451
|
+
# Rails.logger.debug "<Area.create_initial_sevent> self.astatuses.count = #{self.astatuses.count}"
|
449
452
|
|
450
453
|
# [**]
|
451
454
|
if self.astatuses.count > 0
|
452
|
-
Rails.logger.debug "<Area.create_initial_sevent> aga: self.astatuses.first.title = #{self.astatuses.first.title}"
|
455
|
+
# Rails.logger.debug "<Area.create_initial_sevent> aga: self.astatuses.first.title = #{self.astatuses.first.title}"
|
453
456
|
|
454
457
|
s = Sevent.create!({
|
455
458
|
area_id: self.id,
|
@@ -477,6 +480,7 @@ module C80Estate
|
|
477
480
|
|
478
481
|
end
|
479
482
|
|
483
|
+
# после обновления данных площади генерится Sevent событие
|
480
484
|
def check_and_generate_sevent
|
481
485
|
|
482
486
|
# находим последнее известное событие
|
@@ -491,13 +495,13 @@ module C80Estate
|
|
491
495
|
Rails.logger.debug "<Area.check_and_generate_sevent> last_known_sevent = #{last_known_sevent}, self.astatuses.first.tag = #{self.astatuses.first.tag}"
|
492
496
|
|
493
497
|
if last_known_sevent != self.astatuses.first.tag
|
494
|
-
Rails.logger.debug "<Area.check_and_generate_sevent>
|
498
|
+
Rails.logger.debug "<Area.check_and_generate_sevent> [STATUS_CHANGED] self.last_updater_id = #{self.last_updater_id}"
|
495
499
|
sparams = {
|
496
500
|
area_id: self.id,
|
497
501
|
atype_id: self.atype_id,
|
498
502
|
property_id: self.property_id,
|
499
503
|
astatus_id: self.astatus_id,
|
500
|
-
auser_id: self.
|
504
|
+
auser_id: self.last_updater_id, # инициатор события - редактор Площади
|
501
505
|
auser_type: 'AdminUser'
|
502
506
|
}
|
503
507
|
|
@@ -35,9 +35,10 @@ module C80Estate
|
|
35
35
|
# эта взаимосвязь трактуется, как "площадь, назначенная сотруднику"
|
36
36
|
has_many :assigned_areas, :as => :assigned_person, :class_name => 'C80Estate::Area', :dependent => :nullify
|
37
37
|
|
38
|
-
# эта взаимосвязь трактуется, как "
|
38
|
+
# эта взаимосвязь трактуется, как "объект, назначенная сотруднику"
|
39
39
|
has_many :assigned_properties, :as => :assigned_person, :class_name => 'C80Estate::Property', :dependent => :nullify
|
40
40
|
|
41
|
+
# эта взаимосвязь трактуется как "Пользователь, создавая\меняя\удаяя площади, генерит Sevent события"
|
41
42
|
has_many :sevents, :as => :auser, :class_name => 'C80Estate::Sevent', :dependent => :nullify
|
42
43
|
|
43
44
|
after_create :create_role
|
@@ -86,7 +87,6 @@ module C80Estate
|
|
86
87
|
# true
|
87
88
|
end
|
88
89
|
|
89
|
-
|
90
90
|
def can_edit_property?(property)
|
91
91
|
r1 = roles.where(role_type: 1)
|
92
92
|
# mark_is_owner = property.owner.id == id
|
@@ -10,19 +10,8 @@ module C80Estate
|
|
10
10
|
# нужен только при заполнении из rake db:seed:85_fill_sevents
|
11
11
|
after_create :generate_pstat
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
self.all
|
16
|
-
end
|
17
|
-
|
18
|
-
def self.free_areas
|
19
|
-
self.joins(:astatuses).where(:c80_estate_astatuses => { tag: 'free'})
|
20
|
-
end
|
21
|
-
|
22
|
-
def self.busy_areas
|
23
|
-
self.joins(:astatuses).where(:c80_estate_astatuses => { tag: 'busy'})
|
24
|
-
end
|
25
|
-
=end
|
13
|
+
scope :created_at_asc, -> {order(:created_at => :asc)}
|
14
|
+
scope :created_at_desc, -> {order(:created_at => :desc)}
|
26
15
|
|
27
16
|
def self.ecoef(area_id: nil, prop_id: nil, atype_id: nil, start_date: nil, end_date: nil)
|
28
17
|
# start_date: строка вида 2015-12-12
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<%# AppHelper.render_table_last_sevents %>
|
2
|
+
|
3
|
+
<table border="0" cellspacing="0" cellpadding="0" id="table_last_sevents" class="index_table index sortable">
|
4
|
+
<thead>
|
5
|
+
<tr>
|
6
|
+
<th><abbr title="Показано время события изменения статуса">Время</abbr></th>
|
7
|
+
<th><abbr title="Площадь, чей статус был изменён">Площадь</abbr></th>
|
8
|
+
<th><abbr title="Статус, который приобрела площадь">Статус</abbr></th>
|
9
|
+
<th><abbr title="Показан актуальный тип площади ПОСЛЕ события изменения статуса">Тип площади</abbr></th>
|
10
|
+
<th><abbr title="Пользователь, который изменил статус площади">Инициатор</abbr></th>
|
11
|
+
<th><abbr title="Объект недвижимости, которому принадлежит площадь">Объект</abbr></th>
|
12
|
+
</tr>
|
13
|
+
</thead>
|
14
|
+
<% sevents_list.each do |sevent| %>
|
15
|
+
<tr>
|
16
|
+
<%# Rails.logger.debug "[TRACE] <_table_last_sevents.html.erb> #{sevent}" %>
|
17
|
+
<td><%= "<span class='span_date'>#{sevent.created_at.strftime('%d/%b/%Y')}</span> <span class='span_time'>#{sevent.created_at.strftime('%H:%M:%S')}</span> ".html_safe %></td>
|
18
|
+
<td><%= link_to sevent.area_title, "/admin/areas/#{sevent.area.id}", class:'link' %></td>
|
19
|
+
<td><%= sevent.astatus_title %></td>
|
20
|
+
<td><%= sevent.atype.title %></td>
|
21
|
+
<td><%= sevent.auser_title %></td>
|
22
|
+
<td><%= link_to sevent.property.title, "/admin/properties/#{sevent.property.id}", class:'link' %></td>
|
23
|
+
</tr>
|
24
|
+
<% end %>
|
25
|
+
</table>
|
@@ -48,6 +48,18 @@
|
|
48
48
|
<%= smiph_render_common_props(@item) %>
|
49
49
|
</div>
|
50
50
|
|
51
|
+
<% if current_admin_user.can_view_statistics? %>
|
52
|
+
<div id="div_all_sevents_table" class="wrap_collapse">
|
53
|
+
<button type="button" class="btn" data-toggle="collapse" data-target="#iid2">
|
54
|
+
<span class="fa fa-chevron-right"></span>
|
55
|
+
Все события изменения статуса (<%= @item.sevents.count %>)
|
56
|
+
</button>
|
57
|
+
<div class="collapse" id="iid2">
|
58
|
+
<%= render_table_last_sevents(nil, @item, 99999) %>
|
59
|
+
</div>
|
60
|
+
</div>
|
61
|
+
<% end %>
|
62
|
+
|
51
63
|
<div id="related_items" class="hidden">
|
52
64
|
<%# smiph_render_related_items(@item) %>
|
53
65
|
</div>
|
@@ -49,6 +49,18 @@
|
|
49
49
|
</div>
|
50
50
|
<% end %>
|
51
51
|
|
52
|
+
<% if current_admin_user.can_view_statistics? %>
|
53
|
+
<div id="div_all_sevents_table" class="wrap_collapse">
|
54
|
+
<button type="button" class="btn" data-toggle="collapse" data-target="#iid2">
|
55
|
+
<span class="fa fa-chevron-right"></span>
|
56
|
+
Все события изменения статусов всех площадей объекта (<%= @item.sevents.count %>)
|
57
|
+
</button>
|
58
|
+
<div class="collapse" id="iid2">
|
59
|
+
<%= render_table_last_sevents(@item, nil, 99999) %>
|
60
|
+
</div>
|
61
|
+
</div>
|
62
|
+
<% end %>
|
63
|
+
|
52
64
|
<div id="related_items" class="hidden">
|
53
65
|
<%# smiph_render_related_items(@item) %>
|
54
66
|
</div>
|
data/lib/c80_estate/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: c80_estate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.0.
|
4
|
+
version: 0.1.0.35
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- C80609A
|
@@ -115,12 +115,16 @@ files:
|
|
115
115
|
- app/assets/stylesheets/c80_estate/backend/admin_users.scss
|
116
116
|
- app/assets/stylesheets/c80_estate/backend/common.scss
|
117
117
|
- app/assets/stylesheets/c80_estate/backend/common/collapse.scss
|
118
|
-
- app/assets/stylesheets/c80_estate/backend/common/free_busy.scss
|
119
118
|
- app/assets/stylesheets/c80_estate/backend/common/minor_fix.scss
|
120
119
|
- app/assets/stylesheets/c80_estate/backend/common/panel.scss
|
120
|
+
- app/assets/stylesheets/c80_estate/backend/common/text_styling/free_busy.scss
|
121
|
+
- app/assets/stylesheets/c80_estate/backend/common/text_styling/span_time_date.scss
|
122
|
+
- app/assets/stylesheets/c80_estate/backend/common/text_styling/white_link.scss
|
121
123
|
- app/assets/stylesheets/c80_estate/backend/dashboard/atype_in_list.scss
|
122
124
|
- app/assets/stylesheets/c80_estate/backend/dashboard/common.scss
|
125
|
+
- app/assets/stylesheets/c80_estate/backend/dashboard/index_table.scss
|
123
126
|
- app/assets/stylesheets/c80_estate/backend/dashboard/prop_in_list.scss
|
127
|
+
- app/assets/stylesheets/c80_estate/backend/dashboard/table_last_sevents.scss
|
124
128
|
- app/assets/stylesheets/c80_estate/backend/shared/areas/gallery3.scss
|
125
129
|
- app/assets/stylesheets/c80_estate/backend/shared/areas/stroitelnye_materialy_item.scss
|
126
130
|
- app/assets/stylesheets/c80_estate/backend/shared/areas/stroitelnye_materialy_item/div_all_areas_table.scss
|
@@ -181,6 +185,7 @@ files:
|
|
181
185
|
- app/views/c80_estate/ajax_view/table_properties_coef_busy.js.erb
|
182
186
|
- app/views/c80_estate/ajax_view/table_properties_coef_busy_sq.js.erb
|
183
187
|
- app/views/c80_estate/shared/_form_upload_areas_excel.erb
|
188
|
+
- app/views/c80_estate/shared/_table_last_sevents.html.erb
|
184
189
|
- app/views/c80_estate/shared/_table_properties_coef_busy.html.erb
|
185
190
|
- app/views/c80_estate/shared/_table_properties_coef_busy_sq.html.erb
|
186
191
|
- app/views/c80_estate/shared/areas/_gallery4.html.erb
|
@@ -210,6 +215,7 @@ files:
|
|
210
215
|
- db/migrate/20160713043333_create_c80_estate_sevents.rb
|
211
216
|
- db/migrate/20160717094647_create_c80_estate_pstats.rb
|
212
217
|
- db/migrate/20160803093131_change_c80_estate_pstats_column_types.rb
|
218
|
+
- db/migrate/20160810064747_add_last_editor_to_c80_estate_areas.rb
|
213
219
|
- db/seeds/50_fill_uoms.rb.example
|
214
220
|
- db/seeds/55_fill_prop_names.rb.example
|
215
221
|
- db/seeds/60_fill_atypes.rb.example
|