c80_estate 0.1.0.12 → 0.1.0.13

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/app/admin/c80_estate/areas.rb +5 -0
  3. data/app/admin/c80_estate/dashboard.rb +1 -1
  4. data/app/admin/c80_estate/sevents.rb +2 -2
  5. data/app/assets/images/no_thumb.png +0 -0
  6. data/app/assets/images/w227x182px.gif +0 -0
  7. data/app/assets/images/w621x377.gif +0 -0
  8. data/app/assets/javascript/c80_estate/backend/admin/shared/areas/_area_show_common.js +21 -0
  9. data/app/assets/javascript/c80_estate/backend/admin/shared/areas/area_show.js +352 -0
  10. data/app/assets/javascript/c80_estate/backend/admin/shared/areas/gallery3.js +42 -0
  11. data/app/assets/javascript/c80_estate/backend/admin/{areas.js → src/areas.js} +2 -1
  12. data/app/assets/javascript/c80_estate/backend/admin/{pstats.js → src/pstats.js} +0 -0
  13. data/app/assets/javascript/c80_estate/backend/admin/{sevents.js → src/sevents.js} +1 -1
  14. data/app/assets/javascript/c80_estate/lib/jquery.magnific-popup.js +2060 -0
  15. data/app/assets/javascript/c80_estate_active_admin.js.coffee +2 -1
  16. data/app/assets/stylesheets/c80_estate/backend/admin_areas.scss +11 -0
  17. data/app/assets/stylesheets/c80_estate/backend/admin_sevents.scss +0 -68
  18. data/app/assets/stylesheets/c80_estate/backend/common/minor_fix.scss +3 -0
  19. data/app/assets/stylesheets/c80_estate/backend/common/panel.scss +42 -0
  20. data/app/assets/stylesheets/c80_estate/backend/dashboard/atype_in_list.scss +7 -0
  21. data/app/assets/stylesheets/c80_estate/backend/dashboard/common.scss +2 -28
  22. data/app/assets/stylesheets/c80_estate/backend/dashboard/prop_in_list.scss +3 -3
  23. data/app/assets/stylesheets/c80_estate/backend/shared/areas/gallery3.scss +107 -0
  24. data/app/assets/stylesheets/c80_estate/backend/shared/areas/stroitelnye_materialy_item.scss +1 -0
  25. data/app/assets/stylesheets/c80_estate/backend/shared/areas/stroitelnye_materialy_item/div_button_order.scss +8 -0
  26. data/app/assets/stylesheets/c80_estate/backend/shared/areas/stroitelnye_materialy_item/div_comments.scss +8 -0
  27. data/app/assets/stylesheets/c80_estate/backend/shared/areas/stroitelnye_materialy_item/div_common_props.scss +51 -0
  28. data/app/assets/stylesheets/c80_estate/backend/shared/areas/stroitelnye_materialy_item/div_desc.scss +10 -0
  29. data/app/assets/stylesheets/c80_estate/backend/shared/areas/stroitelnye_materialy_item/div_main.scss +151 -0
  30. data/app/assets/stylesheets/c80_estate/backend/shared/areas/stroitelnye_materialy_item/div_price_info.scss +68 -0
  31. data/app/assets/stylesheets/c80_estate/backend/shared/areas/stroitelnye_materialy_item/div_related_items.scss +12 -0
  32. data/app/assets/stylesheets/c80_estate/backend/shared/areas/stroitelnye_materialy_item/div_vendor_logo.scss +18 -0
  33. data/app/assets/stylesheets/c80_estate/backend/shared/index_adds_like_sevents.scss +68 -0
  34. data/app/assets/stylesheets/c80_estate/lib/magnific-popup-custom.scss +41 -0
  35. data/app/assets/stylesheets/c80_estate/lib/magnific-popup.scss +369 -0
  36. data/app/assets/stylesheets/c80_estate/lib/slick-carousel-custom.scss +174 -0
  37. data/app/assets/stylesheets/c80_estate/lib/slick-theme.scss +202 -0
  38. data/app/assets/stylesheets/c80_estate/lib/slick.scss +116 -0
  39. data/app/helpers/c80_estate/app_helper.rb +39 -0
  40. data/app/helpers/c80_estate/areas_helper.rb +109 -0
  41. data/app/models/c80_estate/area.rb +12 -0
  42. data/app/uploaders/c80_estate/aphoto_uploader.rb +2 -2
  43. data/app/views/admin/areas/_show_area.html.erb +1 -0
  44. data/app/views/c80_estate/shared/areas/_gallery4.html.erb +52 -0
  45. data/app/views/c80_estate/shared/areas/_single_area_on_page.html.erb +53 -0
  46. data/lib/c80_estate/version.rb +1 -1
  47. metadata +34 -5
