diff --git a/app/models/spree/line_item_decorator.rb b/app/models/spree/line_item_decorator.rb index 8d73a3e..abdf8be 100644 --- a/app/models/spree/line_item_decorator.rb +++ b/app/models/spree/line_item_decorator.rb @@ -1,10 +1,8 @@ Spree::LineItem.class_eval do has_many :digital_links, :dependent => :destroy - after_save :create_digital_links, :if => :digital? - # Is this item digital? def digital? variant.digital? end @@ -15,8 +13,10 @@ Spree::LineItem.class_eval do def create_digital_links digital_links.delete_all - self.quantity.times do - digital_links.create!(:digital => variant.digital) + variant.digitals.each do |digital| + self.quantity.times do + digital_links.create!(:digital => digital) + end end end diff --git a/app/models/spree/variant_decorator.rb b/app/models/spree/variant_decorator.rb index acf8eb5..e090aa4 100644 --- a/app/models/spree/variant_decorator.rb +++ b/app/models/spree/variant_decorator.rb @@ -1,11 +1,11 @@ Spree::Variant.class_eval do - has_one :digital, :dependent => :destroy + has_many :digitals, :dependent => :destroy after_save :destroy_digital, :if => :deleted? # Is this variant to be downloaded by the customer? def digital? - digital.present? + digitals.present? end private diff --git a/app/views/spree/admin/digitals/_form.html.erb b/app/views/spree/admin/digitals/_form.html.erb index e017113..7ac9233 100644 --- a/app/views/spree/admin/digitals/_form.html.erb +++ b/app/views/spree/admin/digitals/_form.html.erb @@ -1,35 +1,36 @@ -
-
- <%= form_for(:digital, :url => { :controller => 'digitals', :action => 'create' }, :html => { :multipart => true }) do |f| %> +
+
+ <%= form_for(:digital, :url => { :controller => 'digitals', :action => 'create' }, :html => { :multipart => true }) do |f| %>
<%= Spree::Variant.model_name.human %> "<%= variant.options_text %>" - <%= f.field_container :current_file do %> - <%=t 'current_file' %>:
- <% if variant.digital? %> - <%= render variant.digital %><%= %> - <% else %> - <%=t 'none' %> - <% end %> - <% end %> - -

- <% if variant.digital? %> - <%= link_to t("delete_file"), admin_product_digital_url(:id => variant.digital.id), :confirm => t('delete_file_cofirmation', :filename => variant.digital.attachment_file_name), :method => :delete %> - <% else %> + <%= f.field_container :current_file do %> + <%=t 'files' %>: + <% if variant.digital? %> +

    + <% variant.digitals.each do |digital| %> +
  • + <%= render digital %>   + <%= link_to t("delete_file"), admin_product_digital_url(:id => variant.digitals.first.id), :confirm => t('delete_file_cofirmation', :filename => variant.digitals.first.attachment_file_name), :method => :delete %> +
  • + <% end %> +
+ <% else %> + <%=t 'none' %> + <% end %> + <% end %> - <%= f.field_container :file do %> - <%= f.label :file, t("new_file") %> *
- <%= f.file_field :attachment %> - <% end %> - - <%= hidden_field_tag 'digital[variant_id]', variant.id %> +

+ <%= f.field_container :file do %> + <%= f.label :file, t("new_file") %> *
+ <%= f.file_field :attachment %> + <% end %> - <%= button t('spree_digital.upload') %> - <% end %> -

- -
+ <%= hidden_field_tag 'digital[variant_id]', variant.id %> + + <%= button t('spree_digital.upload') %> +

+ + <% end %> -
-

\ No newline at end of file +