diff --git a/app/controllers/fetprofiles_controller.rb b/app/controllers/fetprofiles_controller.rb index 17cdd4c..c056ada 100644 --- a/app/controllers/fetprofiles_controller.rb +++ b/app/controllers/fetprofiles_controller.rb @@ -50,6 +50,8 @@ class FetprofilesController < ApplicationController # GET /fetprofiles/1/edit def edit @fetprofile = Fetprofile.find(params[:id]) + @memberships=@fetprofile.memberships.order(:typ) + @memberships< :membership mount_uploader :picture, PictureUploader has_paper_trail +validates :desc, :presence=>true + validates :nachname, length:{minimum: 3},:presence=>true + validates :vorname, length:{minimum: 3},:presence=>true + validates :short, length:{minimum: 3},:presence=>true + def name [vorname, nachname, "(",short,")"].join(" ") end - accepts_nested_attributes_for :memberships + accepts_nested_attributes_for :memberships, :reject_if=>lambda{|a| a[:typ].blank?|| a[:start].blank? ||a[:fetprofile_id].blank?} scope :active, -> { where(:active=>true).order(:vorname) } def fetmail (fetmailalias.nil? || fetmailalias.empty?) ? short.to_s + "@fet.at" : fetmailalias.to_s + "@fet.at" diff --git a/app/models/gremium.rb b/app/models/gremium.rb index b3bc9fa..95cb6f9 100644 --- a/app/models/gremium.rb +++ b/app/models/gremium.rb @@ -15,11 +15,12 @@ class Gremium < ActiveRecord::Base TYPEN={1=>"offiziell", 2=>"offiziell-temporär", 3 => "inoffiziell",4=>"inoffiziell-tempo"} # Kategorien, im Wesentlichen wichtig für Listung oder nicht Listung GESCHLECHT={0=>"saechlich", 1 => "maennlich", 2 => "weiblich"} # Geschlecht des Gremiums zur richtige Deklination ART2FALL={0=>"des", 1=>"des",2=>"der"} # Artikel 2.Fall abhängig vom Geschlecht - attr_accessible :desc, :name, :typ, :geschlecht,:thema_id + attr_accessible :desc, :name, :typ, :geschlecht,:thema_id, :memberships_attributes has_many :memberships # Mitgliedschaften bei dem Gremium belongs_to :thema # Gehört zu einem Thema scope :tabs, -> { where(:typ => [1,3]).order(:typ).order(:name) } # Gremien die in Tabs angezeigt werden (Alle Anderen nur in der Liste # Gremium im 2. Fall für die Konstruktion "Mitglied des ... / der ... " + accepts_nested_attributes_for :memberships, :reject_if=>lambda{|a| a[:typ].blank?|| a[:start].blank? ||a[:fetprofile_id].blank?} def fall2 Gremium::ART2FALL[self.geschlecht.to_i].to_s+" "+ self.name.to_s+ ((self.geschlecht.to_i==1||self.geschlecht.to_i==0)? "s":"") end diff --git a/app/models/membership.rb b/app/models/membership.rb index 29c7ea6..fcc5385 100644 --- a/app/models/membership.rb +++ b/app/models/membership.rb @@ -18,5 +18,7 @@ class Membership < ActiveRecord::Base belongs_to :fetprofile belongs_to :gremium scope :active, -> {where("stop >= ? OR stop IS NULL", Time.now.to_date)} - + validates :typ, :presence=>true + validates :fetprofile, :presence=>true + validates :start, :presence=>true end diff --git a/app/views/fetprofiles/_form.html.erb b/app/views/fetprofiles/_form.html.erb index 28905e7..d66a6bb 100644 --- a/app/views/fetprofiles/_form.html.erb +++ b/app/views/fetprofiles/_form.html.erb @@ -28,9 +28,13 @@
<%= f.input :fetmailalias %>
- <%= f.inputs :for => :memberships do |membership,i| %> +<% @memberships.each do |m| %> + + <%= f.semantic_fields_for :memberships, m do |membership| %> +
+
<%= membership.input :start, :as=>:datepicker, :prepend=>"von",:label=>false%>
<%= membership.input :stop, :as=>:datepicker,:label=>false, :prepend =>"bis" %>
<%= membership.input :typ ,:as=>:select, :collection=>Membership::TYPEN.invert, :label=>false %>
@@ -39,7 +43,7 @@
<% end %> - <% end %> + <% end %> <% end %>
<%= f.actions do %> diff --git a/app/views/gremien/_form.html.erb b/app/views/gremien/_form.html.erb index ca48368..d448de1 100644 --- a/app/views/gremien/_form.html.erb +++ b/app/views/gremien/_form.html.erb @@ -5,6 +5,36 @@ <%= f.input :typ, :as => :select, :collection => Gremium::TYPEN.invert %> <%= f.input :geschlecht, :as => :select, :collection => Gremium::GESCHLECHT.invert %> <%= f.input :thema, :as=> :select, :collection => Thema.all %> + + + <% f.inputs :for => :memberships, :objects=>@memberships do |membership,i| %> +
+
+
<%= membership.input :start, :as=>:datepicker, :prepend=>"von",:label=>false%>
+
<%= membership.input :stop, :as=>:datepicker,:label=>false, :prepend =>"bis" %>
+
<%= membership.input :typ ,:as=>:select, :collection=>Membership::TYPEN.invert, :label=>false %>
+
<%= membership.input :fetprofile, :as=>:select, :label=>false %>
+ + +
+ <% end %> + + +<% @memberships.each do |m| %> + + <%= f.semantic_fields_for :memberships, m do |memberships_attributes| %> +
+
+
<%= memberships_attributes.input :start, :as=>:datepicker, :prepend=>"von",:label=>false%>
+
<%= memberships_attributes.input :stop, :as=>:datepicker,:label=>false, :prepend =>"bis" %>
+
<%= memberships_attributes.input :typ ,:as=>:select, :collection=>Membership::TYPEN.invert, :label=>false %>
+
<%= memberships_attributes.input :fetprofile, :as=>:select, :label=>false %>
+ + +
+ <% end %> +<% end %> + <% end %> <%= f.actions do %>