@@ -1,6 +1,8 @@
1
1
  module C80Estate
2
2
  module AppHelper
3
3
 
4
+ include AreasHelper
5
+
4
6
  def render_table_prop_busy_coef(atype_id: nil)
5
7
  # Rails.logger.debug "<render_table_prop_busy_coef> atype_id = #{atype_id}"
6
8
 
@@ -60,5 +62,42 @@ module C80Estate
60
62
  render :partial => 'c80_estate/shared/form_upload_areas_excel'
61
63
  end
62
64
 
65
+ def render_show_area(area)
66
+
67
+ slug = 'stroitelnye-materialy'
68
+ @page = Page.where(:slug => slug).first
69
+
70
+ @item = area #strh_item_get(@sub_cat.id,params[:item_id]) #Item.find(params[:item_id])
71
+ @sub_cat = area.atype #Strsubcat.where(:slug => params[:sub_cat_slug]).first
72
+
73
+ # puts "<SiteController.stroitelnye_materialy_item> @item = #{@item}"
74
+ # {"id"=>5, "item_id"=>5, "item_title"=>"Кирпич длинного формата Alt Berlin GS стандарт качества Qbricks",
75
+ # "is_main"=>0, "is_hit"=>1, "is_sale"=>0, "strsubcat_id"=>1, "strsubcat_slug"=>"kirpich",
76
+ # "vendor_id"=>-1,
77
+ # "prop_18"=>"93,98", "prop_19"=>"0", "prop_20"=>"51", "prop_21"=>"0",
78
+ # "prop_23"=>"290 x 90 x 52 мм", "prop_24"=>"Германия", "prop_25"=>"1000",
79
+ # "prop_26"=>"0,10", "prop_27"=>"F300", "prop_28"=>"2,9", "prop_29"=>"чёрный",
80
+ # "prop_30"=>"пустотелый", "prop_31"=>"пластичное формование", "prop_32"=>"шероховатая",
81
+ # "prop_33"=>"2,50", "prop_34"=>"450", "prop_35"=>"длинный, ригельный", "prop_36"=>"Не указан",
82
+ # "prop_37"=>"PR12010-1", "prop_38"=>"NF"}
83
+
84
+ # @vparams[:body_class] += ' stroitelnye_materialy_item'
85
+
86
+ # add_breadcrumb 'Строительные материалы', '/stroitelnye-materialy', :title => 'Строительные материалы'
87
+ # add_breadcrumb @sub_cat.title, apph_my_url_strsubcat(@sub_cat), :title => @sub_cat.title
88
+ # add_breadcrumb @item["item_title"]
89
+
90
+ @vparams = {}
91
+ # @vparams[:page_slug] = 'stroitelnye-materialy' # помогаем слайдеру страницы найти соответствующие картинки
92
+ # @vparams[:sub_cat_slug] = params[:sub_cat_slug]
93
+ # @vparams[:c80_order_form_subj] = "#{root_url}stroitelnye-materialy/#{params[:sub_cat_slug]}/#{params[:item_id]}"
94
+ # @vparams[:c80_order_form_comment_text] = "Заявка на '#{@item["item_title"]}'. Кол-во: "
95
+
96
+ # найдём галереи товара
97
+ @vparams[:galleries] = @item.aphotos #Gallery.where_item(params[:item_id])
98
+
99
+ render :partial => 'c80_estate/shared/areas/single_area_on_page'
100
+ end
101
+
63
102
  end
64
103
  end
