c80_catoffers 0.1.0.2 → 0.1.0.3
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/README.md +16 -24
 - data/app/assets/stylesheets/c80_catoffers/_mixins/default_li_iconed.scss +31 -0
 - data/app/assets/stylesheets/c80_catoffers/offer_list_iconed.scss +6 -30
 - data/app/assets/stylesheets/c80_catoffers/offer_list_iconed_columns.scss +21 -0
 - data/app/assets/stylesheets/c80_catoffers/offer_list_widget.scss +28 -0
 - data/app/helpers/c80_catoffers/app_helper.rb +100 -20
 - data/app/helpers/c80_catoffers/inner/css_helper.rb +121 -0
 - data/app/models/c80_catoffers/offer.rb +11 -0
 - data/app/models/c80_catoffers/ophoto.rb +11 -1
 - data/app/uploaders/c80_catoffers/ophoto_uploader.rb +14 -0
 - data/app/views/c80_catoffers/_offers_list_iconed.html.erb +2 -2
 - data/app/views/c80_catoffers/_offers_list_iconed_columns.html.erb +29 -0
 - data/app/views/c80_catoffers/_offers_list_widget.html.erb +56 -0
 - data/db/migrate/20161023115252_c80_catoffers_add_thumb_md_to_props.rb +8 -0
 - data/db/seeds/c80_catoffers_01_fill_props.rb +11 -7
 - data/db/seeds/c80_catoffers_02_fill_offers.rb +99 -0
 - data/lib/c80_catoffers/version.rb +1 -1
 - metadata +10 -3
 - data/db/seeds/x03_fill_offers.rb +0 -20
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: a6dbd0074caa473be1baafb8f7e7d66e2229db2d
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: df3c45d4db793127c49799c4f69b99c7f5066947
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 4764a36f6d498badab978f4c2c40a98b01da95919b36ca9245e26504728ca56115afd2c7deb4445883db3057fb737bab651002943fa60eb7461cc0ae30f14a96
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 47e9f2b06009f2b75d64f17841dcc2f29f143663b54a42d08f677a2a9a3440d7c5d9e7e0e29554d700a7ee9efde3d4160732c724832db6aef54f19b1cac2ca73
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -9,36 +9,28 @@ TODO: Delete this and the text above, and describe your gem 
     | 
|
| 
       9 
9 
     | 
    
         
             
            Add this line to your application's Gemfile:
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
11 
     | 
    
         
             
            ```ruby
         
     | 
| 
       12 
     | 
    
         
            -
            gem ' 
     | 
| 
      
 12 
     | 
    
         
            +
                gem 'c80_lazy_images', '0.1.0'
         
     | 
| 
      
 13 
     | 
    
         
            +
                gem 'c80_catoffers'
         
     | 
| 
       13 
14 
     | 
    
         
             
            ```
         
     | 
| 
       14 
15 
     | 
    
         | 
| 
       15 
     | 
    
         
            -
            And then execute:
         
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
       17 
     | 
    
         
            -
                $ bundle
         
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
            Or install it yourself as:
         
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
                $ gem install c80_catoffers
         
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
            ## Usage
         
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
       25 
16 
     | 
    
         
             
            ```scss
         
     | 
| 
       26 
     | 
    
         
            -
            @import "c80_catoffers";
         
     | 
| 
       27 
     | 
    
         
            -
            @import "c80_catoffers_backend";
         
     | 
| 
      
 17 
     | 
    
         
            +
                @import "c80_catoffers";
         
     | 
| 
      
 18 
     | 
    
         
            +
                @import "c80_catoffers_backend";
         
     | 
| 
       28 
19 
     | 
    
         
             
            ```
         
     | 
| 
       29 
20 
     | 
    
         | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
       32 
     | 
    
         
            -
             
     | 
| 
       33 
     | 
    
         
            -
             
     | 
| 
       34 
     | 
    
         
            -
             
     | 
| 
       35 
     | 
    
         
            -
             
     | 
| 
       36 
     | 
    
         
            -
            ## Contributing
         
     | 
| 
       37 
     | 
    
         
            -
             
     | 
| 
       38 
     | 
    
         
            -
            Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/c80_catoffers. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
         
     | 
| 
      
 21 
     | 
    
         
            +
            Host app's `application_controller.rb`:
         
     | 
| 
      
 22 
     | 
    
         
            +
            ```
         
     | 
| 
      
 23 
     | 
    
         
            +
                  helper C80LazyImages::Engine.helpers
         
     | 
| 
      
 24 
     | 
    
         
            +
                  helper C80Catoffers::Engine.helpers
         
     | 
| 
      
 25 
     | 
    
         
            +
            ```
         
     | 
| 
       39 
26 
     | 
    
         | 
| 
      
 27 
     | 
    
         
            +
            ## Usage: helpers
         
     | 
| 
       40 
28 
     | 
    
         | 
| 
       41 
     | 
    
         
            -
             
     | 
| 
      
 29 
     | 
    
         
            +
            ```
         
     | 
| 
      
 30 
     | 
    
         
            +
            render_offer_full_desc(offer_tag)
         
     | 
| 
      
 31 
     | 
    
         
            +
            render_offers_list_by_cat(category_tag)
         
     | 
| 
      
 32 
     | 
    
         
            +
            render_offers_list_grouped
         
     | 
| 
      
 33 
     | 
    
         
            +
            render_offers_list_iconed(css_style:'default', thumb_size:'thumb_sm')
         
     | 
| 
       42 
34 
     | 
    
         | 
| 
       43 
     | 
    
         
            -
             
     | 
| 
      
 35 
     | 
    
         
            +
            ```
         
     | 
| 
       44 
36 
     | 
    
         | 
| 
         @@ -0,0 +1,31 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            /*NOTE:: подразумевается дефолтное использование с thumb_sm */
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            @mixin default_li_iconed {
         
     | 
| 
      
 4 
     | 
    
         
            +
              margin-bottom: 15px;
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
              /* иконка категории в ссылке */
         
     | 
| 
      
 7 
     | 
    
         
            +
              a.lazy-image-wrapper {
         
     | 
| 
      
 8 
     | 
    
         
            +
                overflow: hidden;
         
     | 
| 
      
 9 
     | 
    
         
            +
                float: left;
         
     | 
| 
      
 10 
     | 
    
         
            +
                clear: left;
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                img {
         
     | 
| 
      
 13 
     | 
    
         
            +
                  max-width: 100%;
         
     | 
| 
      
 14 
     | 
    
         
            +
                  width: 100%;
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                }
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
              }
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
              /* название категории */
         
     | 
| 
      
 21 
     | 
    
         
            +
              a.title {
         
     | 
| 
      
 22 
     | 
    
         
            +
                padding-left: 10px;
         
     | 
| 
      
 23 
     | 
    
         
            +
                display: inline-block;
         
     | 
| 
      
 24 
     | 
    
         
            +
                float: left;
         
     | 
| 
      
 25 
     | 
    
         
            +
                clear: right;
         
     | 
| 
      
 26 
     | 
    
         
            +
                width: calc(100% - 80px); /*NOTE:: подразумевается дефолтное использование с thumb_sm */
         
     | 
| 
      
 27 
     | 
    
         
            +
                overflow: hidden;
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
              }
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
            }
         
     | 
