Skip to content

Commit

Permalink
Code clean and reorganization
Browse files Browse the repository at this point in the history
  • Loading branch information
Igor Rzegocki committed Jul 8, 2012
1 parent 4c37b9d commit d290973
Show file tree
Hide file tree
Showing 6 changed files with 232 additions and 195 deletions.
102 changes: 55 additions & 47 deletions components/declarations/declaration_experience.rb
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -4,54 +4,63 @@ class DeclarationExperience < Declarations
def initialize(params, logged_user, settings = false) def initialize(params, logged_user, settings = false)
super super
unless settings unless settings
day = 20 execute params
while(Time.mktime(Time.now.year,06,day).strftime('%a') != 'Mon') else
day += 1 setup params
end end
@beginning = [] end
month = 6
days = {6 => 30, 7 => 31, 8 => 31} def execute params
12.times do |iteration| day = 20
begin while(Time.mktime(Time.now.year,06,day).strftime('%a') != 'Mon')
time = Time.mktime(Time.now.year,month,(day + iteration * 7)).strftime('%Y-%m-%d') day += 1
rescue end
day -= days[month] @beginning = []
month += 1 month = 6
end days = {6 => 30, 7 => 31, 8 => 31}
time = Time.mktime(Time.now.year,month,(day + iteration * 7)).strftime('%Y-%m-%d') 12.times do |iteration|
@beginning.push [time, time] begin
end time = Time.mktime(Time.now.year,month,(day + iteration * 7)).strftime('%Y-%m-%d')
@template = 'experience' rescue
if params[:declarations_experience] day -= days[month]
params[:declarations_experience][:declaration_id] = @declaration_id month += 1
params[:declarations_experience][:firstname] = @logged_user.firstname
params[:declarations_experience][:lastname] = @logged_user.lastname
params[:declarations_experience][:sindex] = params[:users_student][:sindex]
params[:declarations_experience][:speciality_id] = @logged_user.users_student.speciality_id
params[:declarations_experience][:beginning] = Time.mktime(params[:declarations_experiences_dates][:beginning][0..3].to_i, params[:declarations_experiences_dates][:beginning][5..6].to_i, params[:declarations_experiences_dates][:beginning][8..9].to_i)
params[:declarations_experience][:beginning_additional] = Time.mktime(params[:declarations_experiences_dates][:beginning_additional_year].to_i, params[:declarations_experiences_dates][:beginning_additional_month].to_i, params[:declarations_experiences_dates][:beginning_additional_day].to_i)
params[:declarations_experience][:ending_additional] = Time.mktime(params[:declarations_experiences_dates][:ending_additional_year].to_i, params[:declarations_experiences_dates][:ending_additional_month].to_i, params[:declarations_experiences_dates][:ending_additional_day].to_i)
@declarations_experience = DeclarationsExperience.new(params[:declarations_experience])
if(@declarations_experience.valid? and declaration_previous = DeclarationsExperience.find_by_sindex(params[:declarations_experience][:sindex]))
@declarations_experience = DeclarationsExperience.update(declaration_previous.id, params[:declarations_experience])
@flash_notice = 'Deklaracja została poprawiona'
else
@flash_notice = 'Deklaracja została dodana' if @declarations_experience.save
end
end end
if @declarations_experience.nil? and DeclarationsExperience.find(:first, :conditions => ['sindex = ? AND declaration_id = ?', params[:users_student][:sindex], @declaration_id]) time = Time.mktime(Time.now.year,month,(day + iteration * 7)).strftime('%Y-%m-%d')
@declarations_experience = DeclarationsExperience.find(:first, :conditions => ['sindex = ? AND declaration_id = ?', params[:users_student][:sindex], @declaration_id]) @beginning.push [time, time]
@declarations_experiences_dates = HashWithMethods.new({ end
:beginning => @declarations_experience.beginning.strftime('%Y-%m-%d'), @template = 'experience'
:beginning_additional_year => @declarations_experience.beginning_additional.year, if params[:declarations_experience]
:beginning_additional_month => @declarations_experience.beginning_additional.month, params[:declarations_experience][:declaration_id] = @declaration_id
:beginning_additional_day => @declarations_experience.beginning_additional.day, params[:declarations_experience][:firstname] = @logged_user.firstname
:ending_additional_year => @declarations_experience.ending_additional.year, params[:declarations_experience][:lastname] = @logged_user.lastname
:ending_additional_month => @declarations_experience.ending_additional.month, params[:declarations_experience][:sindex] = params[:users_student][:sindex]
:ending_additional_day => @declarations_experience.ending_additional.day, params[:declarations_experience][:speciality_id] = @logged_user.users_student.speciality_id
}) params[:declarations_experience][:beginning] = Time.mktime(params[:declarations_experiences_dates][:beginning][0..3].to_i, params[:declarations_experiences_dates][:beginning][5..6].to_i, params[:declarations_experiences_dates][:beginning][8..9].to_i)
params[:declarations_experience][:beginning_additional] = Time.mktime(params[:declarations_experiences_dates][:beginning_additional_year].to_i, params[:declarations_experiences_dates][:beginning_additional_month].to_i, params[:declarations_experiences_dates][:beginning_additional_day].to_i)
params[:declarations_experience][:ending_additional] = Time.mktime(params[:declarations_experiences_dates][:ending_additional_year].to_i, params[:declarations_experiences_dates][:ending_additional_month].to_i, params[:declarations_experiences_dates][:ending_additional_day].to_i)
@declarations_experience = DeclarationsExperience.new(params[:declarations_experience])
if(@declarations_experience.valid? and declaration_previous = DeclarationsExperience.find_by_sindex(params[:declarations_experience][:sindex]))
@declarations_experience = DeclarationsExperience.update(declaration_previous.id, params[:declarations_experience])
@flash_notice = 'Deklaracja została poprawiona'
else
@flash_notice = 'Deklaracja została dodana' if @declarations_experience.save
end end
else end
if @declarations_experience.nil? and DeclarationsExperience.find(:first, :conditions => ['sindex = ? AND declaration_id = ?', params[:users_student][:sindex], @declaration_id])
@declarations_experience = DeclarationsExperience.find(:first, :conditions => ['sindex = ? AND declaration_id = ?', params[:users_student][:sindex], @declaration_id])
@declarations_experiences_dates = HashWithMethods.new({
:beginning => @declarations_experience.beginning.strftime('%Y-%m-%d'),
:beginning_additional_year => @declarations_experience.beginning_additional.year,
:beginning_additional_month => @declarations_experience.beginning_additional.month,
:beginning_additional_day => @declarations_experience.beginning_additional.day,
:ending_additional_year => @declarations_experience.ending_additional.year,
:ending_additional_month => @declarations_experience.ending_additional.month,
:ending_additional_day => @declarations_experience.ending_additional.day,
})
end
end

