From b46e19b46692ff21b7b3fa354fcddcb8322f9b37 Mon Sep 17 00:00:00 2001 From: Andreas Stephanides Date: Sun, 18 Jan 2015 14:32:20 +0100 Subject: [PATCH] integrate calendar with meetings --- app/helpers/application_helper.rb | 8 +++++++- app/models/calentry.rb | 1 + app/models/meeting.rb | 5 +++++ app/models/meetingtyp.rb | 3 ++- app/models/neuigkeit.rb | 2 +- app/models/thema.rb | 1 + 6 files changed, 17 insertions(+), 3 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 5395ac8..400de60 100755 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -1,5 +1,11 @@ module ApplicationHelper - + def clean_calendar(cal) + cal.rubrik.meetingtyps.each do |mt| + mt.meetings.each do |m| + m.calentry.calendar=cal + end + end + end def strip_control_chars(value) value.chars.inject("") do |str, char| unless char.ascii_only? && (char.ord < 32 || char.ord == 127) diff --git a/app/models/calentry.rb b/app/models/calentry.rb index 8347a90..94e58e5 100644 --- a/app/models/calentry.rb +++ b/app/models/calentry.rb @@ -32,6 +32,7 @@ class Calentry < ActiveRecord::Base resourcify def get_public + self.calendar=self.object.calendar unless object.nil? || object.calendar.nil? self.public = (self.try(:object).nil?)? (self.calendar.try(:public?)) : object.try(:public?) true end diff --git a/app/models/meeting.rb b/app/models/meeting.rb index 933ec2f..d86a024 100644 --- a/app/models/meeting.rb +++ b/app/models/meeting.rb @@ -8,12 +8,16 @@ class Meeting < ActiveRecord::Base has_one :protocol, :class_name=>'Document', :conditions=>{:typ=>10}, :as=>:parent has_one :agenda , :as=>:parent,:conditions=>{:typ=>11}, :class_name=>'Document' has_one :calentry, as: :object + has_one :calendar, :through=>:meetingtyp + has_one :rubrik, :through=>:meetingtyp + accepts_nested_attributes_for :calentry # validate :agenda, :presence=>true # validate :protocol, :presence=>true validate :parent, :presence=>true validate :calentry, :presence=>true before_validation :fix_calentry + def title self.text end @@ -39,6 +43,7 @@ class Meeting < ActiveRecord::Base end def fix_calentry self.calentry.object=self unless self.calentry.nil? + self.calentry.calendar = self.meetingtyp.rubrik.calendar end def public? ! (self.intern) diff --git a/app/models/meetingtyp.rb b/app/models/meetingtyp.rb index 9a1164a..24760f0 100644 --- a/app/models/meetingtyp.rb +++ b/app/models/meetingtyp.rb @@ -2,5 +2,6 @@ class Meetingtyp < ActiveRecord::Base attr_accessible :agendaintern, :desc, :name, :protocolintern belongs_to :rubrik validate :rubrik, :presence=>true - + has_many :meetings + has_one :calendar, through: :rubrik end diff --git a/app/models/neuigkeit.rb b/app/models/neuigkeit.rb index daab01e..caeec97 100755 --- a/app/models/neuigkeit.rb +++ b/app/models/neuigkeit.rb @@ -20,7 +20,7 @@ class Neuigkeit < ActiveRecord::Base validates :rubrik, :presence=>true validates :author, :presence=>true translates :title,:text, :versioning=>{:gem=>:paper_trail, :options=>{:fallbacks_for_empty_translations => true}} - + has_one :calendar, through: :rubrik has_many :calentries, as: :object has_many :nlinks has_one :meeting diff --git a/app/models/thema.rb b/app/models/thema.rb index c993349..11e97aa 100644 --- a/app/models/thema.rb +++ b/app/models/thema.rb @@ -1,3 +1,4 @@ + # == Schema Information # # Table name: themen