@@ -0,0 +1,109 @@
1
+ module C80Estate
2
+ module AreasHelper
3
+
4
+ # выдать html строку, содержащую список характеристик площади
5
+ def smiph_render_all_props(area)
6
+
7
+ result = ''
8
+
9
+ # area.item_props.each do |prop|
10
+ # title = prop.prop_name.title
11
+ # value = prop.value
12
+ # uom = prop.prop_name.uom.title
13
+ # result += "<li><span class='ptitle bold'>#{title}</span>: <span class='pvalue'>#{value}</span> <span class='puom'>#{uom}</span></li>"
14
+ # end
15
+
16
+ result += "<li><span class='ptitle bold'>Объект недвижимости</span>: <span class='pvalue'>#{area.property.title}</span></li>"
17
+ result += "<li><span class='ptitle bold'>Объём площади</span>: <span class='pvalue'>#{area.square_value}</span> <span class='puom'>м.кв.</span></li>"
18
+ result += "<li><span class='ptitle bold'><abbr title='За м.кв. в месяц'>Цена</abbr></span>: <span class='pvalue'>#{area.price_value} </span> <span class='puom'>руб</span></li>"
19
+
20
+ area.atype.prop_names.each do |atype_propname|
21
+ title = atype_propname.title
22
+ if atype_propname.id == 1 || atype_propname.id == 9
23
+ next
24
+ end
25
+ # value = prop.value
26
+ value = '-'
27
+ uom = ''
28
+ if atype_propname.uom.present?
29
+ uom = atype_propname.uom.title
30
+ end
31
+ aip = ItemProp.where(:area_id => area.id).where(:prop_name_id => atype_propname.id)#.first.value
32
+ if aip.count > 0
33
+ value = aip.first.value
34
+ end
35
+ result += "<li><span class='ptitle bold'>#{title}</span>: <span class='pvalue'>#{value}</span> <span class='puom'>#{uom}</span></li>"
36
+ end
37
+
38
+ result += "<li><span class='pvalue label label-info'>#{area.atype.title}</span></li>"
39
+ result = "<ul>#{result}</ul>"
40
+ result.html_safe
41
+
42
+ end
43
+
44
+ # выдать html строку, содержащую список характеристик площади в виде таблицы
45
+ def smiph_render_common_props(area)
46
+
47
+ result = ''
48
+ index = 0
49
+
50
+ area_item_props = [
51
+ { title: 'ID площади', value: area.id },
52
+ { title: 'Название', value: area.title },
53
+ { title: 'Адрес', value: area.property.address },
54
+ { title: 'Кто создал', value: area.owner.email },
55
+ { title: 'Время создания', value: area.created_at.strftime('%Y/%m/%d %H:%M:%S') },
56
+ { title: 'Время последнего изменения', value: area.updated_at.strftime('%Y/%m/%d %H:%M:%S') },
57
+ { title: 'Кто последний раз вносил изменения', value: area.last_updater },
58
+ { title: 'Ответственный', value: area.assigned_person_title }
59
+ ]
60
+
61
+ area_item_props.each do |prop|
62
+ title = prop[:title]
63
+ value = prop[:value]
64
+ result += "<tr class='p#{index % 2}'><td><span class='ptitle medium'>#{title}</span></td> <td><span class='pvalue'>#{value}</span></td></tr>"
65
+ index += 1
66
+ end
67
+
68
+ result = "<table>#{result}</table>"
69
+ result.html_safe
70
+
71
+ end
72
+
73
+ # рендер фотографий при просмотре товара (http://td-forbiz.ru/stroitelnye-materialy/kirpich/1)
74
+ def lh_render_gallery4(area_photos)
75
+
76
+ render :partial => "c80_estate/shared/areas/gallery4",
77
+ :locals => {
78
+ frames: area_photos
79
+ }
80
+
81
+ end
82
+
83
+ def smiph_render_vendor_logo(area)
84
+
85
+ res = ''
86
+
87
+ # begin
88
+
89
+ # vid = item_as_hash["vendor_id"]
90
+ property = area.property
91
+
92
+ if property.plogos.count > 0
93
+ arr = []
94
+ property.plogos.limit(1).each do |pph|
95
+ arr << "<a href='#' class='no-clickable no-outline' title='#{property.title}'><img src='#{ property.logo_path }' alt='#{property.title}'/></a>"
96
+ end
97
+ res = arr.join('').html_safe
98
+ end
99
+
100
+ # rescue => e
101
+ # Rails.logger.debug "<smiph_render_vendor_logo> [ERROR] rescue: #{e}"
102
+ # end
103
+
104
+ res.html_safe
105
+
106
+ end
107
+
108
+ end
109
+ end
@@ -228,6 +228,10 @@ module C80Estate
228
228
  res
