class CourseModify
Let's you add, modify and delete a course, as well as manage students. It is written to work together with a Moodle-installation. Moodle-configuration over LDAP is:
-
First name: sn
-
Name: givenName
-
E-mail: mail
-
Town: l
-
Country: st
-
Telephone1: mobile
Configuration town - the default town country - the default country
Public Instance Methods
hide_if_center(session)
click to toggle source
# File Views/Course/Modify.rb, line 366 def hide_if_center(session) if session.owner.permissions.index('center') %w( print_student duration dow hours classroom ).collect { |e| reply(:hide, e) }.flatten else [] end end
layout()
click to toggle source
# File Views/Course/Modify.rb, line 18 def layout set_data_class :Courses @update = true @order = 10 gui_hboxg do gui_vboxg :nogroup do gui_hboxg :nogroup do gui_vbox :nogroup do show_block :name show_arg :name, :ro => true #show_arg :ctype, :all => true show_block :calendar show_block :teacher #show_block :center show_button :edit_name end gui_vboxg :nogroup do show_block :content show_print :print_presence gui_vboxg do gui_fields do show_list :students, :width => 300, :flexheight => 1 show_button :bulk_add, :del_student, :edit_student, :transfer_student end show_print :print_student end end gui_window :students_bulk do show_text :names show_button :bulk_students, :close end gui_window :ask_double do show_str :double_name show_entity_person :double_proposition, :single, :full_name, :width => 350, :maxheight => 250 show_button :accept, :create_new, :cancel end gui_window :missing_data do show_html :missing show_button :close end gui_window :printing do show_html :msg_print show_int_hidden :step show_button :print_next, :close end gui_window :transfer do show_entity_course :transfer_course, :drop, :name show_button :do_transfer, :close end gui_window :win_edit_name do show_entity_courseType :wen_ctype, :drop, :name show_str :wen_name, :width => 200 show_list_drop :wen_overwrite, '%w( no yes )' show_button :wen_save, :close end end show_button :save end end end
present_doubles(session, course)
click to toggle source
# File Views/Course/Modify.rb, line 299 def present_doubles(session, course) doubles = session.s_data[:perhaps_double] dputs(4) { "Doubles are #{doubles.inspect}" } if doubles and doubles.length > 0 prefix = ConfigBase.has_function?(:course_server) ? "#{session.owner.login_name}_" : "" name = doubles.pop login_name = Persons.create_login_name(name) prop = Persons.search_by_login_name("^#{prefix}#{login_name}[0-9]*$"). collect { |p| courses = Courses.matches_by_students(p.login_name).collect { |c| c.name }. join('-') [p.person_id, "#{p.full_name}:#{p.login_name}:#{courses}"] } dputs(4) { "Proposition is #{prop.inspect}" } reply(:window_show, :ask_double) + reply(:update, :double_name => name) + reply(:empty, [:double_proposition]) + reply(:update, :double_proposition => prop.concat([prop.first[0]])) else reply(:window_hide) end + update_students(course) end
rpc_list_choice(session, name, args)
click to toggle source
# File Views/Course/Modify.rb, line 354 def rpc_list_choice(session, name, args) dputs(3) { "rpc_list_choice with #{name} - #{args.inspect}" } if name == 'courses' and args['courses'].length > 0 course_id = args['courses'][0] dputs(3) { "replying for course_id #{course_id}" } course = Courses.match_by_course_id(course_id) reply(:empty_nonlists, [:students]) + update_form_data(course) + reply(:update, {:courses => [course_id]}) end end
rpc_update(session)
click to toggle source
Calls superclass method
# File Views/Course/Modify.rb, line 377 def rpc_update(session) reply(:empty_nonlists, :students) + super(session) + reply_print(session) + hide_if_center(session) + reply_visible(session.owner.has_role('director'), :edit_name) end
rpc_update_hook(session, one, two)
click to toggle source
# File Views/Course/Modify.rb, line 404 def rpc_update_hook(session, one, two) update_layout(session) end
update_layout(session)
click to toggle source
Calls superclass method
# File Views/Course/Modify.rb, line 385 def update_layout(session) resps = Persons.responsibles if session.owner.permissions.index('center') resps = Persons.responsibles_sort( Persons.responsibles_raw.select { |p| p.login_name =~ /^#{session.owner.login_name}_/ }) end fields = %w( teacher assistant responsible ) super(session) + reply(:empty_nonlists, fields) + reply(:update, :assistant => [[0, '---']]) + fields.collect { |p| reply(:update, p => resps) }.flatten end
update_students(course)
click to toggle source
# File Views/Course/Modify.rb, line 101 def update_students(course) reply(:empty, :students) + reply(:update, :students => course.list_students) end