Files
fetsite/app/models/studium.rb
Andreas Stephanides 1d2d3e791b Qualifikation #129
#129 closed
2014-03-25 19:41:48 +01:00

76 lines
2.3 KiB
Ruby
Executable File

# -*- coding: utf-8 -*-
# == Schema Information
#
# Table name: studien
#
# id :integer not null, primary key
# zahl :string(255)
# name :string(255)
# shortdesc :text
# desc :text
# typ :string(255)
# created_at :datetime not null
# updated_at :datetime not null
# abkuerzung :string(255)
#
# == Schema Information
#
# Table name: studien
#
# id :integer not null, primary key
# zahl :string(255)
# name :string(255)
# shortdesc :text
# desc :text
# typ :string(255)
# created_at :datetime not null
# updated_at :datetime not null
class Studium < ActiveRecord::Base
attr_accessible :desc, :name,:abkuerzung, :typ, :zahl, :semester, :picture, :picture_cache, :qualifikation,:struktur, :jobmoeglichkeiten
has_many :modulgruppen, inverse_of: :studium, :class_name => "Modulgruppe", :dependent => :destroy
has_many :semester, :dependent => :destroy
validates :abkuerzung, :length=>{:maximum=>5}, :format=>{:with=>/^[a-zA-z]{0,5}$/}
validates :typ, :inclusion => {:in => ["Bachelor","Master"] }
validates :name, :uniqueness => true, :presence=>true
validates :zahl, :presence=>true, :format=>{:with=>/^[0-9A-Z]{4,10}$/}, :uniqueness => true
mount_uploader :picture, PictureUploader
translates :desc,:shortdesc, :qualifikation,:struktur, :jobmoeglichkeiten, :versioning =>true,:fallbacks_for_empty_translations => true
def title_context
return self.abkuerzung.to_s.strip.empty? ? self.name : self.abkuerzung
end
def batch_add_semester
# Semester automatisch zu Studien hinzufügen
if self.typ == "Bachelor"
length = 6
else
length = 4
end
for i in 1..length
semester =Semester.new()
#semester.name = i.to_s + '. ' + self.name
semester.nummer = i
semester.ssws = ((i % 2 == 0) ? "SS" : "WS")
semester.save
self.semester << semester
end
semester = Semester.new()
#semester.name = 'Ohne Zuordnung (' + self.name + ')'
semester.nummer = 0
semester.ssws = "WS"
semester.save
self.semester << semester
end
def desc_first_words
md = /<p>(?<text>[\w\s,\.!\?]*)/.match self.desc
unless md.nil?
md[:text].split(" ")[0..100].join(" ")+ " ..."
else
""
end
end
end