229
229
  end
230
230
 
231
+ def last_updater
232
+ sevents.last.auser.email
233
+ end
234
+
231
235
  def price_value
232
236
  res = '-'
233
237
  p = item_props.where(:prop_name_id => 1)
@@ -246,6 +250,14 @@ module C80Estate
246
250
  res
247
251
  end
248
252
 
253
+ def main_image_url
254
+ url = 'no_thumb.png'
255
+ if aphotos.count > 0
256
+ url = aphotos.first.image.thumb512
257
+ end
258
+ url
259
+ end
260
+
249
261
  ransacker :item_prop_price_val,
250
262
  formatter: proc { |price_range| # 10,156
251
263
  results = C80Estate::Area.where_price_range(price_range).map(&:id)
@@ -5,11 +5,11 @@ module C80Estate
5
5
  process :resize_to_limit => [1024, 1024]
6
6
 
7
7
  version :thumb512 do
8
- process :resize_to_limit => [512, 512]
8
+ process :resize_to_fill => [621, 377]
9
9
  end
10
10
 
11
11
  version :thumb256 do
12
- process :resize_to_limit => [256, 256]
12
+ process :resize_to_fill => [310, 188]
13
13
  end
14
14
 
15
15
  def store_dir
@@ -0,0 +1 @@
1
+ <%= render_show_area(area) %>
@@ -0,0 +1,52 @@
1
+ <% # рендер фотографий при просмотре товара из строительных материалов (http://td-forbiz.ru/stroitelnye-materialy/kirpich/1) %>
2
+
3
+ <script>
4
+ var small_frames_slidesToShow = 3;
5
+ var small_frames_dots = false;
6
+ </script>
7
+
8
+ <div id="gallery3_wrapper">
9
+ <div id="gallery3">
10
+ <% frames.each do |frame| %>
11
+
12
+ <div class="col-md-12 col-sm-12 col-xs-12 frame">
13
+
14
+ <div class="img-holder col-md-12 col-sm-12 col-xs-12">
15
+ <%= link_to image_tag("",
16
+ :alt=>"frame.title",
17
+ :data => {
18
+ :lazy => image_path(frame.image.thumb256)
19
+ }
20
+ ), frame.image.url, :title => "frame.title"
21
+ %>
22
+ </div>
23
+
24
+ <div class="name hidden"><%#frame.title %></div>
25
+
26
+ </div>
27
+ <% end %>
28
+ </div>
29
+ </div>
30
+
31
+ <div class="col-md-12 col-sm-12 col-xs-12" id="gallery3_nav_wrapper">
32
+ <div id="gallery3_nav">
33
+ <% frames.each do |frame| %>
34
+
35
+ <div class="frame">
36
+
37
+ <div class="img-holder">
38
+ <%= image_tag("",
39
+ :alt=>"frame.title",
40
+ :data => {
41
+ :lazy => image_path(frame.image.thumb256)
42
+ }
43
+ )
44
+ %>
45
+ <div class="name hidden"><%# frame.title %></div>
46
+ </div>
47
+
48
+ </div>
49
+ <% end %>
50
+ </div>
51
+ <a id='goto_gallery' href="#" title="Посмотреть все">Изображений: <%= frames.count %></a>
52
+ </div>
@@ -0,0 +1,53 @@
1
+ <%
2
+ item_title = @item.title
3
+ %>
4
+
5
+ <h4 class="bold">Общая информация</h4>
6
+
7
+ <div class="clearfix">
8
+ <div id="div_main_show_area" class="clearfix">
9
+ <%= link_to image_tag('w227x182px.gif',
10
+ :alt=>item_title,
11
+ :data => {:original => image_path(@item.main_image_url)},
12
+ :class => 'lazy'),
13
+ image_path(@item.main_image_url),
14
+ :title => item_title,
15
+ :class => 'lazy-image-wrapper no-outline' %>
16
+ <div id="main_props">
17
+ <%= smiph_render_all_props(@item) %>
18
+
19
+ <div id="div_vendor_logo">
20
+ <%= smiph_render_vendor_logo(@item) %>
21
+ </div>
22
+
23
+ </div>
24
+ </div>
25
+ <div id="gallery_block"><%= lh_render_gallery4(@vparams[:galleries]) %></div>
26
+ </div>
27
+
28
+ <div id="price_info hidden" class="clearfix">
29
+ <%# smiph_render_price_props(@item,@sub_cat.id) %>
30
+ </div>
31
+
32
+ <div id="div_button_order" class="hidden">
33
+ <%# link_to "Заказать","#",
34
+ # :class => 'button-red no-clickable no-outline bold c80_order_invoking_btn',
35
+ # :data => {
36
+ # subj_id: @vparams[:c80_order_form_subj],
37
+ # comment_text: @vparams[:c80_order_form_comment_text]
38
+ # }
39
+ %>
40
+ </div>
41
+
42
+ <div id="div_desc">
43
+ <%= @item.desc.html_safe if @item.desc.present? %>
44
+ </div>
45
+
46
+ <div id="div_common_props" class="clearfix">
47
+ <h4 class="bold">Техническая информация</h4>
48
+ <%= smiph_render_common_props(@item) %>
49
+ </div>
50
+
51
+ <div id="related_items" class="hidden">
52
+ <%# smiph_render_related_items(@item) %>
53
+ </div>
@@ -1,3 +1,3 @@
1
1
  module C80Estate
2
- VERSION = "0.1.0.12"
2
+ VERSION = "0.1.0.13"
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.12
4
+ version: 0.1.0.13
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-27 00:00:00.000000000 Z
11
+ date: 2016-07-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -77,10 +77,16 @@ files:
77
77
  - app/admin/c80_estate/role_types.rb
78
78
  - app/admin/c80_estate/sevents.rb
79
79
  - app/admin/c80_estate/uoms.rb
80
+ - app/assets/images/no_thumb.png
80
81
  - app/assets/images/property_default_logo.png
81
- - app/assets/javascript/c80_estate/backend/admin/areas.js
82
- - app/assets/javascript/c80_estate/backend/admin/pstats.js
83
- - app/assets/javascript/c80_estate/backend/admin/sevents.js
82
+ - app/assets/images/w227x182px.gif
83
+ - app/assets/images/w621x377.gif
84
+ - app/assets/javascript/c80_estate/backend/admin/shared/areas/_area_show_common.js
85
+ - app/assets/javascript/c80_estate/backend/admin/shared/areas/area_show.js
86
+ - app/assets/javascript/c80_estate/backend/admin/shared/areas/gallery3.js
87
+ - app/assets/javascript/c80_estate/backend/admin/src/areas.js
88
+ - app/assets/javascript/c80_estate/backend/admin/src/pstats.js
89
+ - app/assets/javascript/c80_estate/backend/admin/src/sevents.js
84
90
  - app/assets/javascript/c80_estate/backend/init.js
85
91
  - app/assets/javascript/c80_estate/backend/init_selectpicker.js
86
92
  - app/assets/javascript/c80_estate/lib/Chart.bundle.js
@@ -88,6 +94,7 @@ files:
88
94
  - app/assets/javascript/c80_estate/lib/google_charts_loader.js
89
95
  - app/assets/javascript/c80_estate/lib/jalert.js
90
96
  - app/assets/javascript/c80_estate/lib/jquery.canvasjs.min.js
97
+ - app/assets/javascript/c80_estate/lib/jquery.magnific-popup.js
91
98
  - app/assets/javascript/c80_estate_active_admin.js.coffee
92
99
  - app/assets/stylesheets/c80_estate/backend/admin_areas.scss
93
100
  - app/assets/stylesheets/c80_estate/backend/admin_prop_names.scss
@@ -96,16 +103,35 @@ files:
96
103
  - app/assets/stylesheets/c80_estate/backend/admin_sevents.scss
97
104
  - app/assets/stylesheets/c80_estate/backend/admin_users.scss
98
105
  - app/assets/stylesheets/c80_estate/backend/common.scss
106
+ - app/assets/stylesheets/c80_estate/backend/common/minor_fix.scss
107
+ - app/assets/stylesheets/c80_estate/backend/common/panel.scss
99
108
  - app/assets/stylesheets/c80_estate/backend/dashboard/atype_in_list.scss
100
109
  - app/assets/stylesheets/c80_estate/backend/dashboard/common.scss
101
110
  - app/assets/stylesheets/c80_estate/backend/dashboard/prop_in_list.scss
111
+ - app/assets/stylesheets/c80_estate/backend/shared/areas/gallery3.scss
112
+ - app/assets/stylesheets/c80_estate/backend/shared/areas/stroitelnye_materialy_item.scss
113
+ - app/assets/stylesheets/c80_estate/backend/shared/areas/stroitelnye_materialy_item/div_button_order.scss
114
+ - app/assets/stylesheets/c80_estate/backend/shared/areas/stroitelnye_materialy_item/div_comments.scss
115
+ - app/assets/stylesheets/c80_estate/backend/shared/areas/stroitelnye_materialy_item/div_common_props.scss
116
+ - app/assets/stylesheets/c80_estate/backend/shared/areas/stroitelnye_materialy_item/div_desc.scss
117
+ - app/assets/stylesheets/c80_estate/backend/shared/areas/stroitelnye_materialy_item/div_main.scss
118
+ - app/assets/stylesheets/c80_estate/backend/shared/areas/stroitelnye_materialy_item/div_price_info.scss
119
+ - app/assets/stylesheets/c80_estate/backend/shared/areas/stroitelnye_materialy_item/div_related_items.scss
120
+ - app/assets/stylesheets/c80_estate/backend/shared/areas/stroitelnye_materialy_item/div_vendor_logo.scss
121
+ - app/assets/stylesheets/c80_estate/backend/shared/index_adds_like_sevents.scss
102
122
  - app/assets/stylesheets/c80_estate/lib/bootstrap-slider.scss
123
+ - app/assets/stylesheets/c80_estate/lib/magnific-popup-custom.scss
124
+ - app/assets/stylesheets/c80_estate/lib/magnific-popup.scss
103
125
  - app/assets/stylesheets/c80_estate/lib/mixins.scss
126
+ - app/assets/stylesheets/c80_estate/lib/slick-carousel-custom.scss
127
+ - app/assets/stylesheets/c80_estate/lib/slick-theme.scss
128
+ - app/assets/stylesheets/c80_estate/lib/slick.scss
104
129
  - app/assets/stylesheets/c80_estate_active_admin.scss
105
130
  - app/controllers/c80_estate/ajax_areas_controller.rb
106
131
  - app/controllers/c80_estate/ajax_controller.rb
107
132
  - app/controllers/c80_estate/ajax_view_controller.rb
108
133
  - app/helpers/c80_estate/app_helper.rb
134
+ - app/helpers/c80_estate/areas_helper.rb
109
135
  - app/models/c80_estate/aphoto.rb
110
136
  - app/models/c80_estate/area.rb
111
137
  - app/models/c80_estate/astatus.rb
@@ -127,6 +153,7 @@ files:
127
153
  - app/uploaders/c80_estate/atphoto_uploader.rb
128
154
  - app/uploaders/c80_estate/plogo_uploader.rb
129
155
  - app/uploaders/c80_estate/pphoto_uploader.rb
156
+ - app/views/admin/areas/_show_area.html.erb
130
157
  - app/views/admin/dashboard/_atype_in_list.html.erb
131
158
  - app/views/admin/dashboard/_prop_in_list.html.erb
132
159
  - app/views/c80_estate/ajax_areas/exel_import.html.erb
@@ -136,6 +163,8 @@ files:
136
163
  - app/views/c80_estate/shared/_form_upload_areas_excel.erb
137
164
  - app/views/c80_estate/shared/_table_properties_coef_busy.html.erb
138
165
  - app/views/c80_estate/shared/_table_properties_coef_busy_sq.html.erb
166
+ - app/views/c80_estate/shared/areas/_gallery4.html.erb
167
+ - app/views/c80_estate/shared/areas/_single_area_on_page.html.erb
139
168
  - bin/console
140
169
  - bin/setup
141
170
  - c80_estate.gemspec