| 
         @@ -6,6 +6,7 @@ div.offer_list_iconed { 
     | 
|
| 
       6 
6 
     | 
    
         
             
                list-style: none;
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
       8 
8 
     | 
    
         
             
                li {
         
     | 
| 
      
 9 
     | 
    
         
            +
                  margin-bottom: 15px;
         
     | 
| 
       9 
10 
     | 
    
         | 
| 
       10 
11 
     | 
    
         
             
                  /* иконка категории в ссылке */
         
     | 
| 
       11 
12 
     | 
    
         
             
                  a.lazy-image-wrapper {
         
     | 
| 
         @@ -16,43 +17,18 @@ div.offer_list_iconed { 
     | 
|
| 
       16 
17 
     | 
    
         
             
                    img {
         
     | 
| 
       17 
18 
     | 
    
         
             
                      max-width: 100%;
         
     | 
| 
       18 
19 
     | 
    
         
             
                      width: 100%;
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
       19 
21 
     | 
    
         
             
                    }
         
     | 
| 
       20 
22 
     | 
    
         | 
| 
       21 
23 
     | 
    
         
             
                  }
         
     | 
| 
       22 
24 
     | 
    
         | 
| 
       23 
25 
     | 
    
         
             
                  /* название категории */
         
     | 
| 
       24 
26 
     | 
    
         
             
                  a.title {
         
     | 
| 
      
 27 
     | 
    
         
            +
                    padding-left: 10px;
         
     | 
| 
       25 
28 
     | 
    
         
             
                    display: inline-block;
         
     | 
| 
       26 
29 
     | 
    
         
             
                    float: left;
         
     | 
| 
       27 
30 
     | 
    
         
             
                    clear: right;
         
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
       30 
     | 
    
         
            -
                }
         
     | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
       32 
     | 
    
         
            -
              }
         
     | 
| 
       33 
     | 
    
         
            -
             
     | 
| 
       34 
     | 
    
         
            -
              &.style_photostudio {
         
     | 
| 
       35 
     | 
    
         
            -
             
     | 
| 
       36 
     | 
    
         
            -
                ul {
         
     | 
| 
       37 
     | 
    
         
            -
             
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
                  li {
         
     | 
| 
       40 
     | 
    
         
            -
                    margin-bottom: 13px;
         
     | 
| 
       41 
     | 
    
         
            -
             
     | 
| 
       42 
     | 
    
         
            -
                    /* иконка категории в ссылке */
         
     | 
| 
       43 
     | 
    
         
            -
                    a.lazy-image-wrapper {
         
     | 
| 
       44 
     | 
    
         
            -
             
     | 
| 
       45 
     | 
    
         
            -
                      img {
         
     | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
       47 
     | 
    
         
            -
                      }
         
     | 
| 
       48 
     | 
    
         
            -
             
     | 
| 
       49 
     | 
    
         
            -
                    }
         
     | 
| 
       50 
     | 
    
         
            -
             
     | 
| 
       51 
     | 
    
         
            -
                    /* название категории */
         
     | 
| 
       52 
     | 
    
         
            -
                    a.title {
         
     | 
| 
       53 
     | 
    
         
            -
                      padding-left: 15px;
         
     | 
| 
       54 
     | 
    
         
            -
                      width: calc(100% - 80px);
         
     | 
| 
       55 
     | 
    
         
            -
                    }
         
     | 
| 
      
 31 
     | 
    
         
            +
                    width: calc(100% - 80px); /*NOTE:: подразумевается дефолтное использование с thumb_sm */
         
     | 
| 
       56 
32 
     | 
    
         | 
| 
       57 
33 
     | 
    
         
             
                  }
         
     | 
| 
       58 
34 
     | 
    
         | 
| 
         @@ -65,10 +41,10 @@ div.offer_list_iconed { 
     | 
|
| 
       65 
41 
     | 
    
         
             
                ul {
         
     | 
| 
       66 
42 
     | 
    
         | 
| 
       67 
43 
     | 
    
         
             
                  li {
         
     | 
| 
       68 
     | 
    
         
            -
                    background-color: #dfffe4 
     | 
| 
      
 44 
     | 
    
         
            +
                    /*background-color: #dfffe4;*/
         
     | 
| 
       69 
45 
     | 
    
         | 
| 
       70 
46 
     | 
    
         
             
                    a.lazy-image-wrapper {
         
     | 
| 
       71 
     | 
    
         
            -
                      background-color: # 
     | 
| 
      
 47 
     | 
    
         
            +
                      background-color: #F8F8F8 !important;
         
     | 
| 
       72 
48 
     | 
    
         
             
                    }
         
     | 
| 
       73 
49 
     | 
    
         | 
| 
       74 
50 
     | 
    
         
             
                  }
         
     | 
| 
         @@ -0,0 +1,28 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            div.offer_list_widget {
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
              ul {
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                margin:0;
         
     | 
| 
      
 6 
     | 
    
         
            +
                padding:0;
         
     | 
| 
      
 7 
     | 
    
         
            +
                list-style: none;
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                > li {
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                  float:left;
         
     | 
| 
      
 12 
     | 
    
         
            +
                  display: inline-block;
         
     | 
| 
      
 13 
     | 
    
         
            +
                  margin-right: 15px;
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                  > * {
         
     | 
| 
      
 16 
     | 
    
         
            +
                    float: left;
         
     | 
| 
      
 17 
     | 
    
         
            +
                    clear: both;
         
     | 
| 
      
 18 
     | 
    
         
            +
                  }
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                  a.lazy-image-wrapper {
         
     | 
| 
      
 21 
     | 
    
         
            +
                    background-color: #F8F8F8 !important;
         
     | 
| 
      
 22 
     | 
    
         
            +
                  }
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                }
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
              }
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
            }
         
     | 
| 
         @@ -32,6 +32,52 @@ module C80Catoffers 
     | 
|
| 
       32 
32 
     | 
    
         | 
| 
       33 
33 
     | 
    
         
             
                end
         
     | 
| 
       34 
34 
     | 
    
         | 
| 
      
 35 
     | 
    
         
            +
                def render_offers_list_by_cat_iconed(category_tag, css_class_for_wrapper='default', thumb_size='thumb_sm')
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
                  offers = C80Catoffers::Offer.joins(:categories).where(:c80_catoffers_categories => {:slug => category_tag})
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
                  # выведем в 4 столбца
         
     | 
| 
      
 40 
     | 
    
         
            +
                  cols_count = 4
         
     | 
| 
      
 41 
     | 
    
         
            +
                  n = offers.count / cols_count+1
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
                  # соберём в этом массиве массивов
         
     | 
| 
      
 44 
     | 
    
         
            +
                  a = []
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
                  # создадим подмассивы
         
     | 
| 
      
 47 
     | 
    
         
            +
                  cols_count.times do |i|
         
     | 
| 
      
 48 
     | 
    
         
            +
                    a << []
         
     | 
| 
      
 49 
     | 
    
         
            +
                  end
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
                  # указатель на заполняемый подмассив
         
     | 
| 
      
 52 
     | 
    
         
            +
                  k = 0
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
                  # обойдём все предложения
         
     | 
| 
      
 55 
     | 
    
         
            +
                  offers.all.each_with_index do |offer, i|
         
     | 
| 
      
 56 
     | 
    
         
            +
                    Rails.logger.debug "[TRACE] offer_id = #{offer.id} in k=#{k} sub-array."
         
     | 
| 
      
 57 
     | 
    
         
            +
                    a[k] << offer
         
     | 
| 
      
 58 
     | 
    
         
            +
                    if i % n == 0 && i != 0 && k <= cols_count
         
     | 
| 
      
 59 
     | 
    
         
            +
                      k += 1
         
     | 
| 
      
 60 
     | 
    
         
            +
                      Rails.logger.debug "[TRACE] k++: #{k}"
         
     | 
| 
      
 61 
     | 
    
         
            +
                    end
         
     | 
| 
      
 62 
     | 
    
         
            +
                  end
         
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
      
 64 
     | 
    
         
            +
                  # чтобы вёрстка не прыгала - зафиксируем размер картинки
         
     | 
| 
      
 65 
     | 
    
         
            +
                  css_wh = _calc_css_for_list_iconed(thumb_size)
         
     | 
| 
      
 66 
     | 
    
         
            +
             
     | 
| 
      
 67 
     | 
    
         
            +
                  #
         
     | 
| 
      
 68 
     | 
    
         
            +
                  css_for_column = "width:#{100/cols_count}%"
         
     | 
| 
      
 69 
     | 
    
         
            +
             
     | 
| 
      
 70 
     | 
    
         
            +
                  render :partial => 'c80_catoffers/offers_list_iconed_columns',
         
     | 
| 
      
 71 
     | 
    
         
            +
                         :locals => {
         
     | 
| 
      
 72 
     | 
    
         
            +
                             list: a,
         
     | 
| 
      
 73 
     | 
    
         
            +
                             wrapper_div_class: "offer_list_iconed_columns clearfix cols_count_#{cols_count} #{css_class_for_wrapper}",
         
     | 
| 
      
 74 
     | 
    
         
            +
                             css_for_column: css_for_column,
         
     | 
| 
      
 75 
     | 
    
         
            +
                             css_for_a: css_wh[:a_lazy_wrapper],
         
     | 
| 
      
 76 
     | 
    
         
            +
                             css_for_title: css_wh[:title]
         
     | 
| 
      
 77 
     | 
    
         
            +
                         }
         
     | 
| 
      
 78 
     | 
    
         
            +
             
     | 
| 
      
 79 
     | 
    
         
            +
                end
         
     | 
| 
      
 80 
     | 
    
         
            +
             
     | 
| 
       35 
81 
     | 
    
         
             
                def render_offers_list_grouped
         
     | 
| 
       36 
82 
     | 
    
         | 
| 
       37 
83 
     | 
    
         
             
                  # результат соберём тут
         
     | 
| 
         @@ -52,42 +98,76 @@ module C80Catoffers 
     | 
|
| 
       52 
98 
     | 
    
         | 
| 
       53 
99 
     | 
    
         
             
                end
         
     | 
| 
       54 
100 
     | 
    
         | 
| 
      
 101 
     | 
    
         
            +
                ##
         
     | 
| 
       55 
102 
     | 
    
         
             
                # выведем линейный список категорий с иконками
         
     | 
| 
       56 
     | 
    
         
            -
                 
     | 
| 
      
 103 
     | 
    
         
            +
                #
         
     | 
| 
      
 104 
     | 
    
         
            +
                # состав view:
         
     | 
| 
      
 105 
     | 
    
         
            +
                #   иконка
         
     | 
| 
      
 106 
     | 
    
         
            +
                #   кликабельное название
         
     | 
| 
      
 107 
     | 
    
         
            +
                #
         
     | 
| 
      
 108 
     | 
    
         
            +
                # параметрами можно добавить css стиль и указать размер иконки
         
     | 
| 
      
 109 
     | 
    
         
            +
                #
         
     | 
| 
      
 110 
     | 
    
         
            +
                # порядок элементов - определяется Offer.all_widgeted.def_order
         
     | 
| 
      
 111 
     | 
    
         
            +
                # количество позиций - фиксированно: Prop.positions_count
         
     | 
| 
      
 112 
     | 
    
         
            +
                #
         
     | 
| 
      
 113 
     | 
    
         
            +
                # css class: offer_list_iconed
         
     | 
| 
      
 114 
     | 
    
         
            +
                def render_offers_list_iconed(css_style:'default', thumb_size:'thumb_sm')
         
     | 
| 
      
 115 
     | 
    
         
            +
                  # Rails.logger.debug "[TRACE] <render_offers_list_iconed>"
         
     | 
| 
       57 
116 
     | 
    
         | 
| 
       58 
117 
     | 
    
         
             
                  # свойства модуля
         
     | 
| 
       59 
118 
     | 
    
         
             
                  p = Prop.first
         
     | 
| 
       60 
119 
     | 
    
         | 
| 
       61 
     | 
    
         
            -
                  # список категорий, которые надо вывести в виджете
         
     | 
| 
       62 
     | 
    
         
            -
                  list =  
     | 
| 
       63 
     | 
    
         
            -
             
     | 
| 
       64 
     | 
    
         
            -
                  # сколько должно быть позиций?
         
     | 
| 
       65 
     | 
    
         
            -
                  positions_count = p.positions_count
         
     | 
| 
       66 
     | 
    
         
            -
                  # Rails.logger.debug "[TRACE] positions_count: #{positions_count}; list.count: #{list.count}"
         
     | 
| 
       67 
     | 
    
         
            -
             
     | 
| 
       68 
     | 
    
         
            -
                  # если всего в списке меньше, чем надо - добьём список слотами
         
     | 
| 
       69 
     | 
    
         
            -
                  if list.count < positions_count
         
     | 
| 
       70 
     | 
    
         
            -
                    delta = positions_count - list.count
         
     | 
| 
       71 
     | 
    
         
            -
                    delta.times do |i|
         
     | 
| 
       72 
     | 
    
         
            -
                      # Rails.logger.debug "[TRACE] Offer.new"
         
     | 
| 
       73 
     | 
    
         
            -
                      list << Offer.new({ title: '' })
         
     | 
| 
       74 
     | 
    
         
            -
                    end
         
     | 
| 
       75 
     | 
    
         
            -
                  end
         
     | 
| 
      
 120 
     | 
    
         
            +
                  # список категорий, которые надо вывести в виджете (со слотами)
         
     | 
| 
      
 121 
     | 
    
         
            +
                  list = _get_widgeted_offers_with_slots
         
     | 
| 
       76 
122 
     | 
    
         | 
| 
       77 
123 
     | 
    
         
             
                  # чтобы вёрстка не прыгала - зафиксируем размер картинки
         
     | 
| 
       78 
     | 
    
         
            -
                   
     | 
| 
       79 
     | 
    
         
            -
                  h = p.thumb_sm_height
         
     | 
| 
      
 124 
     | 
    
         
            +
                  css_wh = _calc_css_for_list_iconed(thumb_size)
         
     | 
| 
       80 
125 
     | 
    
         | 
| 
       81 
126 
     | 
    
         
             
                  render :partial => 'c80_catoffers/offers_list_iconed',
         
     | 
| 
       82 
127 
     | 
    
         
             
                         :locals => {
         
     | 
| 
       83 
128 
     | 
    
         
             
                             list: list,
         
     | 
| 
       84 
129 
     | 
    
         
             
                             css_style_for_block: css_style,
         
     | 
| 
       85 
     | 
    
         
            -
                             css_for_a:  
     | 
| 
       86 
     | 
    
         
            -
                             css_for_title:  
     | 
| 
      
 130 
     | 
    
         
            +
                             css_for_a: css_wh[:a_lazy_wrapper],
         
     | 
| 
      
 131 
     | 
    
         
            +
                             css_for_title: css_wh[:title]
         
     | 
| 
       87 
132 
     | 
    
         
             
                         }
         
     | 
| 
       88 
133 
     | 
    
         | 
| 
       89 
134 
     | 
    
         | 
| 
       90 
135 
     | 
    
         
             
                end
         
     | 
| 
       91 
136 
     | 
    
         | 
| 
      
 137 
     | 
    
         
            +
                ##
         
     | 
| 
      
 138 
     | 
    
         
            +
                # Построить линейный слотованный список предложений, каждое предложение
         
     | 
| 
      
 139 
     | 
    
         
            +
                # в списке и представить в виде блока с указанным ВЕРТИКАЛЬНЫМ списком свойств +list_of_props+
         
     | 
| 
      
 140 
     | 
    
         
            +
                #
         
     | 
| 
      
 141 
     | 
    
         
            +
                def render_offers_widget(p_list_of_props, style='default', thumb_size='thumb_md')
         
     | 
| 
      
 142 
     | 
    
         
            +
             
     | 
| 
      
 143 
     | 
    
         
            +
                  # соберём слотованный список предложений
         
     | 
| 
      
 144 
     | 
    
         
            +
                  list_offers = _get_widgeted_offers_with_slots
         
     | 
| 
      
 145 
     | 
    
         
            +
             
     | 
| 
      
 146 
     | 
    
         
            +
                  # релевантный список списков значений указанных характеристик слотованного списка предложений
         
     | 
| 
      
 147 
     | 
    
         
            +
                  list_of_values = []
         
     | 
| 
      
 148 
     | 
    
         
            +
             
     | 
| 
      
 149 
     | 
    
         
            +
                  # обойдём этот список и для каждого предложения соберём релевантный список значений свойств
         
     | 
| 
      
 150 
     | 
    
         
            +
                  list_offers.each do |offer|
         
     | 
| 
      
 151 
     | 
    
         
            +
             
     | 
| 
      
 152 
     | 
    
         
            +
                    # соберём и обработаем значения нужных характеристик каждого предложения
         
     | 
| 
      
 153 
     | 
    
         
            +
                    vals = _proccess_list_of_props(p_list_of_props, offer)
         
     | 
| 
      
 154 
     | 
    
         
            +
                    list_of_values << vals
         
     | 
| 
      
 155 
     | 
    
         
            +
                  end
         
     | 
| 
      
 156 
     | 
    
         
            +
             
     | 
| 
      
 157 
     | 
    
         
            +
                  # чтобы вёрстка не прыгала - зафиксируем размер картинки
         
     | 
| 
      
 158 
     | 
    
         
            +
                  css_wh = _calc_css_for_list_widget(thumb_size)
         
     | 
| 
      
 159 
     | 
    
         
            +
             
     | 
| 
      
 160 
     | 
    
         
            +
                  render :partial => 'c80_catoffers/offers_list_widget',
         
     | 
| 
      
 161 
     | 
    
         
            +
                         :locals => {
         
     | 
| 
      
 162 
     | 
    
         
            +
                             list_props: p_list_of_props,
         
     | 
| 
      
 163 
     | 
    
         
            +
                             css_style_for_block: style,
         
     | 
| 
      
 164 
     | 
    
         
            +
                             list_offers: list_offers,
         
     | 
| 
      
 165 
     | 
    
         
            +
                             list_of_values_lists: list_of_values,
         
     | 
| 
      
 166 
     | 
    
         
            +
                             css_for_a: css_wh[:a_lazy_wrapper],
         
     | 
| 
      
 167 
     | 
    
         
            +
                             css_for_title: css_wh[:title]
         
     | 
| 
      
 168 
     | 
    
         
            +
                         }
         
     | 
| 
      
 169 
     | 
    
         
            +
             
     | 
| 
      
 170 
     | 
    
         
            +
                end
         
     | 
| 
      
 171 
     | 
    
         
            +
             
     | 
| 
       92 
172 
     | 
    
         
             
              end
         
     | 
| 
       93 
173 
     | 
    
         
             
            end
         
     | 
| 
         @@ -0,0 +1,121 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module C80Catoffers
         
     | 
| 
      
 2 
     | 
    
         
            +
              module Inner
         
     | 
| 
      
 3 
     | 
    
         
            +
                module CssHelper
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                  ##
         
     | 
| 
      
 6 
     | 
    
         
            +
                  # Помогает методу +render_offers_widget+ тем, что содержит код,
         
     | 
| 
      
 7 
     | 
    
         
            +
                  # перебирающий имена свойств из +list_of_props+,
         
     | 
| 
      
 8 
     | 
    
         
            +
                  # находит значения в элементе +offer+,
         
     | 
| 
      
 9 
     | 
    
         
            +
                  # и возвращает релевантный список значений
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                  def _proccess_list_of_props(list_of_props, offer)
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                    # результат соберём тут
         
     | 
| 
      
 14 
     | 
    
         
            +
                    list_of_values = []
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                    # переберём имена свойств, подберём для каждого значение
         
     | 
| 
      
 17 
     | 
    
         
            +
                    list_of_props.each_with_index do |prop_name, index|
         
     | 
| 
      
 18 
     | 
    
         
            +
                      prop_value = offer.try(prop_name)
         
     | 
| 
      
 19 
     | 
    
         
            +
                      unless prop_value.present?
         
     | 
| 
      
 20 
     | 
    
         
            +
                        prop_value = 'Значение не определено'
         
     | 
| 
      
 21 
     | 
    
         
            +
                      end
         
     | 
| 
      
 22 
     | 
    
         
            +
                      list_of_values << prop_value
         
     | 
| 
      
 23 
     | 
    
         
            +
                    end
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
                    list_of_values
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                  end
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
                  ##
         
     | 
| 
      
 30 
     | 
    
         
            +
                  # Помогает методам этого хелпер-модуля: выдаёт слотованный список предложений,
         
     | 
| 
      
 31 
     | 
    
         
            +
                  # которые необходимо вывести в виджете.
         
     | 
| 
      
 32 
     | 
    
         
            +
                  #
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
                  def _get_widgeted_offers_with_slots
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
                    # свойства модуля
         
     | 
| 
      
 37 
     | 
    
         
            +
                    p = Prop.first
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
                    # результат соберём тут список категорий, которые надо вывести в виджете
         
     | 
| 
      
 40 
     | 
    
         
            +
                    list = Offer.all_widgeted.def_order
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
                    # сколько должно быть позиций?
         
     | 
| 
      
 43 
     | 
    
         
            +
                    positions_count = p.positions_count
         
     | 
| 
      
 44 
     | 
    
         
            +
                    # Rails.logger.debug "[TRACE] positions_count: #{positions_count}; list.count: #{list.count}"
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
                    # если всего в списке меньше, чем надо - добьём список слотами
         
     | 
| 
      
 47 
     | 
    
         
            +
                    if list.count < positions_count
         
     | 
| 
      
 48 
     | 
    
         
            +
                      delta = positions_count - list.count
         
     | 
| 
      
 49 
     | 
    
         
            +
                      delta.times do |i|
         
     | 
| 
      
 50 
     | 
    
         
            +
                        # Rails.logger.debug "[TRACE] Offer.new"
         
     | 
| 
      
 51 
     | 
    
         
            +
                        list << Offer.new({
         
     | 
| 
      
 52 
     | 
    
         
            +
                                              title: "Свободное место №#{i}",
         
     | 
| 
      
 53 
     | 
    
         
            +
                                              price: 'Цену уточняйте в админке',
         
     | 
| 
      
 54 
     | 
    
         
            +
                                              short_desc: 'Описание не указано'
         
     | 
| 
      
 55 
     | 
    
         
            +
                                          }
         
     | 
| 
      
 56 
     | 
    
         
            +
                        )
         
     | 
| 
      
 57 
     | 
    
         
            +
                      end
         
     | 
| 
      
 58 
     | 
    
         
            +
                    end
         
     | 
| 
      
 59 
     | 
    
         
            +
             
     | 
| 
      
 60 
     | 
    
         
            +
                    list
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
                  end
         
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
      
 64 
     | 
    
         
            +
                  ##
         
     | 
| 
      
 65 
     | 
    
         
            +
                  # Спец-метод узкого назначения - формирует css стиль, фиксирует габариты ссылки-конейнера,
         
     | 
| 
      
 66 
     | 
    
         
            +
                  # в которую помещена картинка.
         
     | 
| 
      
 67 
     | 
    
         
            +
                  # Также, предполагает, что СЛЕВА/СПРАВА от картинки располагается блок типа title,
         
     | 
| 
      
 68 
     | 
    
         
            +
                  # и для таких блоков фиксируется ВЫСОТА (подгоняется под ВЫСОТУ картинки)
         
     | 
| 
      
 69 
     | 
    
         
            +
             
     | 
| 
      
 70 
     | 
    
         
            +
                  def _calc_css_for_list_iconed(thumb_size)
         
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
      
 72 
     | 
    
         
            +
                    # свойства модуля
         
     | 
| 
      
 73 
     | 
    
         
            +
                    p = Prop.first
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
                    # css_for_a: ,
         
     | 
| 
      
 76 
     | 
    
         
            +
                    # css_for_title:
         
     | 
| 
      
 77 
     | 
    
         
            +
             
     | 
| 
      
 78 
     | 
    
         
            +
                    # чтобы вёрстка не прыгала - зафиксируем размер картинки
         
     | 
| 
      
 79 
     | 
    
         
            +
                    w = p.send("#{thumb_size}_width") #.thumb_sm_width
         
     | 
| 
      
 80 
     | 
    
         
            +
                    h = p.send("#{thumb_size}_height") #.thumb_sm_height
         
     | 
| 
      
 81 
     | 
    
         
            +
             
     | 
| 
      
 82 
     | 
    
         
            +
                    res = {
         
     | 
| 
      
 83 
     | 
    
         
            +
                        :a_lazy_wrapper => "width:#{w}px;height:#{h}px",
         
     | 
| 
      
 84 
     | 
    
         
            +
                        :title => "height:#{h}px;line-height:#{h}px"
         
     | 
| 
      
 85 
     | 
    
         
            +
                    }
         
     | 
| 
      
 86 
     | 
    
         
            +
             
     | 
| 
      
 87 
     | 
    
         
            +
                    # Rails.logger.debug "[TRACE] <_calc_css_for_list_iconed> #{res}"
         
     | 
| 
      
 88 
     | 
    
         
            +
                    res
         
     | 
| 
      
 89 
     | 
    
         
            +
             
     | 
| 
      
 90 
     | 
    
         
            +
                  end
         
     | 
| 
      
 91 
     | 
    
         
            +
             
     | 
| 
      
 92 
     | 
    
         
            +
                  ##
         
     | 
| 
      
 93 
     | 
    
         
            +
                  # Спец-метод узкого назначения - формирует css стиль, фиксирует габариты ссылки-конейнера,
         
     | 
| 
      
 94 
     | 
    
         
            +
                  # в которую помещена картинка и ШИРИНУ соседних элементов списка.
         
     | 
| 
      
 95 
     | 
    
         
            +
             
     | 
| 
      
 96 
     | 
    
         
            +
                  def _calc_css_for_list_widget(thumb_size)
         
     | 
| 
      
 97 
     | 
    
         
            +
             
     | 
| 
      
 98 
     | 
    
         
            +
                    # свойства модуля
         
     | 
| 
      
 99 
     | 
    
         
            +
                    p = Prop.first
         
     | 
| 
      
 100 
     | 
    
         
            +
             
     | 
| 
      
 101 
     | 
    
         
            +
                    # css_for_a: ,
         
     | 
| 
      
 102 
     | 
    
         
            +
                    # css_for_title:
         
     | 
| 
      
 103 
     | 
    
         
            +
             
     | 
| 
      
 104 
     | 
    
         
            +
                    # чтобы вёрстка не прыгала - зафиксируем размер картинки
         
     | 
| 
      
 105 
     | 
    
         
            +
                    w = p.send("#{thumb_size}_width") #.thumb_sm_width
         
     | 
| 
      
 106 
     | 
    
         
            +
                    h = p.send("#{thumb_size}_height") #.thumb_sm_height
         
     | 
| 
      
 107 
     | 
    
         
            +
             
     | 
| 
      
 108 
     | 
    
         
            +
                    res = {
         
     | 
| 
      
 109 
     | 
    
         
            +
                        :a_lazy_wrapper => "width:#{w}px;height:#{h}px",
         
     | 
| 
      
 110 
     | 
    
         
            +
                        :title => "width:#{w}px"
         
     | 
| 
      
 111 
     | 
    
         
            +
                    }
         
     | 
| 
      
 112 
     | 
    
         
            +
             
     | 
| 
      
 113 
     | 
    
         
            +
                    # Rails.logger.debug "[TRACE] <_calc_css_for_list_iconed> #{res}"
         
     | 
| 
      
 114 
     | 
    
         
            +
                    res
         
     | 
| 
      
 115 
     | 
    
         
            +
             
     | 
| 
      
 116 
     | 
    
         
            +
                  end
         
     | 
| 
      
 117 
     | 
    
         
            +
             
     | 
| 
      
 118 
     | 
    
         
            +
             
     | 
| 
      
 119 
     | 
    
         
            +
                end
         
     | 
| 
      
 120 
     | 
    
         
            +
              end
         
     | 
| 
      
 121 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -49,6 +49,7 @@ module C80Catoffers 
     | 
|
| 
       49 
49 
     | 
    
         
             
                  self.joins(:props)
         
     | 
| 
       50 
50 
     | 
    
         
             
                end
         
     | 
| 
       51 
51 
     | 
    
         | 
| 
      
 52 
     | 
    
         
            +
                # NOTE:: пока используется в list_iconed, устарел, т.к. появился ophoto_thumb
         
     | 
| 
       52 
53 
     | 
    
         
             
                def ophoto_thumb_sm
         
     | 
| 
       53 
54 
     | 
    
         
             
                  res = ''
         
     | 
| 
       54 
55 
     | 
    
         
             
                  if ophotos.count > 0
         
     | 
| 
         @@ -57,6 +58,16 @@ module C80Catoffers 
     | 
|
| 
       57 
58 
     | 
    
         
             
                  res
         
     | 
| 
       58 
59 
     | 
    
         
             
                end
         
     | 
| 
       59 
60 
     | 
    
         | 
| 
      
 61 
     | 
    
         
            +
                # выдать обложку предложения указанного размера
         
     | 
| 
      
 62 
     | 
    
         
            +
                # используется, например, при формировании списка предложений с картинками в виджете
         
     | 
| 
      
 63 
     | 
    
         
            +
                def ophoto_thumb(thumb_size='thumb_sm')
         
     | 
| 
      
 64 
     | 
    
         
            +
                  res = ''
         
     | 
| 
      
 65 
     | 
    
         
            +
                  if ophotos.count > 0
         
     | 
| 
      
 66 
     | 
    
         
            +
                    res = ophotos.first.image_thumb(thumb_size)
         
     | 
| 
      
 67 
     | 
    
         
            +
                  end
         
     | 
| 
      
 68 
     | 
    
         
            +
                  res
         
     | 
| 
      
 69 
     | 
    
         
            +
                end
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
       60 
71 
     | 
    
         
             
              end
         
     | 
| 
       61 
72 
     | 
    
         | 
| 
       62 
73 
     | 
    
         
             
            end
         
     | 
| 
         @@ -3,6 +3,16 @@ module C80Catoffers 
     | 
|
| 
       3 
3 
     | 
    
         | 
| 
       4 
4 
     | 
    
         
             
                belongs_to :offer
         
     | 
| 
       5 
5 
     | 
    
         
             
                mount_uploader :image, OphotoUploader
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                # выдать картинку указанного размера
         
     | 
| 
      
 8 
     | 
    
         
            +
                def image_thumb(thumb_size)
         
     | 
| 
      
 9 
     | 
    
         
            +
                  res = ''
         
     | 
| 
      
 10 
     | 
    
         
            +
                  if image.present?
         
     | 
| 
      
 11 
     | 
    
         
            +
                    res = image.send("#{thumb_size}")
         
     | 
| 
      
 12 
     | 
    
         
            +
                  end
         
     | 
| 
      
 13 
     | 
    
         
            +
                end
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
       6 
16 
     | 
    
         
             
              end
         
     | 
| 
       7 
17 
     | 
    
         | 
| 
       8 
     | 
    
         
            -
            end
         
     | 
| 
      
 18 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -26,6 +26,20 @@ module C80Catoffers 
     | 
|
| 
       26 
26 
     | 
    
         
             
                  }
         
     | 
| 
       27 
27 
     | 
    
         
             
                end
         
     | 
| 
       28 
28 
     | 
    
         | 
| 
      
 29 
     | 
    
         
            +
                version :thumb_md do
         
     | 
| 
      
 30 
     | 
    
         
            +
                  Proc.new {
         
     | 
| 
      
 31 
     | 
    
         
            +
                    p = C80Catoffers::Prop.first
         
     | 
| 
      
 32 
     | 
    
         
            +
                    process :resize_to_fill => [p.thumb_md_width, p.thumb_md_height]
         
     | 
| 
      
 33 
     | 
    
         
            +
                  }
         
     | 
| 
      
 34 
     | 
    
         
            +
                end
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
                version :thumb_lg do
         
     | 
| 
      
 37 
     | 
    
         
            +
                  Proc.new {
         
     | 
| 
      
 38 
     | 
    
         
            +
                    p = C80Catoffers::Prop.first
         
     | 
| 
      
 39 
     | 
    
         
            +
                    process :resize_to_fill => [p.thumb_lg_width, p.thumb_lg_height]
         
     | 
| 
      
 40 
     | 
    
         
            +
                  }
         
     | 
| 
      
 41 
     | 
    
         
            +
                end
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
       29 
43 
     | 
    
         
             
                def store_dir
         
     | 
| 
       30 
44 
     | 
    
         
             
                  'uploads/oimages'
         
     | 
| 
       31 
45 
     | 
    
         
             
                end
         
     | 
| 
         @@ -4,10 +4,10 @@ 
     | 
|
| 
       4 
4 
     | 
    
         
             
              <ul class="clearfix">
         
     | 
| 
       5 
5 
     | 
    
         
             
                <% list.each do |offer| %>
         
     | 
| 
       6 
6 
     | 
    
         
             
                    <li class="clearfix">
         
     | 
| 
       7 
     | 
    
         
            -
                       
     | 
| 
      
 7 
     | 
    
         
            +
                      <%# Rails.logger.debug "[TRACE] #{offer}" %>
         
     | 
| 
       8 
8 
     | 
    
         
             
                      <%= render_image_link_lazy({
         
     | 
| 
       9 
9 
     | 
    
         
             
                                                         :alt_image => offer.title,
         
     | 
| 
       10 
     | 
    
         
            -
                                                         :image => offer. 
     | 
| 
      
 10 
     | 
    
         
            +
                                                         :image => offer.ophoto_thumb,
         
     | 
| 
       11 
11 
     | 
    
         
             
                                                         :a_href => my_url_for_offer(offer),
         
     | 
| 
       12 
12 
     | 
    
         
             
                                                         :a_class => '',
         
     | 
| 
       13 
13 
     | 
    
         
             
                                                         :a_css_style => css_for_a,
         
     | 
| 
         @@ -0,0 +1,29 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            <%# выдать линейный список предложений с иконками СТОЛБЦАМИ %>
         
     | 
| 
      
 2 
     | 
    
         
            +
            <div class='<%= wrapper_div_class %>'>
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
              <% list.each_with_index do |list_in_column, i| %>
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
                <div class="column_<%= i %> clearfix column" style="<%= css_for_column %>">
         
     | 
| 
      
 7 
     | 
    
         
            +
                  <ul>
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                    <% list_in_column.each do |offer|%>
         
     | 
| 
      
 10 
     | 
    
         
            +
                        <li class="clearfix">
         
     | 
| 
      
 11 
     | 
    
         
            +
                          <%= render_image_link_lazy({
         
     | 
| 
      
 12 
     | 
    
         
            +
                                                             :alt_image => offer.title,
         
     | 
| 
      
 13 
     | 
    
         
            +
                                                             :image => offer.ophoto_thumb,
         
     | 
| 
      
 14 
     | 
    
         
            +
                                                             :a_href => my_url_for_offer(offer),
         
     | 
| 
      
 15 
     | 
    
         
            +
                                                             :a_class => '',
         
     | 
| 
      
 16 
     | 
    
         
            +
                                                             :a_css_style => css_for_a,
         
     | 
| 
      
 17 
     | 
    
         
            +
                                                             :a_rel => 'nofollow'
         
     | 
| 
      
 18 
     | 
    
         
            +
                                                     }) %>
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                          <%= link_to offer.title, my_url_for_offer(offer), title: offer.title, style: css_for_title, class: 'title' %>
         
     | 
| 
      
 21 
     | 
    
         
            +
                        </li>
         
     | 
| 
      
 22 
     | 
    
         
            +
                    <% end %>
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                  </ul>
         
     | 
| 
      
 25 
     | 
    
         
            +
                </div>
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
              <% end %>
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
            </div>
         
     | 
| 
         @@ -0,0 +1,56 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            <%  # выдать линейный слотованный список предложений, каждое предложение
         
     | 
| 
      
 2 
     | 
    
         
            +
                # в списке представить в виде блока с указанным списком свойств +list_props+
         
     | 
| 
      
 3 
     | 
    
         
            +
            %>
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            <div class="offer_list_widget clearfix list_count_<%= list_offers.count %> <%= css_style_for_block %>">
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
              <ul class="clearfix">
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                <%# перебираем предложения, формируем список %>
         
     | 
| 
      
 10 
     | 
    
         
            +
                <% list_offers.each_with_index do |offer, offer_index| %>
         
     | 
| 
      
 11 
     | 
    
         
            +
                    <li class="clearfix">
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                    <%# перебираем все имена свойств и для каждого предложения строим список %>
         
     | 
| 
      
 14 
     | 
    
         
            +
                    <% list_props.each_with_index do |prop_name, prop_index| %>
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                        <%# ради возможных стилизаций будем вести счетчик и впишем его в класс каждого блока свойства %>
         
     | 
| 
      
 17 
     | 
    
         
            +
                        <% prop_name_counter_class = "pr_#{prop_index}" %>
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                        <%# NOTE:: переберём имена свойств и под каждое применим свои правила форматирования %>
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                        <%# обложку предложения помещаем в ссылку и делаем lazy %>
         
     | 
| 
      
 22 
     | 
    
         
            +
                        <% if prop_name['thumb'].present? %>
         
     | 
| 
      
 23 
     | 
    
         
            +
                            <%= render_image_link_lazy({
         
     | 
| 
      
 24 
     | 
    
         
            +
                                                               :alt_image => offer.title,
         
     | 
| 
      
 25 
     | 
    
         
            +
                                                               :image => offer.ophoto_thumb(prop_name), # prop_name = thumb_sm, например
         
     | 
| 
      
 26 
     | 
    
         
            +
                                                               :a_href => my_url_for_offer(offer),
         
     | 
| 
      
 27 
     | 
    
         
            +
                                                               :a_class => prop_name_counter_class,
         
     | 
| 
      
 28 
     | 
    
         
            +
                                                               :a_css_style => css_for_a,
         
     | 
| 
      
 29 
     | 
    
         
            +
                                                               :a_rel => 'nofollow'
         
     | 
| 
      
 30 
     | 
    
         
            +
                                                       }) %>
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                        <%# название обложки делаем кликабельным %>
         
     | 
| 
      
 33 
     | 
    
         
            +
                        <% elsif prop_name['title'].present? %>
         
     | 
| 
      
 34 
     | 
    
         
            +
                              <%= link_to offer.title,
         
     | 
| 
      
 35 
     | 
    
         
            +
                                          my_url_for_offer(offer),
         
     | 
| 
      
 36 
     | 
    
         
            +
                                          title: offer.title,
         
     | 
| 
      
 37 
     | 
    
         
            +
                                          style: css_for_title,
         
     | 
| 
      
 38 
     | 
    
         
            +
                                          class: "title #{prop_name_counter_class}"
         
     | 
| 
      
 39 
     | 
    
         
            +
                              %>
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
                        <%# остальные свойства выводим стопкой именованных дивов %>
         
     | 
| 
      
 42 
     | 
    
         
            +
                        <% else %>
         
     | 
| 
      
 43 
     | 
    
         
            +
                                  <div class="<%= "#{prop_name} #{prop_name_counter_class}" %>" style="<%= css_for_title %>">
         
     | 
| 
      
 44 
     | 
    
         
            +
                                    <%= list_of_values_lists[offer_index][prop_index] %> <%# NOTE:: извлекаем значение prop_index-свойства для offer_index-предложения %>
         
     | 
| 
      
 45 
     | 
    
         
            +
                                  </div>
         
     | 
| 
      
 46 
     | 
    
         
            +
                        <% end %>
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
                        <%# NOTE:: закончили перебирать имена свойств %>
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
                    <% end %>
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
                    </li>
         
     | 
| 
      
 53 
     | 
    
         
            +
                <% end %>
         
     | 
| 
      
 54 
     | 
    
         
            +
              </ul>
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
            </div>
         
     | 
| 
         @@ -0,0 +1,8 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            class C80CatoffersAddThumbMdToProps < ActiveRecord::Migration
         
     | 
| 
      
 2 
     | 
    
         
            +
              def change
         
     | 
| 
      
 3 
     | 
    
         
            +
                add_column :c80_catoffers_props, :thumb_md_width, :integer
         
     | 
| 
      
 4 
     | 
    
         
            +
                add_column :c80_catoffers_props, :thumb_md_height, :integer
         
     | 
| 
      
 5 
     | 
    
         
            +
                add_column :c80_catoffers_props, :thumb_lg_width, :integer
         
     | 
| 
      
 6 
     | 
    
         
            +
                add_column :c80_catoffers_props, :thumb_lg_height, :integer
         
     | 
| 
      
 7 
     | 
    
         
            +
              end
         
     | 
| 
      
 8 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -2,12 +2,16 @@ 
     | 
|
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            C80Catoffers::Prop.delete_all
         
     | 
| 
       4 
4 
     | 
    
         
             
            C80Catoffers::Prop.create!({
         
     | 
| 
       5 
     | 
    
         
            -
                                           per_row:3,
         
     | 
| 
       6 
     | 
    
         
            -
                                           preview_width: 
     | 
| 
       7 
     | 
    
         
            -
                                           preview_height: 
     | 
| 
       8 
     | 
    
         
            -
                                           big_one_width:621, 
     | 
| 
       9 
     | 
    
         
            -
                                           big_one_height: 
     | 
| 
       10 
     | 
    
         
            -
                                           thumb_sm_width:80,
         
     | 
| 
       11 
     | 
    
         
            -
                                           thumb_sm_height: 50,
         
     | 
| 
      
 5 
     | 
    
         
            +
                                           per_row:         3,
         
     | 
| 
      
 6 
     | 
    
         
            +
                                           preview_width:   80,     # NOTE:: размер иконки в iconed списке # NOTE:: [x090] синхронизировано с css
         
     | 
| 
      
 7 
     | 
    
         
            +
                                           preview_height:  50,    # NOTE:: размер иконки в iconed списке # NOTE:: [x090] синхронизировано с css
         
     | 
| 
      
 8 
     | 
    
         
            +
                                           big_one_width:   621,     # NOTE:: [x090] синхронизировано с css
         
     | 
| 
      
 9 
     | 
    
         
            +
                                           big_one_height:  377,    # NOTE:: [x090] синхронизировано с css
         
     | 
| 
      
 10 
     | 
    
         
            +
                                           thumb_sm_width:  80,     # NOTE:: просто стандартный размер
         
     | 
| 
      
 11 
     | 
    
         
            +
                                           thumb_sm_height: 50,     # NOTE:: просто стандартный размер
         
     | 
| 
      
 12 
     | 
    
         
            +
                                           thumb_md_width:  250,     # NOTE:: просто стандартный размер
         
     | 
| 
      
 13 
     | 
    
         
            +
                                           thumb_md_height: 160,     # NOTE:: просто стандартный размер
         
     | 
| 
      
 14 
     | 
    
         
            +
                                           thumb_lg_width:  1000,     # NOTE:: просто стандартный размер
         
     | 
| 
      
 15 
     | 
    
         
            +
                                           thumb_lg_height: 550,    # NOTE:: просто стандартный размер
         
     | 
| 
       12 
16 
     | 
    
         
             
                                           positions_count: 4
         
     | 
| 
       13 
17 
     | 
    
         
             
                                       })
         
     | 
| 
         @@ -0,0 +1,99 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # rake db:seed:x03_fill_offers
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            desc_1 = '<p>Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?</p>'
         
     | 
| 
      
 4 
     | 
    
         
            +
            desc_2 = '<p>Quis autem vel eum iure reprehenderit qui in <strong>ea voluptate velit esse</strong> quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?</p>
         
     | 
| 
      
 5 
     | 
    
         
            +
            <p>Sed ut perspiciatis unde omnis iste <a href="http://google.com">natus error</a> sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.</p>'
         
     | 
| 
      
 6 
     | 
    
         
            +
            desc_3 = '<p>Sed ut perspiciatis unde omnis iste <a href="http://google.com">natus error</a> sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.</p>
         
     | 
| 
      
 7 
     | 
    
         
            +
            <ul>
         
     | 
| 
      
 8 
     | 
    
         
            +
                <li>aliquam quaerat voluptatem;</li>
         
     | 
| 
      
 9 
     | 
    
         
            +
                <li>Quis autem vel eum iure reprehenderit;</li>
         
     | 
| 
      
 10 
     | 
    
         
            +
                <li>Nemo enim ipsam voluptatem quia voluptas;</li>
         
     | 
| 
      
 11 
     | 
    
         
            +
            </ul>'
         
     | 
| 
      
 12 
     | 
    
         
            +
            desc_4 = '<p>Quis autem vel eum iure reprehenderit qui in <strong>ea voluptate velit esse</strong> quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?</p>
         
     | 
| 
      
 13 
     | 
    
         
            +
            <p>Sed ut perspiciatis unde omnis iste <a href="http://google.com">natus error</a> sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.</p>
         
     | 
| 
      
 14 
     | 
    
         
            +
            <ul>
         
     | 
| 
      
 15 
     | 
    
         
            +
                <li>aliquam quaerat voluptatem;</li>
         
     | 
| 
      
 16 
     | 
    
         
            +
                <li>Quis autem vel eum iure reprehenderit;</li>
         
     | 
| 
      
 17 
     | 
    
         
            +
                <li>Nemo enim ipsam voluptatem quia voluptas;</li>
         
     | 
| 
      
 18 
     | 
    
         
            +
            </ul>
         
     | 
| 
      
 19 
     | 
    
         
            +
            <h4>De Finibus Bonorum et Malorum</h4>
         
     | 
| 
      
 20 
     | 
    
         
            +
            <p>Duis aute <a href="http://google.com">irure dolor</a> in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? </p>
         
     | 
| 
      
 21 
     | 
    
         
            +
            <blockquote>Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. (Cicero,45 BC)</blockquote>
         
     | 
| 
      
 22 
     | 
    
         
            +
            <p>At vero eos et accusamus et iusto odio <em>dignissimos ducimus</em> qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio.</p>'
         
     | 
| 
      
 23 
     | 
    
         
            +
            desc_5 = '<p>Nemo enim <a href="http://google.com">ipsam voluptatem </a> quia voluptas sit voluptatem accusantium doloremque lum.</p>'
         
     | 
| 
      
 24 
     | 
    
         
            +
            desc_6 = '<p>Sed ut perspiciatis unde omnis iste <a href="http://google.com">natus error</a> sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.</p>
         
     | 
| 
      
 25 
     | 
    
         
            +
            <ul>
         
     | 
| 
      
 26 
     | 
    
         
            +
                <li>aliquam quaerat voluptatem;</li>
         
     | 
| 
      
 27 
     | 
    
         
            +
                <li>Quis autem vel eum iure reprehenderit;</li>
         
     | 
| 
      
 28 
     | 
    
         
            +
                <li>Nemo enim ipsam voluptatem quia voluptas;</li>
         
     | 
| 
      
 29 
     | 
    
         
            +
            </ul>'
         
     | 
| 
      
 30 
     | 
    
         
            +
            desc_7 = '<p>Quis autem vel eum iure reprehenderit qui in <strong>ea voluptate velit esse</strong> quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?</p>
         
     | 
| 
      
 31 
     | 
    
         
            +
            <p>Sed ut perspiciatis unde omnis iste <a href="http://google.com">natus error</a> sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.</p>
         
     | 
| 
      
 32 
     | 
    
         
            +
            <ul>
         
     | 
| 
      
 33 
     | 
    
         
            +
                <li>aliquam quaerat voluptatem;</li>
         
     | 
| 
      
 34 
     | 
    
         
            +
                <li>Quis autem vel eum iure reprehenderit;</li>
         
     | 
| 
      
 35 
     | 
    
         
            +
                <li>Nemo enim ipsam voluptatem quia voluptas;</li>
         
     | 
| 
      
 36 
     | 
    
         
            +
            </ul>
         
     | 
| 
      
 37 
     | 
    
         
            +
            <h4>De Finibus Bonorum et Malorum</h4>
         
     | 
| 
      
 38 
     | 
    
         
            +
            <p>Duis aute <a href="http://google.com">irure dolor</a> in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? </p>
         
     | 
| 
      
 39 
     | 
    
         
            +
            '
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
            C80Catoffers::Offer.delete_all
         
     | 
| 
      
 42 
     | 
    
         
            +
            C80Catoffers::Offer.create!([
         
     | 
| 
      
 43 
     | 
    
         
            +
                                            {
         
     | 
| 
      
 44 
     | 
    
         
            +
                                                id:1,
         
     | 
| 
      
 45 
     | 
    
         
            +
                                                ord:20,
         
     | 
| 
      
 46 
     | 
    
         
            +
                                                title:'Установка розеток',
         
     | 
| 
      
 47 
     | 
    
         
            +
                                                short_desc:'Nemo ipsam nulita lagua voluptatem',
         
     | 
| 
      
 48 
     | 
    
         
            +
                                                desc: desc_7,
         
     | 
| 
      
 49 
     | 
    
         
            +
                                                price: '400 руб'
         
     | 
| 
      
 50 
     | 
    
         
            +
                                            },
         
     | 
| 
      
 51 
     | 
    
         
            +
                                            {
         
     | 
| 
      
 52 
     | 
    
         
            +
                                                id:2,
         
     | 
| 
      
 53 
     | 
    
         
            +
                                                ord:20,
         
     | 
| 
      
 54 
     | 
    
         
            +
                                                title:'Установка выключателей',
         
     | 
| 
      
 55 
     | 
    
         
            +
                                                short_desc:'Deserunt mollitia ipsam',
         
     | 
| 
      
 56 
     | 
    
         
            +
                                                desc: desc_6,
         
     | 
| 
      
 57 
     | 
    
         
            +
                                                price: '500 руб'
         
     | 
| 
      
 58 
     | 
    
         
            +
                                            },
         
     | 
| 
      
 59 
     | 
    
         
            +
                                            {
         
     | 
| 
      
 60 
     | 
    
         
            +
                                                id:3,
         
     | 
| 
      
 61 
     | 
    
         
            +
                                                ord:30,
         
     | 
| 
      
 62 
     | 
    
         
            +
                                                title:'Установка internet розетки',
         
     | 
| 
      
 63 
     | 
    
         
            +
                                                short_desc:'Nemo enim ipsam voluptatem quia',
         
     | 
| 
      
 64 
     | 
    
         
            +
                                                desc: desc_5,
         
     | 
| 
      
 65 
     | 
    
         
            +
                                                price: '500 руб'
         
     | 
| 
      
 66 
     | 
    
         
            +
                                            },
         
     | 
| 
      
 67 
     | 
    
         
            +
                                            {
         
     | 
| 
      
 68 
     | 
    
         
            +
                                                id:4,
         
     | 
| 
      
 69 
     | 
    
         
            +
                                                ord:40,
         
     | 
| 
      
 70 
     | 
    
         
            +
                                                title:'Установка TV розетки',
         
     | 
| 
      
 71 
     | 
    
         
            +
                                                short_desc:'Quis autem vel eum',
         
     | 
| 
      
 72 
     | 
    
         
            +
                                                desc: desc_4,
         
     | 
| 
      
 73 
     | 
    
         
            +
                                                price: '400 руб'
         
     | 
| 
      
 74 
     | 
    
         
            +
                                            },
         
     | 
| 
      
 75 
     | 
    
         
            +
                                            {
         
     | 
| 
      
 76 
     | 
    
         
            +
                                                id:5,
         
     | 
| 
      
 77 
     | 
    
         
            +
                                                ord:50,
         
     | 
| 
      
 78 
     | 
    
         
            +
                                                title:'Установка бокса на 12 модулей',
         
     | 
| 
      
 79 
     | 
    
         
            +
                                                short_desc:'Duis aute irure dolor',
         
     | 
| 
      
 80 
     | 
    
         
            +
                                                desc: desc_3,
         
     | 
| 
      
 81 
     | 
    
         
            +
                                                price: '1700 руб'
         
     | 
| 
      
 82 
     | 
    
         
            +
                                            },
         
     | 
| 
      
 83 
     | 
    
         
            +
                                            {
         
     | 
| 
      
 84 
     | 
    
         
            +
                                                id:6,
         
     | 
| 
      
 85 
     | 
    
         
            +
                                                ord:60,
         
     | 
| 
      
 86 
     | 
    
         
            +
                                                title:'Прокладка проводов в штробе',
         
     | 
| 
      
 87 
     | 
    
         
            +
                                                short_desc:'Deserunt mollitia animi',
         
     | 
| 
      
 88 
     | 
    
         
            +
                                                desc: desc_2,
         
     | 
| 
      
 89 
     | 
    
         
            +
                                                price: '1500 руб'
         
     | 
| 
      
 90 
     | 
    
         
            +
                                            },
         
     | 
| 
      
 91 
     | 
    
         
            +
                                            {
         
     | 
| 
      
 92 
     | 
    
         
            +
                                                id:7,
         
     | 
| 
      
 93 
     | 
    
         
            +
                                                ord:70,
         
     | 
| 
      
 94 
     | 
    
         
            +
                                                title:'Установка устройства уравнения потенциалов',
         
     | 
| 
      
 95 
     | 
    
         
            +
                                                short_desc:'At vero eos et accusamus',
         
     | 
| 
      
 96 
     | 
    
         
            +
                                                desc: desc_1,
         
     | 
| 
      
 97 
     | 
    
         
            +
                                                price: '228 руб'
         
     | 
| 
      
 98 
     | 
    
         
            +
                                            }
         
     | 
| 
      
 99 
     | 
    
         
            +
                                        ])
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: c80_catoffers
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.1.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.1.0.3
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - C80609A
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: exe
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2016- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2016-11-03 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: bundler
         
     | 
| 
         @@ -71,13 +71,17 @@ files: 
     | 
|
| 
       71 
71 
     | 
    
         
             
            - app/assets/javascripts/c80_catoffers.js.coffee
         
     | 
| 
       72 
72 
     | 
    
         
             
            - app/assets/javascripts/c80_catoffers/offer_full_desc.js
         
     | 
| 
       73 
73 
     | 
    
         
             
            - app/assets/stylesheets/c80_catoffers.scss
         
     | 
| 
      
 74 
     | 
    
         
            +
            - app/assets/stylesheets/c80_catoffers/_mixins/default_li_iconed.scss
         
     | 
| 
       74 
75 
     | 
    
         
             
            - app/assets/stylesheets/c80_catoffers/offer_full_desc.scss
         
     | 
| 
       75 
76 
     | 
    
         
             
            - app/assets/stylesheets/c80_catoffers/offer_full_desc_slick_custom.scss
         
     | 
| 
       76 
77 
     | 
    
         
             
            - app/assets/stylesheets/c80_catoffers/offer_list_grouped.scss
         
     | 
| 
       77 
78 
     | 
    
         
             
            - app/assets/stylesheets/c80_catoffers/offer_list_iconed.scss
         
     | 
| 
      
 79 
     | 
    
         
            +
            - app/assets/stylesheets/c80_catoffers/offer_list_iconed_columns.scss
         
     | 
| 
      
 80 
     | 
    
         
            +
            - app/assets/stylesheets/c80_catoffers/offer_list_widget.scss
         
     | 
| 
       78 
81 
     | 
    
         
             
            - app/assets/stylesheets/c80_catoffers_backend.scss
         
     | 
| 
       79 
82 
     | 
    
         
             
            - app/assets/stylesheets/c80_catoffers_backend/page_admin_props.scss
         
     | 
| 
       80 
83 
     | 
    
         
             
            - app/helpers/c80_catoffers/app_helper.rb
         
     | 
| 
      
 84 
     | 
    
         
            +
            - app/helpers/c80_catoffers/inner/css_helper.rb
         
     | 
| 
       81 
85 
     | 
    
         
             
            - app/helpers/c80_catoffers/urls_helper.rb
         
     | 
| 
       82 
86 
     | 
    
         
             
            - app/models/c80_catoffers/category.rb
         
     | 
| 
       83 
87 
     | 
    
         
             
            - app/models/c80_catoffers/offer.rb
         
     | 
| 
         @@ -88,6 +92,8 @@ files: 
     | 
|
| 
       88 
92 
     | 
    
         
             
            - app/views/c80_catoffers/_offers_list_by_cat.html.erb
         
     | 
| 
       89 
93 
     | 
    
         
             
            - app/views/c80_catoffers/_offers_list_grouped.html.erb
         
     | 
| 
       90 
94 
     | 
    
         
             
            - app/views/c80_catoffers/_offers_list_iconed.html.erb
         
     | 
| 
      
 95 
     | 
    
         
            +
            - app/views/c80_catoffers/_offers_list_iconed_columns.html.erb
         
     | 
| 
      
 96 
     | 
    
         
            +
            - app/views/c80_catoffers/_offers_list_widget.html.erb
         
     | 
| 
       91 
97 
     | 
    
         
             
            - bin/console
         
     | 
| 
       92 
98 
     | 
    
         
             
            - bin/setup
         
     | 
| 
       93 
99 
     | 
    
         
             
            - c80_catoffers.gemspec
         
     | 
| 
         @@ -100,9 +106,10 @@ files: 
     | 
|
| 
       100 
106 
     | 
    
         
             
            - db/migrate/20161008123434_c80_catoffers_add_thumb_sm_to_props.rb
         
     | 
| 
       101 
107 
     | 
    
         
             
            - db/migrate/20161008134848_c80_catoffers_add_join_table_offers_props.rb
         
     | 
| 
       102 
108 
     | 
    
         
             
            - db/migrate/20161008151414_c80_catoffers_add_positions_count_to_props.rb
         
     | 
| 
      
 109 
     | 
    
         
            +
            - db/migrate/20161023115252_c80_catoffers_add_thumb_md_to_props.rb
         
     | 
| 
       103 
110 
     | 
    
         
             
            - db/seeds/c80_catoffers_01_fill_props.rb
         
     | 
| 
      
 111 
     | 
    
         
            +
            - db/seeds/c80_catoffers_02_fill_offers.rb
         
     | 
| 
       104 
112 
     | 
    
         
             
            - db/seeds/x02_fill_categories.rb
         
     | 
| 
       105 
     | 
    
         
            -
            - db/seeds/x03_fill_offers.rb
         
     | 
| 
       106 
113 
     | 
    
         
             
            - lib/c80_catoffers.rb
         
     | 
| 
       107 
114 
     | 
    
         
             
            - lib/c80_catoffers/engine.rb
         
     | 
| 
       108 
115 
     | 
    
         
             
            - lib/c80_catoffers/version.rb
         
     | 
    
        data/db/seeds/x03_fill_offers.rb
    DELETED
    
    | 
         @@ -1,20 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # rake db:seed:x03_fill_offers
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            C80Catoffers::Offer.delete_all
         
     | 
| 
       4 
     | 
    
         
            -
            C80Catoffers::Offer.create!([
         
     | 
| 
       5 
     | 
    
         
            -
                                           {
         
     | 
| 
       6 
     | 
    
         
            -
                                               id:1,
         
     | 
| 
       7 
     | 
    
         
            -
                                               ord:20,
         
     | 
| 
       8 
     | 
    
         
            -
                                               title:'Фотоуслуги'
         
     | 
| 
       9 
     | 
    
         
            -
                                           },
         
     | 
| 
       10 
     | 
    
         
            -
                                           {
         
     | 
| 
       11 
     | 
    
         
            -
                                               id:2,
         
     | 
| 
       12 
     | 
    
         
            -
                                               ord:20,
         
     | 
| 
       13 
     | 
    
         
            -
                                               title:'Фотокурсы'
         
     | 
| 
       14 
     | 
    
         
            -
                                           },
         
     | 
| 
       15 
     | 
    
         
            -
                                           {
         
     | 
| 
       16 
     | 
    
         
            -
                                               id:3,
         
     | 
| 
       17 
     | 
    
         
            -
                                               ord:30,
         
     | 
| 
       18 
     | 
    
         
            -
                                               title:'Услуги визажиста'
         
     | 
| 
       19 
     | 
    
         
            -
                                           }
         
     | 
| 
       20 
     | 
    
         
            -
                                       ])
         
     |