gremien mitgliedschaften bearbeiten.

This commit is contained in:
Andreas Stephanides
2013-11-12 22:04:57 +01:00
parent 3f6734d51e
commit d1ae7b7da5
7 changed files with 53 additions and 5 deletions

View File

@@ -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.new
end
# POST /fetprofiles

View File

@@ -45,6 +45,10 @@ class GremienController < ApplicationController
# GET /gremien/1/edit
def edit
@gremium = Gremium.find(params[:id])
@memberships=@gremium.memberships.order(:fetprofile_id).active
@memberships<<Membership.new
end
# POST /gremien

View File

@@ -20,10 +20,15 @@ class Fetprofile < ActiveRecord::Base
has_many :gremien, :through=> :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"

View File

@@ -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

View File

@@ -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

View File

@@ -28,9 +28,13 @@
<div class="span4"> <%= f.input :fetmailalias %></div>
</div>
<%= f.inputs :for => :memberships do |membership,i| %>
<% @memberships.each do |m| %>
<%= f.semantic_fields_for :memberships, m do |membership| %>
<div class="row-fluid">
<div class="span1"></div>
<div class="span3"><%= membership.input :start, :as=>:datepicker, :prepend=>"von",:label=>false%></div>
<div class="span3"><%= membership.input :stop, :as=>:datepicker,:label=>false, :prepend =>"bis" %></div>
<div class="span2"><%= membership.input :typ ,:as=>:select, :collection=>Membership::TYPEN.invert, :label=>false %></div>
@@ -39,7 +43,7 @@
</div>
<% end %>
<% end %>
<% end %> <% end %>
<div class="row-fluid">
<div class="span12">
<%= f.actions do %>

View File

@@ -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| %>
<div class="row-fluid">
<div class="span1"></div>
<div class="span3"><%= membership.input :start, :as=>:datepicker, :prepend=>"von",:label=>false%></div>
<div class="span3"><%= membership.input :stop, :as=>:datepicker,:label=>false, :prepend =>"bis" %></div>
<div class="span2"><%= membership.input :typ ,:as=>:select, :collection=>Membership::TYPEN.invert, :label=>false %></div>
<div class="span3"><%= membership.input :fetprofile, :as=>:select, :label=>false %></div>
</div>
<% end %>
<% @memberships.each do |m| %>
<%= f.semantic_fields_for :memberships, m do |memberships_attributes| %>
<div class="row-fluid">
<div class="span1"></div>
<div class="span3"><%= memberships_attributes.input :start, :as=>:datepicker, :prepend=>"von",:label=>false%></div>
<div class="span3"><%= memberships_attributes.input :stop, :as=>:datepicker,:label=>false, :prepend =>"bis" %></div>
<div class="span2"><%= memberships_attributes.input :typ ,:as=>:select, :collection=>Membership::TYPEN.invert, :label=>false %></div>
<div class="span3"><%= memberships_attributes.input :fetprofile, :as=>:select, :label=>false %></div>
</div>
<% end %>
<% end %>
<% end %>
<%= f.actions do %>