def setup params
if params[:page] if params[:page]
@experiences = DeclarationsExperience.find(IdEncoder.decode(params[:page]), :include => :speciality) @experiences = DeclarationsExperience.find(IdEncoder.decode(params[:page]), :include => :speciality)
@confirmations = HashWithMethods.new({ @confirmations = HashWithMethods.new({
Expand All @@ -66,6 +75,5 @@ def initialize(params, logged_user, settings = false)
@experiences = DeclarationsExperience.find(:all, :conditions => ['declaration_id = ?', @declaration_id]) @experiences = DeclarationsExperience.find(:all, :conditions => ['declaration_id = ?', @declaration_id])
@template = 'experience' @template = 'experience'
end end
end
end end
end end
66 changes: 35 additions & 31 deletions components/declarations/declaration_language.rb
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -4,47 +4,51 @@ class DeclarationLanguage < Declarations
def initialize(params, logged_user, settings = false) def initialize(params, logged_user, settings = false)
super super
unless settings unless settings
@languages_table = [['---', ''], ['j. angielski', 'en'], ['j. polski', 'pl']]
valid_languages = @languages_table[1..@languages_table.length].collect { |i| i[1] unless i[1].empty? }
if params[:declarations_language]
given_subjects = params[:declarations_language].sort.collect {|i| [i[0].gsub(/_[ab]/, ''), (valid_languages.include?(i[1]) ? i[1] : 'en')] }
given_keys = Hash[*given_subjects.flatten].keys
converted_subjects = {}
given_keys.each { |key| given_subjects.each { |subject| converted_subjects[key] = converted_subjects[key].to_s + subject[1] if subject[0] == key } }
merge_subjects converted_subjects
@merged_subjects.each_pair do |subject, language|
declarations_language = {
:declaration_id => @declaration_id,
:subject_id => subject.to_i,
:user_id => @logged_user.id,
:date => Time.now,
:language => language,
}
create_or_update subject, declarations_language
end
@flash_notice = 'Deklaracja została zapisana'
end
if(declarations_language_filled = DeclarationsSubject.find(:all, :conditions => ['declaration_id = ? AND user_id = ?', @declaration_id, @logged_user.id]))
@declarations_language = {}
declarations_language_filled.each do |dlf|
fill_selects dlf.subject_id, dlf.language
end
@declarations_language = HashWithMethods.new(@declarations_language)
end
@template = 'language'
else else
setup params setup params
end end
end end


def fill_selects subject, language def execute params
@declarations_language[(IdEncoder.encode(subject) + '_a')] = language[0..1] @languages_table = [['---', ''], ['j. angielski', 'en'], ['j. polski', 'pl']]
@declarations_language[(IdEncoder.encode(subject) + '_b')] = language[2..3] valid_languages = @languages_table[1..@languages_table.length].collect { |i| i[1] unless i[1].empty? }
if params[:declarations_language]
given_subjects = params[:declarations_language].sort.collect {|i| [i[0].gsub(/_[ab]/, ''), (valid_languages.include?(i[1]) ? i[1] : 'en')] }
given_keys = Hash[*given_subjects.flatten].keys
converted_subjects = {}
given_keys.each { |key| given_subjects.each { |subject| converted_subjects[key] = converted_subjects[key].to_s + subject[1] if subject[0] == key } }
merge_subjects converted_subjects
@merged_subjects.each_pair do |subject, language|
declarations_language = {
:declaration_id => @declaration_id,
:subject_id => subject.to_i,
:user_id => @logged_user.id,
:date => Time.now,
:language => language,
}
create_or_update subject, declarations_language
end
@flash_notice = 'Deklaracja została zapisana'
end
if(declarations_language_filled = DeclarationsSubject.find(:all, :conditions => ['declaration_id = ? AND user_id = ?', @declaration_id, @logged_user.id]))
@declarations_language = {}
declarations_language_filled.each do |dlf|
fill_selects dlf.subject_id, dlf.language
end
@declarations_language = HashWithMethods.new(@declarations_language)
end
@template = 'language'
end end


def setup params def setup params
@subjects = {} @subjects = {}
DeclarationsSubject.find(:all, :conditions => ['declaration_id = ? AND user_id IS NOT NULL', @declaration_id], :group => 'subject_id').collect {|i| {i.subject_id => Hash[*(DeclarationsSubject.count(:conditions => ['declaration_id = ? AND user_id IS NOT null AND subject_id = ?', @declaration_id, i.subject_id], :group => 'language').flatten)]} }.each {|value| @subjects = value.merge(@subjects)} DeclarationsSubject.find(:all, :conditions => ['declaration_id = ? AND user_id IS NOT NULL', @declaration_id], :group => 'subject_id').collect {|i| {i.subject_id => Hash[*(DeclarationsSubject.count(:conditions => ['declaration_id = ? AND user_id IS NOT null AND subject_id = ?', @declaration_id, i.subject_id], :group => 'language').flatten)]} }.each {|value| @subjects = value.merge(@subjects)}
@template = 'language' @template = 'language'
end end

def fill_selects subject, language
@declarations_language[(IdEncoder.encode(subject) + '_a')] = language[0..1]
@declarations_language[(IdEncoder.encode(subject) + '_b')] = language[2..3]
end

end end
66 changes: 35 additions & 31 deletions components/declarations/declaration_module.rb
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -2,40 +2,44 @@ class DeclarationModule < Declarations
attr_reader :average, :declarations_subject, :declarations_grade, :students, :fields attr_reader :average, :declarations_subject, :declarations_grade, :students, :fields
def initialize(params, logged_user, settings = false) def initialize(params, logged_user, settings = false)
super super
if settings unless settings
setup params execute params
else else
if params[:declarations_subject] and !params[:back] and !already_filled? setup params
merge_subjects(params[:declarations_grade]) {|grade| grade.to_f } end
@average = (@merged_subjects.values.sum / @merged_subjects.values.length).to_s[0..3] end
params[:declarations_subject][:module] = 2 unless [2, 3].include?(params[:declarations_subject][:module])
params[:declarations_subject][:year] = Time.now.year - @logged_user.users_student.year - (Time.now.month > 9 ? 1 : 0) unless (1970..Time.now.year).include?(params[:declarations_subject][:year].to_i) def execute params
if params[:final_commit] if params[:declarations_subject] and !params[:back] and !already_filled?
@merged_subjects.each_pair do |subject, grade| merge_subjects(params[:declarations_grade]) {|grade| grade.to_f }
DeclarationsSubject.new({ @average = (@merged_subjects.values.sum / @merged_subjects.values.length).to_s[0..3]
:declaration_id => @declaration_id, params[:declarations_subject][:module] = 2 unless [2, 3].include?(params[:declarations_subject][:module])
:subject_id => subject.to_i, params[:declarations_subject][:year] = Time.now.year - @logged_user.users_student.year - (Time.now.month > 9 ? 1 : 0) unless (1970..Time.now.year).include?(params[:declarations_subject][:year].to_i)
:user_id => @logged_user.id, if params[:final_commit]
:grade => grade, @merged_subjects.each_pair do |subject, grade|
:year => params[:declarations_subject][:year], DeclarationsSubject.new({
:speciality_id => params[:declarations_subject][:module], :declaration_id => @declaration_id,
:date => Time.now, :subject_id => subject.to_i,
}).save :user_id => @logged_user.id,
end :grade => grade,
@template = 'module_done' :year => params[:declarations_subject][:year],
else :speciality_id => params[:declarations_subject][:module],
@template = 'module_1' :date => Time.now,
}).save
end end
@template = 'module_done'
else else
@declarations_subject = HashWithMethods.new(params[:declarations_subject]) if params[:declarations_subject] @template = 'module_1'
@declarations_grade = HashWithMethods.new(params[:declarations_grade]) if params[:declarations_grade] end
unless already_filled? else
@template = 'module' @declarations_subject = HashWithMethods.new(params[:declarations_subject]) if params[:declarations_subject]
else @declarations_grade = HashWithMethods.new(params[:declarations_grade]) if params[:declarations_grade]
@template = 'module_done' unless already_filled?
end @template = 'module'
end else
end @template = 'module_done'
end
end
end end


def setup params def setup params
Expand Down
57 changes: 33 additions & 24 deletions components/declarations/declaration_print.rb
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -4,32 +4,41 @@ class DeclarationPrint < Declarations
def initialize(params, logged_user, settings = false) def initialize(params, logged_user, settings = false)
super super
unless settings unless settings
@print_table = [['nie', false], ['tak', true]] execute params
if params[:declarations_print] else
merge_subjects(params[:declarations_print]) {|subject| (subject == 'true')} setup params
@merged_subjects.each_pair do |subject, print| end
declarations_print = { end
:declaration_id => @declaration_id,
:subject_id => subject.to_i, def execute params
:user_id => @logged_user.id, @print_table = [['nie', false], ['tak', true]]
:date => Time.now, if params[:declarations_print]
:print => print merge_subjects(params[:declarations_print]) {|subject| (subject == 'true')}
} @merged_subjects.each_pair do |subject, print|
create_or_update subject, declarations_print declarations_print = {
end :declaration_id => @declaration_id,
@flash_notice = 'Deklaracja została zapisana' :subject_id => subject.to_i,
:user_id => @logged_user.id,
:date => Time.now,
:print => print
}
create_or_update subject, declarations_print
end end
if(declarations_print_filled = DeclarationsSubject.find(:all, :conditions => ['declaration_id = ? AND user_id = ?', @declaration_id, @logged_user.id])) @flash_notice = 'Deklaracja została zapisana'
@declarations_print = {} end
declarations_print_filled.each do |dpf| if(declarations_print_filled = DeclarationsSubject.find(:all, :conditions => ['declaration_id = ? AND user_id = ?', @declaration_id, @logged_user.id]))
@declarations_print[IdEncoder.encode(dpf.subject_id)] = dpf.print @declarations_print = {}
end declarations_print_filled.each do |dpf|
@declarations_print = HashWithMethods.new(@declarations_print) @declarations_print[IdEncoder.encode(dpf.subject_id)] = dpf.print
end end
@template = 'print' @declarations_print = HashWithMethods.new(@declarations_print)
else
@subjects = Hash[*(DeclarationsSubject.count(:all, :conditions => ['declaration_id = ? AND user_id IS NOT NULL AND print = true', @declaration_id], :group => 'subject_id').flatten)]
@template = 'print'
end end
@template = 'print'
end

def setup params
@subjects = Hash[*(DeclarationsSubject.count(:all, :conditions => ['declaration_id = ? AND user_id IS NOT NULL AND print = true', @declaration_id], :group => 'subject_id').flatten)]
@template = 'print'
end end

end end
Loading

0 comments on commit d290973

Please sign in to comment.