Skip to content

Commit 427e268

Browse files
author
foradian
committed
[fixes BUG #3890] Lesson plan for elective subjects not visible. (fixes with changes in employee timetable and teachers timetable backend)
git-svn-id: file:///svn/fedena2.1/branches/fedena2.1_i18n@4121 1b8ff446-76f8-11e0-a33c-ba5893e5f458
1 parent 6bc44ae commit 427e268

File tree

2 files changed

+25
-7
lines changed

2 files changed

+25
-7
lines changed

app/controllers/timetable_controller.rb

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,9 @@ def teachers_timetable
201201
@elective_teachers=sub.elective_group.subjects.collect(&:employees).flatten
202202
@current.timetable_entries.find_all_by_subject_id(sub.id).each_with_index do |tt , i|
203203
@elective_teachers.each do |e|
204-
@timetable_entries[e.id][tt.weekday_id][tt.class_timing_id][i] = tt
204+
unless sub.elective_group.subjects.first == sub && sub.employees.first == e
205+
@timetable_entries[e.id][tt.weekday_id][tt.class_timing_id][i] = tt
206+
end
205207
end
206208
end
207209
end
@@ -241,7 +243,9 @@ def update_teacher_tt
241243
@elective_teachers=sub.elective_group.subjects.collect(&:employees).flatten
242244
@current.timetable_entries.find_all_by_subject_id(sub.id).each_with_index do |tt , i|
243245
@elective_teachers.each do |e|
244-
@timetable_entries[e.id][tt.weekday_id][tt.class_timing_id][i] = tt
246+
unless sub.elective_group.subjects.first == sub && sub.employees.first == e
247+
@timetable_entries[e.id][tt.weekday_id][tt.class_timing_id][i] = tt
248+
end
245249
end
246250
end
247251
end
@@ -315,8 +319,13 @@ def employee_timetable
315319
@electives=@employee.subjects.group_by(&:elective_group_id)
316320
@timetable_entries = Hash.new { |l, k| l[k] = Hash.new(&l.default_proc) }
317321
@employee_subjects = @employee.subjects
322+
subjects = @employee_subjects.select{|sub| sub.elective_group_id.nil?}
323+
electives = @employee_subjects.select{|sub| sub.elective_group_id.present?}
324+
elective_subjects=electives.map{|x| x.elective_group.subjects.first}
318325
@employee_timetable_subjects = @employee_subjects.map {|sub| sub.elective_group_id.nil? ? sub : sub.elective_group.subjects.first}
319-
@entries = @current.timetable_entries.find(:all,:conditions=>{:subject_id=>@employee_timetable_subjects,:employee_id => @employee.id})
326+
@entries=[]
327+
@entries += @current.timetable_entries.find(:all,:conditions=>{:subject_id=>subjects,:employee_id => @employee.id})
328+
@entries += @current.timetable_entries.find(:all,:conditions=>{:subject_id=>elective_subjects})
320329
@all_timetable_entries = @entries.select{|t| t.batch.is_active}.select{|s| s.class_timing.is_deleted==false}.select{|w| w.weekday.is_deleted==false}
321330
@all_batches = @all_timetable_entries.collect(&:batch).uniq
322331
@all_weekdays = @all_timetable_entries.collect(&:weekday).uniq.sort!{|a,b| a.weekday <=> b.weekday}
@@ -352,8 +361,13 @@ def update_employee_tt
352361
@electives=@employee.subjects.group_by(&:elective_group_id)
353362
@timetable_entries = Hash.new { |l, k| l[k] = Hash.new(&l.default_proc) }
354363
@employee_subjects = @employee.subjects
364+
subjects = @employee_subjects.select{|sub| sub.elective_group_id.nil?}
365+
electives = @employee_subjects.select{|sub| sub.elective_group_id.present?}
366+
elective_subjects=electives.map{|x| x.elective_group.subjects.first}
355367
@employee_timetable_subjects = @employee_subjects.map {|sub| sub.elective_group_id.nil? ? sub : sub.elective_group.subjects.first}
356-
@entries = @current.timetable_entries.find(:all,:conditions=>{:subject_id=>@employee_timetable_subjects,:employee_id => @employee.id})
368+
@entries=[]
369+
@entries += @current.timetable_entries.find(:all,:conditions=>{:subject_id=>subjects,:employee_id => @employee.id})
370+
@entries += @current.timetable_entries.find(:all,:conditions=>{:subject_id=>elective_subjects})
357371
@all_timetable_entries = @entries.select{|t| t.batch.is_active}.select{|s| s.class_timing.is_deleted==false}.select{|w| w.weekday.is_deleted==false}
358372
@all_batches = @all_timetable_entries.collect(&:batch).uniq
359373
@all_weekdays = @all_timetable_entries.collect(&:weekday).uniq.sort!{|a,b| a.weekday <=> b.weekday}
@@ -460,7 +474,7 @@ def work_allotment
460474
end
461475
@batches = Batch.active.scoped :include=>[{:subjects=>:employees},:course]
462476
@subjects = @batches.collect(&:subjects).flatten
463-
end
477+
end
464478
def timetable
465479
@config = Configuration.available_modules
466480
@batches = Batch.active

app/models/timetable.rb

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,12 @@ def self.tte_for_the_weekday(batch,day)
7272
end
7373

7474
def self.employee_tte(employee,date)
75-
subjects = employee.subjects.map {|sub| sub.elective_group_id.nil? ? sub : sub.elective_group.subjects.first}
76-
entries = TimetableEntry.find(:all,:joins=>[:timetable, :class_timing, :weekday],:conditions=>["(timetables.start_date <= ? AND timetables.end_date >= ?) AND timetable_entries.subject_id in (?) AND timetable_entries.employee_id = (?) AND class_timings.is_deleted = false AND weekdays.is_deleted = false",date,date,subjects,employee.id], :order=>"class_timings.start_time")
75+
subjects = employee.subjects.select{|sub| sub.elective_group_id.nil?}
76+
electives = employee.subjects.select{|sub| sub.elective_group_id.present?}
77+
elective_subjects=electives.map{|x| x.elective_group.subjects.first}
78+
entries =[]
79+
entries += TimetableEntry.find(:all,:joins=>[:timetable, :class_timing, :weekday],:conditions=>["(timetables.start_date <= ? AND timetables.end_date >= ?) AND timetable_entries.subject_id in (?) AND timetable_entries.employee_id = (?) AND class_timings.is_deleted = false AND weekdays.is_deleted = false",date,date,subjects,employee.id], :order=>"class_timings.start_time")
80+
entries += TimetableEntry.find(:all,:joins=>[:timetable, :class_timing, :weekday],:conditions=>["(timetables.start_date <= ? AND timetables.end_date >= ?) AND timetable_entries.subject_id in (?) AND class_timings.is_deleted = false AND weekdays.is_deleted = false",date,date,elective_subjects], :order=>"class_timings.start_time")
7781
if entries.empty?
7882
today=[]
7983
else

0 commit comments

Comments
 (0)