ecm_products 0.0.7.pre → 2.0.6.pre
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.
- data/app/models/ecm/products/product.rb +51 -42
- data/app/models/ecm/products/product_category.rb +6 -7
- data/app/models/ecm/products/product_link.rb +1 -0
- data/app/models/ecm/products/product_picture.rb +56 -0
- data/app/views/ecm/products/product_pictures/_product_picture.html.erb +10 -0
- data/app/views/ecm/products/products/_product_details.html.erb +18 -7
- data/config/locales/ecm.products.de.yml +1 -0
- data/config/locales/ecm.products.en.yml +1 -0
- data/config/locales/ecm.products.product.de.yml +31 -29
- data/config/locales/ecm.products.product.en.yml +31 -29
- data/config/locales/ecm.products.product_category.de.yml +27 -25
- data/config/locales/ecm.products.product_category.en.yml +27 -25
- data/config/locales/ecm.products.product_picture.de.yml +25 -0
- data/config/locales/ecm.products.product_picture.en.yml +25 -0
- data/config/locales/ecm.products.routes.de.yml +2 -0
- data/config/locales/ecm.products.routes.en.yml +2 -0
- data/db/migrate/002_create_ecm_products_products.rb +1 -0
- data/db/migrate/004_create_ecm_products_product_pictures.rb +32 -0
- data/lib/ecm/products/active_admin/ecm_products_product_categories.rb +61 -39
- data/lib/ecm/products/active_admin/ecm_products_product_links.rb +16 -12
- data/lib/ecm/products/active_admin/ecm_products_product_pictures.rb +76 -0
- data/lib/ecm/products/active_admin/ecm_products_products.rb +80 -35
- data/lib/ecm/products/configuration.rb +35 -2
- data/lib/ecm/products/version.rb +1 -1
- data/lib/ecm_products.rb +1 -0
- data/lib/generators/ecm/products/install/templates/ecm_products.rb +46 -0
- data/lib/generators/ecm/products/locales/locales_generator.rb +3 -0
- data/lib/tasks/ecm_products_tasks.rake +118 -67
- metadata +70 -50
@@ -8,23 +8,23 @@ module FixUpdateCounters
|
|
8
8
|
|
9
9
|
# Get real class of changed attribute, so work both with namespaced/normal models
|
10
10
|
klass = self.association(changed_class.to_sym).klass
|
11
|
-
|
11
|
+
|
12
12
|
# Try to get counter cache from association options
|
13
|
-
begin
|
13
|
+
begin
|
14
14
|
counter_name = self.association(changed_class.to_sym).options[:counter_cache]
|
15
|
-
rescue
|
15
|
+
rescue
|
16
16
|
# Namespaced model return a slash, split it.
|
17
17
|
unless (counter_name = "#{self.class.name.underscore.pluralize.split("/")[1]}_count".to_sym)
|
18
18
|
counter_name = "#{self.class.name.underscore.pluralize}_count".to_sym
|
19
19
|
end
|
20
|
-
end
|
20
|
+
end
|
21
21
|
|
22
22
|
|
23
23
|
klass.decrement_counter(counter_name, value[0]) unless value[0] == nil
|
24
24
|
klass.increment_counter(counter_name, value[1]) unless value[1] == nil
|
25
25
|
end
|
26
26
|
}
|
27
|
-
end
|
27
|
+
end
|
28
28
|
end
|
29
29
|
|
30
30
|
ActiveRecord::Base.send(:include, FixUpdateCounters)
|
@@ -32,74 +32,83 @@ ActiveRecord::Base.send(:include, FixUpdateCounters)
|
|
32
32
|
class Ecm::Products::Product < ActiveRecord::Base
|
33
33
|
# database settings
|
34
34
|
self.table_name = 'ecm_products_products'
|
35
|
-
|
35
|
+
|
36
36
|
# acts as list
|
37
|
-
acts_as_list :scope => :ecm_products_product_category
|
37
|
+
acts_as_list :scope => :ecm_products_product_category
|
38
38
|
|
39
39
|
# acts as markup
|
40
40
|
acts_as_markup :language => :variable, :columns => [ :long_description, :short_description ]
|
41
|
-
|
41
|
+
|
42
42
|
# associations
|
43
|
-
belongs_to :ecm_products_product_category,
|
44
|
-
:class_name => Ecm::Products::ProductCategory,
|
43
|
+
belongs_to :ecm_products_product_category,
|
44
|
+
:class_name => Ecm::Products::ProductCategory,
|
45
45
|
:counter_cache => :ecm_products_products_count
|
46
|
-
|
47
|
-
has_many :ecm_products_product_links,
|
48
|
-
:class_name => Ecm::Products::ProductLink,
|
46
|
+
|
47
|
+
has_many :ecm_products_product_links,
|
48
|
+
:class_name => Ecm::Products::ProductLink,
|
49
49
|
:dependent => :destroy,
|
50
50
|
:foreign_key => :ecm_products_product_id,
|
51
51
|
:order => 'position'
|
52
|
-
|
52
|
+
|
53
|
+
has_many :ecm_products_product_pictures,
|
54
|
+
:class_name => Ecm::Products::ProductPicture,
|
55
|
+
:dependent => :destroy,
|
56
|
+
:foreign_key => :ecm_products_product_id,
|
57
|
+
:order => 'position'
|
58
|
+
|
53
59
|
# attributes
|
54
60
|
attr_accessible :ecm_products_product_category_id,
|
55
|
-
:
|
61
|
+
:ecm_products_product_pictures_attributes,
|
62
|
+
:long_description,
|
56
63
|
:main_image,
|
57
64
|
:markup_language,
|
58
|
-
:name,
|
59
|
-
:position,
|
65
|
+
:name,
|
66
|
+
:position,
|
60
67
|
:preview_image,
|
61
|
-
:price,
|
62
|
-
:price_on_application,
|
63
|
-
:published_at,
|
64
|
-
:short_description,
|
68
|
+
:price,
|
69
|
+
:price_on_application,
|
70
|
+
:published_at,
|
71
|
+
:short_description,
|
65
72
|
:slug
|
66
|
-
|
73
|
+
accepts_nested_attributes_for :ecm_products_product_links, :allow_destroy => true
|
74
|
+
accepts_nested_attributes_for :ecm_products_product_pictures, :allow_destroy => true
|
75
|
+
|
67
76
|
# callbacks
|
68
|
-
after_initialize :set_defaults
|
77
|
+
after_initialize :set_defaults
|
69
78
|
after_update :fix_updated_counters
|
70
79
|
before_update :fix_updated_position, :if => Proc.new { |d| !position.blank? && d.ecm_products_product_category_id_changed? }
|
71
|
-
|
72
|
-
# constants
|
73
|
-
MARKUP_LANGUAGES = %w(markdown textile rdoc)
|
74
|
-
|
80
|
+
|
75
81
|
# friendly id
|
76
82
|
extend FriendlyId
|
77
83
|
friendly_id :name, :use => :slugged
|
78
|
-
|
84
|
+
|
79
85
|
# money
|
80
86
|
monetize :price_cents, :allow_nil => true
|
81
|
-
|
87
|
+
|
82
88
|
# paperclip
|
83
|
-
has_attached_file :main_image,
|
84
|
-
|
85
|
-
|
86
|
-
|
89
|
+
has_attached_file :main_image,
|
90
|
+
:styles => Ecm::Products::Configuration.product_main_image_styles
|
91
|
+
has_attached_file :preview_image,
|
92
|
+
:styles => Ecm::Products::Configuration.product_preview_image_styles
|
93
|
+
|
94
|
+
# validations
|
87
95
|
validates :ecm_products_product_category, :presence => true
|
88
|
-
validates :name, :presence => true
|
89
|
-
validates :markup_language, :presence => true,
|
90
|
-
:inclusion =>
|
91
|
-
|
96
|
+
validates :name, :presence => true
|
97
|
+
validates :markup_language, :presence => true,
|
98
|
+
:inclusion => Ecm::Products::Configuration.markup_languages
|
99
|
+
|
92
100
|
# private methods
|
93
|
-
|
94
|
-
private
|
101
|
+
|
102
|
+
private
|
95
103
|
def fix_updated_position
|
96
104
|
Rails.logger.debug "Fixing positions for #{self.to_s} (Moving to last)"
|
97
105
|
add_to_list_bottom
|
98
106
|
end
|
99
|
-
|
107
|
+
|
100
108
|
def set_defaults
|
101
109
|
if self.new_record?
|
102
|
-
self.markup_language ||=
|
103
|
-
end
|
110
|
+
self.markup_language ||= Ecm::Products::Configuration.default_markup_language
|
111
|
+
end
|
104
112
|
end
|
105
113
|
end
|
114
|
+
|
@@ -33,24 +33,23 @@ class Ecm::Products::ProductCategory < ActiveRecord::Base
|
|
33
33
|
# callbacks
|
34
34
|
after_initialize :set_defaults
|
35
35
|
|
36
|
-
# constants
|
37
|
-
MARKUP_LANGUAGES = %w(markdown textile rdoc)
|
38
|
-
|
39
36
|
# friendly id
|
40
37
|
extend FriendlyId
|
41
38
|
friendly_id :name, :use => :slugged
|
42
39
|
|
43
40
|
# paperclip
|
44
|
-
has_attached_file :main_image,
|
45
|
-
|
41
|
+
has_attached_file :main_image,
|
42
|
+
:styles => Ecm::Products::Configuration.product_category_main_image_styles
|
43
|
+
has_attached_file :preview_image,
|
44
|
+
:styles => Ecm::Products::Configuration.product_category_preview_image_styles
|
46
45
|
|
47
46
|
# validations
|
48
47
|
validates :name, :presence => true, :uniqueness => { :scope => [ :parent_id ] }
|
49
48
|
validates :locale, :presence => true, :if => Proc.new { |pc| pc.parent.nil? } # , :if => :root?
|
50
49
|
validates :locale, :absence => true, :if => Proc.new { |pc| !pc.parent.nil? }
|
51
50
|
validate :available_locale, :if => Proc.new { |pc| pc.locale.present? }
|
52
|
-
validates :markup_language, :presence => true,
|
53
|
-
:inclusion =>
|
51
|
+
validates :markup_language, :presence => true,
|
52
|
+
:inclusion => Ecm::Products::Configuration.markup_languages
|
54
53
|
|
55
54
|
# public methods
|
56
55
|
|
@@ -28,6 +28,7 @@ class Ecm::Products::ProductLink < ActiveRecord::Base
|
|
28
28
|
MARKUP_LANGUAGES = %w(markdown textile rdoc)
|
29
29
|
|
30
30
|
# validations
|
31
|
+
validates :ecm_products_product, :presence => true
|
31
32
|
validates :name, :presence => true, :uniqueness => { :scope => [ :ecm_products_product_id ] }
|
32
33
|
validates :url, :presence => true, :uniqueness => { :scope => [ :ecm_products_product_id ] }
|
33
34
|
validates :markup_language, :presence => true,
|
@@ -0,0 +1,56 @@
|
|
1
|
+
class Ecm::Products::ProductPicture < ActiveRecord::Base
|
2
|
+
# database settings
|
3
|
+
self.table_name = 'ecm_products_product_pictures'
|
4
|
+
|
5
|
+
# acts as list
|
6
|
+
acts_as_list :scope => :ecm_products_product
|
7
|
+
|
8
|
+
# acts as markup
|
9
|
+
acts_as_markup :language => :variable, :columns => [ :description ]
|
10
|
+
|
11
|
+
# associations
|
12
|
+
belongs_to :ecm_products_product,
|
13
|
+
:class_name => Ecm::Products::Product,
|
14
|
+
:counter_cache => :ecm_products_product_pictures_count
|
15
|
+
|
16
|
+
# attributes
|
17
|
+
attr_accessible :description,
|
18
|
+
:ecm_products_product_id,
|
19
|
+
:image_content_type,
|
20
|
+
:image,
|
21
|
+
:markup_language,
|
22
|
+
:name,
|
23
|
+
:position,
|
24
|
+
:slug
|
25
|
+
|
26
|
+
# callbacks
|
27
|
+
after_initialize :set_defaults
|
28
|
+
before_validation :set_name_from_image_file_name, :if => Proc.new { |p| p.name.nil? || p.name.empty? }
|
29
|
+
|
30
|
+
# friendly id
|
31
|
+
extend FriendlyId
|
32
|
+
friendly_id :name, :use => :slugged
|
33
|
+
|
34
|
+
# paperclip
|
35
|
+
has_attached_file :image,
|
36
|
+
:styles => Ecm::Products::Configuration.product_picture_image_styles
|
37
|
+
|
38
|
+
# validations
|
39
|
+
validates :ecm_products_product, :presence => true
|
40
|
+
validates :markup_language, :presence => true,
|
41
|
+
:inclusion => Ecm::Products::Configuration.markup_languages
|
42
|
+
validates :name, :presence => true
|
43
|
+
|
44
|
+
private
|
45
|
+
|
46
|
+
def set_defaults
|
47
|
+
if self.new_record?
|
48
|
+
self.markup_language ||= Ecm::Products::Configuration.default_markup_language
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def set_name_from_image_file_name
|
53
|
+
self.name = File.basename(image_file_name, File.extname(image_file_name)) unless image_file_name.nil?
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<li class="span44 offset">
|
2
|
+
<div class="thumbnail">
|
3
|
+
<%= link_to(product_picture.image.url, { :class => "top_up" }) do %>
|
4
|
+
<%= image_tag(product_picture.image.url(:default)) %>
|
5
|
+
<% end %>
|
6
|
+
<div class="caption">
|
7
|
+
<%= mu(product_picture, :description) %>
|
8
|
+
</div
|
9
|
+
</div>
|
10
|
+
</li>
|
@@ -1,27 +1,37 @@
|
|
1
1
|
<div class="product" id="product-<%= product.id %>">
|
2
2
|
<h1 class="product-name"><%= product.name %></h1>
|
3
|
-
|
3
|
+
|
4
4
|
<% if product.main_image? %>
|
5
5
|
<div class="product-main_image"><%= image_tag(product.main_image.url, :class => 'thumbnail') %></div>
|
6
6
|
<% end %>
|
7
|
-
|
7
|
+
|
8
8
|
<% if product.short_description.present? %>
|
9
9
|
<div class="product-short_description"><%= mu(product, :short_description) %></div>
|
10
10
|
<% end %>
|
11
11
|
|
12
|
+
<% if product.ecm_products_product_pictures.present? %>
|
13
|
+
<div class="row-fluid product-pictures">
|
14
|
+
<ul class="thumbnails">
|
15
|
+
<% product.ecm_products_product_pictures.each do |product_picture| %>
|
16
|
+
<%= render product_picture %>
|
17
|
+
<% end %>
|
18
|
+
</ul>
|
19
|
+
</div>
|
20
|
+
<% end %>
|
21
|
+
|
12
22
|
<% if product.long_description.present? %>
|
13
23
|
<div class="product-long_description"><%= mu(product, :long_description) %></div>
|
14
|
-
<% end %>
|
15
|
-
|
24
|
+
<% end %>
|
25
|
+
|
16
26
|
<% if product.price.present? %>
|
17
27
|
<div class="product-price">
|
18
28
|
<p><%= Ecm::Products::Product.human_attribute_name(:price) %>: <%= humanized_money_with_symbol product.price %></p>
|
19
29
|
</div>
|
20
30
|
<% end %>
|
21
|
-
|
31
|
+
|
22
32
|
<% if product.ecm_products_product_links.present? %>
|
23
33
|
<hr />
|
24
|
-
|
34
|
+
|
25
35
|
<div class="product-links">
|
26
36
|
<% product.ecm_products_product_links.each do |product_link| %>
|
27
37
|
<%= render product_link %>
|
@@ -36,4 +46,5 @@
|
|
36
46
|
<%= link_to(product.ecm_products_product_category, :class => 'btn') do %>
|
37
47
|
<i class="icon-arrow-left"></i>
|
38
48
|
<%= t('ecm.products.product.actions.back_to_category', :name => product.ecm_products_product_category) %>
|
39
|
-
<% end %>
|
49
|
+
<% end %>
|
50
|
+
|
@@ -1,39 +1,41 @@
|
|
1
|
-
---
|
2
|
-
de:
|
3
|
-
activerecord:
|
4
|
-
models:
|
5
|
-
ecm/products/product:
|
1
|
+
---
|
2
|
+
de:
|
3
|
+
activerecord:
|
4
|
+
models:
|
5
|
+
ecm/products/product:
|
6
6
|
one: Produkt
|
7
7
|
other: Produkte
|
8
|
-
attributes:
|
9
|
-
ecm/products/product:
|
10
|
-
name: Name
|
11
|
-
preview_image_fingerprint: Vorschaubild Fingerabdruck
|
12
|
-
position: Position
|
13
|
-
slug: Freundliche ID
|
14
|
-
main_image_content_type: Hauptbild Dateityp
|
8
|
+
attributes:
|
9
|
+
ecm/products/product:
|
15
10
|
created_at: Erstellt am
|
16
|
-
|
17
|
-
|
18
|
-
|
11
|
+
ecm_products_product_category_id: Produktkategorie
|
12
|
+
ecm_products_product_category: Produktkategorie
|
13
|
+
ecm_products_product_links_count: Links
|
14
|
+
ecm_products_product_links: Links
|
15
|
+
ecm_products_product_pictures: Bilder
|
16
|
+
locale: Sprache
|
17
|
+
long_description: Langbeschreibung
|
18
|
+
main_image_content_type: Hauptbild Dateityp
|
19
19
|
main_image_file_name: Hauptbild Dateiname
|
20
20
|
main_image_file_size: Hauptbild Dateigröße
|
21
21
|
main_image_fingerprint: Hauptbild Fingerabdruck
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
ecm_products_product_links_count: Links
|
22
|
+
main_image: Hauptbild
|
23
|
+
main_image_updated_at: Hauptbild aktualisiert am
|
24
|
+
markup_language: Markup Sprache
|
25
|
+
name: Name
|
26
|
+
position: Position
|
28
27
|
preview_image_content_type: Vorschaubild Dateityp
|
29
|
-
price_currency: Preiswährung
|
30
|
-
locale: Sprache
|
31
|
-
price_on_application: Preis auf Anfrage
|
32
28
|
preview_image_file_name: Vorschaubild Dateiname
|
33
|
-
published_at: Veröffentlicht am
|
34
29
|
preview_image_file_size: Vorschaubild Dateigröße
|
35
|
-
|
36
|
-
|
30
|
+
preview_image_fingerprint: Vorschaubild Fingerabdruck
|
31
|
+
preview_image_updated_at: Vorschaubild aktualisiert am
|
37
32
|
preview_image: Vorschaubild
|
38
|
-
|
39
|
-
|
33
|
+
price_cents: Preis in Cents
|
34
|
+
price_currency: Preiswährung
|
35
|
+
price_on_application: Preis auf Anfrage
|
36
|
+
price: Preis
|
37
|
+
published_at: Veröffentlicht am
|
38
|
+
short_description: Kurzbeschreibung
|
39
|
+
slug: Freundliche ID
|
40
|
+
updated_at: Aktualisiert am
|
41
|
+
|
@@ -1,39 +1,41 @@
|
|
1
|
-
---
|
2
|
-
en:
|
3
|
-
activerecord:
|
4
|
-
models:
|
5
|
-
ecm/products/product:
|
1
|
+
---
|
2
|
+
en:
|
3
|
+
activerecord:
|
4
|
+
models:
|
5
|
+
ecm/products/product:
|
6
6
|
one: product
|
7
7
|
other: products
|
8
|
-
attributes:
|
9
|
-
ecm/products/product:
|
10
|
-
name: name
|
11
|
-
preview_image_fingerprint: preview image fingerprint
|
12
|
-
position: position
|
13
|
-
slug: friendly id
|
14
|
-
main_image_content_type: main image content type
|
8
|
+
attributes:
|
9
|
+
ecm/products/product:
|
15
10
|
created_at: created at
|
16
|
-
|
17
|
-
|
18
|
-
|
11
|
+
ecm_products_product_category_id: product category
|
12
|
+
ecm_products_product_category: product category
|
13
|
+
ecm_products_product_links_count: product links
|
14
|
+
ecm_products_product_links: links
|
15
|
+
ecm_products_product_pictures: pictures
|
16
|
+
locale: language
|
17
|
+
long_description: long description
|
18
|
+
main_image_content_type: main image content type
|
19
19
|
main_image_file_name: main image file name
|
20
20
|
main_image_file_size: main image file size
|
21
21
|
main_image_fingerprint: main image fingerprint
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
ecm_products_product_links_count: product links
|
22
|
+
main_image: main image
|
23
|
+
main_image_updated_at: main image updated at
|
24
|
+
markup_language: markup language
|
25
|
+
name: name
|
26
|
+
position: position
|
28
27
|
preview_image_content_type: preview image content type
|
29
|
-
price_currency: price currency
|
30
|
-
locale: language
|
31
|
-
price_on_application: price on application
|
32
28
|
preview_image_file_name: preview image file name
|
33
|
-
published_at: published at
|
34
29
|
preview_image_file_size: preview image file size
|
35
|
-
|
36
|
-
price_cents: price cents
|
30
|
+
preview_image_fingerprint: preview image fingerprint
|
37
31
|
preview_image: preview image
|
38
|
-
|
39
|
-
|
32
|
+
preview_image_updated_at: preview_image updated at
|
33
|
+
price_cents: price cents
|
34
|
+
price_currency: price currency
|
35
|
+
price_on_application: price on application
|
36
|
+
price: price
|
37
|
+
published_at: published at
|
38
|
+
short_description: short_description
|
39
|
+
slug: friendly id
|
40
|
+
updated_at: updated at
|
41
|
+
|
@@ -1,36 +1,38 @@
|
|
1
|
-
---
|
2
|
-
de:
|
3
|
-
activerecord:
|
4
|
-
models:
|
5
|
-
ecm/products/product_category:
|
1
|
+
---
|
2
|
+
de:
|
3
|
+
activerecord:
|
4
|
+
models:
|
5
|
+
ecm/products/product_category:
|
6
6
|
one: Produkt Kategorie
|
7
7
|
other: Produkt Kategorien
|
8
|
-
attributes:
|
9
|
-
ecm/products/product_category:
|
10
|
-
|
11
|
-
name: Name
|
12
|
-
preview_image_fingerprint: Vorschaubild Fingerabdruck
|
13
|
-
main_image_content_type: Hauptbild Dateityp
|
8
|
+
attributes:
|
9
|
+
ecm/products/product_category:
|
10
|
+
children: Unterkategorien
|
14
11
|
created_at: Erstellt am
|
15
|
-
ecm_products_products: Produkte
|
16
|
-
ecm_products_products_count: Produkte
|
17
12
|
depth: Baumtiefe
|
18
|
-
|
19
|
-
|
20
|
-
main_image_updated_at: Hauptbild aktualisiert am
|
13
|
+
ecm_products_products_count: Produkte
|
14
|
+
ecm_products_products: Produkte
|
21
15
|
lft: Links
|
22
|
-
|
16
|
+
locale: Sprache
|
17
|
+
long_description: Langbeschreibung
|
18
|
+
main_image_content_type: Hauptbild Dateityp
|
23
19
|
main_image_file_name: Hauptbild Dateiname
|
24
20
|
main_image_file_size: Hauptbild Dateigröße
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
21
|
+
main_image_fingerprint: Hauptbild Fingerabdruck
|
22
|
+
main_image: Hauptbild
|
23
|
+
main_image_updated_at: Hauptbild aktualisiert am
|
24
|
+
markup_language: Markup Sprache
|
25
|
+
name: Name
|
29
26
|
parent_id: Überkategorie
|
30
|
-
|
27
|
+
parent: Überkategorie
|
28
|
+
preview_image_content_type: Vorschaubild Dateityp
|
31
29
|
preview_image_file_name: Vorschaubild Dateiname
|
32
30
|
preview_image_file_size: Vorschaubild Dateigröße
|
33
|
-
|
31
|
+
preview_image_fingerprint: Vorschaubild Fingerabdruck
|
32
|
+
preview_image_updated_at: Vorschaubild aktualisiert am
|
34
33
|
preview_image: Vorschaubild
|
35
|
-
|
36
|
-
|
34
|
+
rgt: Rechts
|
35
|
+
short_description: Kurzbeschreibung
|
36
|
+
slug: Freundliche ID
|
37
|
+
updated_at: Aktualisiert am
|
38
|
+
|
@@ -1,36 +1,38 @@
|
|
1
|
-
---
|
2
|
-
en:
|
3
|
-
activerecord:
|
4
|
-
models:
|
5
|
-
ecm/products/product_category:
|
1
|
+
---
|
2
|
+
en:
|
3
|
+
activerecord:
|
4
|
+
models:
|
5
|
+
ecm/products/product_category:
|
6
6
|
one: product category
|
7
7
|
other: product categories
|
8
|
-
attributes:
|
9
|
-
ecm/products/product_category:
|
10
|
-
|
11
|
-
name: name
|
12
|
-
preview_image_fingerprint: preview image fingerprint
|
13
|
-
main_image_content_type: main image content type
|
8
|
+
attributes:
|
9
|
+
ecm/products/product_category:
|
10
|
+
children: subcategories
|
14
11
|
created_at: created at
|
15
|
-
ecm_products_products: products
|
16
|
-
ecm_products_products_count: products
|
17
12
|
depth: depth
|
18
|
-
|
19
|
-
|
20
|
-
main_image_updated_at: main image updated at
|
13
|
+
ecm_products_products_count: products
|
14
|
+
ecm_products_products: products
|
21
15
|
lft: left
|
22
|
-
|
16
|
+
locale: language
|
17
|
+
long_description: long description
|
18
|
+
main_image_content_type: main image content type
|
23
19
|
main_image_file_name: main image file name
|
24
20
|
main_image_file_size: main image file size
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
21
|
+
main_image_fingerprint: main image fingerprint
|
22
|
+
main_image: main image
|
23
|
+
main_image_updated_at: main image updated at
|
24
|
+
markup_language: markup language
|
25
|
+
name: name
|
29
26
|
parent_id: parent category
|
30
|
-
|
27
|
+
parent: parent category
|
28
|
+
preview_image_content_type: preview image content type
|
31
29
|
preview_image_file_name: preview image file name
|
32
30
|
preview_image_file_size: preview image file size
|
33
|
-
|
31
|
+
preview_image_fingerprint: preview image fingerprint
|
34
32
|
preview_image: preview image
|
35
|
-
|
36
|
-
|
33
|
+
preview_image_updated_at: preview image updated at
|
34
|
+
rgt: right
|
35
|
+
short_description: short description
|
36
|
+
slug: slug
|
37
|
+
updated_at: updated at
|
38
|
+
|
@@ -0,0 +1,25 @@
|
|
1
|
+
---
|
2
|
+
de:
|
3
|
+
activerecord:
|
4
|
+
models:
|
5
|
+
ecm/products/product_picture:
|
6
|
+
one: Produkt Bild
|
7
|
+
other: Produkt Bilder
|
8
|
+
attributes:
|
9
|
+
ecm/products/product_picture:
|
10
|
+
created_at: Erstellt am
|
11
|
+
description: Beschreibung
|
12
|
+
ecm_products_product_id: Produkt
|
13
|
+
ecm_products_product: Produkt
|
14
|
+
image_content_type: Content Type
|
15
|
+
image_file_name: Dateiname
|
16
|
+
image_file_size: Dateigröße
|
17
|
+
image_fingerprint: Fingerabdruck
|
18
|
+
image_updated_at: Datei aktualisiert am
|
19
|
+
markup_language: Markup Sprache
|
20
|
+
name: Name
|
21
|
+
position: Position
|
22
|
+
slug: Freundliche ID
|
23
|
+
thumbnail: Bild
|
24
|
+
updated_at: Aktualisiert am
|
25
|
+
|
@@ -0,0 +1,25 @@
|
|
1
|
+
---
|
2
|
+
en:
|
3
|
+
activerecord:
|
4
|
+
models:
|
5
|
+
ecm/products/product_picture:
|
6
|
+
one: product picture
|
7
|
+
other: product pictures
|
8
|
+
attributes:
|
9
|
+
ecm/products/product_picture:
|
10
|
+
created_at: created at
|
11
|
+
description: description
|
12
|
+
ecm_products_product_id: product
|
13
|
+
ecm_products_product: product
|
14
|
+
image_content_type: content type
|
15
|
+
image_file_name: filename
|
16
|
+
image_file_size: filesize
|
17
|
+
image_fingerprint: fingerprint
|
18
|
+
image_updated_at: file updated at
|
19
|
+
markup_language: markup language
|
20
|
+
name: name
|
21
|
+
position: position
|
22
|
+
slug: friendly id
|
23
|
+
thumbnail: picture
|
24
|
+
updated_at: updated at
|
25
|
+
|