forked from bofh/fetsite
gremien mitgliedschaften bearbeiten.
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 %>
|
||||
|
||||
@@ -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 %>
|
||||
|
||||
Reference in New Issue
Block a user