gaku_frontend 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/gaku/frontend/base.js.coffee +95 -22
- data/app/assets/javascripts/gaku/frontend/class_groups.js.coffee +2 -0
- data/app/assets/javascripts/gaku/frontend/courses.js.coffee +20 -7
- data/app/assets/javascripts/gaku/frontend/exams.js.coffee +3 -1
- data/app/assets/javascripts/gaku/frontend/guardians.js.coffee +14 -0
- data/app/assets/javascripts/gaku/frontend/students.js.coffee +7 -0
- data/app/assets/javascripts/gaku/frontend/syllabuses.js.coffee +0 -14
- data/app/assets/javascripts/gaku/frontend/teachers.js.coffee +2 -0
- data/app/assets/javascripts/gaku/frontend.js.coffee +8 -1
- data/app/assets/stylesheets/gaku/bootstrap_and_theme.css.scss +10 -1
- data/app/assets/stylesheets/gaku/frontend.css +1 -1
- data/app/controllers/concerns/picture_controller.rb +29 -0
- data/app/controllers/concerns/poly_controller.rb +49 -0
- data/app/controllers/concerns/polymorphic_resource_concern.rb +5 -5
- data/app/controllers/concerns/student_chooser_controller.rb +1 -1
- data/app/controllers/gaku/addresses_controller.rb +12 -4
- data/app/controllers/gaku/attachments_controller.rb +17 -25
- data/app/controllers/gaku/class_groups/enrollments_controller.rb +30 -0
- data/app/controllers/gaku/class_groups/semester_attendances_controller.rb +53 -0
- data/app/controllers/gaku/class_groups/student_reviews_controller.rb +60 -0
- data/app/controllers/gaku/class_groups_controller.rb +20 -12
- data/app/controllers/gaku/contacts_controller.rb +10 -5
- data/app/controllers/gaku/course_groups/course_group_enrollments_controller.rb +10 -1
- data/app/controllers/gaku/course_groups_controller.rb +1 -2
- data/app/controllers/gaku/courses/exams_controller.rb +18 -10
- data/app/controllers/gaku/courses_controller.rb +25 -10
- data/app/controllers/gaku/devise/passwords_controller.rb +1 -1
- data/app/controllers/gaku/devise/registrations_controller.rb +1 -1
- data/app/controllers/gaku/devise/sessions_controller.rb +4 -2
- data/app/controllers/gaku/enrollments_controller.rb +130 -0
- data/app/controllers/gaku/exam_portion_scores_controller.rb +29 -6
- data/app/controllers/gaku/exams/exam_portions_controller.rb +11 -3
- data/app/controllers/gaku/exams/exam_sessions_controller.rb +58 -0
- data/app/controllers/gaku/exams_controller.rb +19 -45
- data/app/controllers/gaku/extracurricular_activities_controller.rb +6 -2
- data/app/controllers/gaku/gaku_controller.rb +11 -0
- data/app/controllers/gaku/grading_method_connectors_controller.rb +109 -0
- data/app/controllers/gaku/{students/guardians_controller.rb → guardians_controller.rb} +11 -15
- data/app/controllers/gaku/notes_controller.rb +6 -1
- data/app/controllers/gaku/realtime_controller.rb +6 -7
- data/app/controllers/gaku/semester_connectors_controller.rb +66 -0
- data/app/controllers/gaku/student_selection_controller.rb +58 -0
- data/app/controllers/gaku/students/badges_controller.rb +2 -2
- data/app/controllers/gaku/students/class_group_enrollments_controller.rb +24 -16
- data/app/controllers/gaku/students/course_enrollments_controller.rb +21 -19
- data/app/controllers/gaku/students/external_school_records_controller.rb +5 -12
- data/app/controllers/gaku/students/extracurricular_activity_enrollments_controller.rb +53 -0
- data/app/controllers/gaku/students/simple_grades_controller.rb +1 -1
- data/app/controllers/gaku/students_controller.rb +31 -47
- data/app/controllers/gaku/syllabuses/exam_syllabuses_controller.rb +6 -1
- data/app/controllers/gaku/syllabuses/exams_controller.rb +3 -2
- data/app/controllers/gaku/syllabuses_controller.rb +2 -4
- data/app/controllers/gaku/teachers_controller.rb +7 -4
- data/app/helpers/gaku/autocomplete_helper.rb +1 -1
- data/app/helpers/gaku/exam_helper.rb +1 -1
- data/app/helpers/gaku/frontend_helper.rb +23 -7
- data/app/helpers/gaku/person_helper.rb +7 -8
- data/app/helpers/gaku/shared_helper.rb +2 -6
- data/app/helpers/gaku/students_helper.rb +4 -6
- data/app/overrides/frontend_menu.rb +6 -6
- data/app/views/gaku/addresses/_addresses.html.slim +3 -2
- data/app/views/gaku/addresses/_fields.html.slim +3 -4
- data/app/views/gaku/addresses/_form_fields.html.slim +5 -7
- data/app/views/gaku/addresses/_primary_field.html.slim +3 -10
- data/app/views/gaku/addresses/create.js.erb +2 -1
- data/app/views/gaku/addresses/destroy.js.erb +2 -1
- data/app/views/gaku/addresses/index.js.erb +1 -0
- data/app/views/gaku/addresses/show/_address.html.slim +9 -0
- data/app/views/gaku/addresses/show/_addresses.html.slim +19 -0
- data/app/views/gaku/addresses/soft_delete.js.erb +2 -1
- data/app/views/gaku/attachments/_attachment.html.slim +2 -0
- data/app/views/gaku/attachments/_attachments.html.slim +20 -0
- data/app/views/gaku/attachments/_form.html.slim +3 -0
- data/app/views/gaku/{exams/exam_portions/attachments → attachments}/_form_fields.html.slim +0 -0
- data/app/views/gaku/attachments/_modal.html.slim +4 -0
- data/app/views/gaku/attachments/_table_fields.html.slim +9 -0
- data/app/views/gaku/attachments/create.js.erb +8 -0
- data/app/views/gaku/attachments/edit.js.erb +3 -3
- data/app/views/gaku/attachments/new.js.erb +3 -1
- data/app/views/gaku/attachments/update.js.erb +5 -0
- data/app/views/gaku/class_groups/_edit_form.html.slim +9 -0
- data/app/views/gaku/class_groups/edit.html.slim +14 -12
- data/app/views/gaku/class_groups/edit.js.erb +1 -0
- data/app/views/gaku/class_groups/enrollments/_enrollment.html.slim +2 -0
- data/app/views/gaku/class_groups/enrollments/_enrollments.html.slim +21 -0
- data/app/views/gaku/class_groups/enrollments/_form.html.slim +4 -0
- data/app/views/gaku/class_groups/enrollments/_form_fields.html.slim +3 -0
- data/app/views/gaku/class_groups/enrollments/_table_fields.html.slim +5 -0
- data/app/views/gaku/class_groups/enrollments/create.js.erb +11 -0
- data/app/views/gaku/class_groups/enrollments/create_from_selection.js.erb +7 -0
- data/app/views/gaku/class_groups/enrollments/destroy.js.erb +9 -0
- data/app/views/gaku/class_groups/enrollments/index.js.erb +2 -0
- data/app/views/gaku/class_groups/enrollments/new.js.erb +3 -0
- data/app/views/gaku/class_groups/enrollments/sort.js.erb +3 -0
- data/app/views/gaku/class_groups/enrollments/student_selection.js.erb +2 -0
- data/app/views/gaku/class_groups/semester_attendances/_semester_attendances.html.slim +27 -0
- data/app/views/gaku/class_groups/semester_attendances/index.js.erb +1 -0
- data/app/views/gaku/class_groups/student_reviews/_edit_modal.html.slim +4 -0
- data/app/views/gaku/class_groups/student_reviews/_form_fields.html.slim +3 -0
- data/app/views/gaku/class_groups/student_reviews/_new_modal.html.slim +4 -0
- data/app/views/gaku/class_groups/student_reviews/_show_modal.html.slim +11 -0
- data/app/views/gaku/class_groups/student_reviews/create.js.erb +2 -0
- data/app/views/gaku/class_groups/student_reviews/destroy.js.erb +2 -0
- data/app/views/gaku/class_groups/student_reviews/edit.js.erb +5 -0
- data/app/views/gaku/class_groups/student_reviews/index.js.erb +8 -0
- data/app/views/gaku/class_groups/student_reviews/update.js.erb +2 -0
- data/app/views/gaku/{students/guardians/destroy.js.erb → class_groups/update.js.erb} +0 -0
- data/app/views/gaku/contacts/_contacts.html.slim +2 -2
- data/app/views/gaku/contacts/_fields.html.slim +3 -5
- data/app/views/gaku/contacts/_primary_field.html.slim +3 -11
- data/app/views/gaku/contacts/create.js.erb +2 -1
- data/app/views/gaku/contacts/destroy.js.erb +1 -0
- data/app/views/gaku/contacts/index.js.erb +2 -0
- data/app/views/gaku/contacts/show/_contact.html.slim +7 -0
- data/app/views/gaku/contacts/show/_contacts.html.slim +15 -0
- data/app/views/gaku/contacts/soft_delete.js.erb +1 -1
- data/app/views/gaku/course_groups/_edit_form.html.slim +9 -0
- data/app/views/gaku/course_groups/course_group_enrollments/_courses.html.slim +21 -20
- data/app/views/gaku/course_groups/course_group_enrollments/create.js.erb +1 -0
- data/app/views/gaku/course_groups/course_group_enrollments/destroy.js.erb +1 -0
- data/app/views/gaku/course_groups/course_group_enrollments/index.js.erb +1 -0
- data/app/views/gaku/course_groups/course_group_enrollments/new.js.erb +1 -1
- data/app/views/gaku/course_groups/edit.html.slim +13 -17
- data/app/views/gaku/course_groups/edit.js.erb +1 -0
- data/app/views/gaku/{students/guardians/recovery.js.erb → course_groups/update.js.erb} +0 -0
- data/app/views/gaku/courses/_courses.html.slim +1 -1
- data/app/views/gaku/courses/_edit_form.html.slim +9 -0
- data/app/views/gaku/courses/edit.html.slim +23 -12
- data/app/views/gaku/courses/edit.js.erb +1 -0
- data/app/views/gaku/courses/exams/_grading_table_head.html.slim +5 -2
- data/app/views/gaku/courses/exams/_grading_table_student_field.html.slim +5 -1
- data/app/views/gaku/courses/exams/index.js.erb +1 -0
- data/app/views/gaku/courses/update.js.erb +1 -0
- data/app/views/gaku/enrollments/_enrollment.html.slim +2 -0
- data/app/views/gaku/enrollments/_enrollments.html.slim +19 -0
- data/app/views/gaku/enrollments/_form.html.slim +3 -0
- data/app/views/gaku/enrollments/_form_fields.html.slim +3 -0
- data/app/views/gaku/enrollments/_table_fields.html.slim +3 -0
- data/app/views/gaku/enrollments/create.js.erb +6 -0
- data/app/views/gaku/enrollments/create_from_selection.js.erb +7 -0
- data/app/views/gaku/enrollments/destroy.js.erb +4 -0
- data/app/views/gaku/enrollments/index.js.erb +1 -0
- data/app/views/gaku/enrollments/new.js.erb +3 -0
- data/app/views/gaku/enrollments/student_selection.js.erb +2 -0
- data/app/views/gaku/exams/_edit_form.html.slim +9 -0
- data/app/views/gaku/exams/_exams.html.slim +21 -0
- data/app/views/gaku/exams/_tabs.html.slim +5 -0
- data/app/views/gaku/exams/create.js.erb +1 -0
- data/app/views/gaku/exams/edit.html.slim +22 -12
- data/app/views/gaku/exams/edit.js.erb +1 -0
- data/app/views/gaku/exams/exam_portions/_edit_form.html.slim +14 -0
- data/app/views/gaku/exams/exam_portions/_exam_portion_menu_link.html.slim +1 -0
- data/app/views/gaku/exams/exam_portions/_exam_portions.html.slim +2 -5
- data/app/views/gaku/exams/exam_portions/_table_fields.slim +3 -7
- data/app/views/gaku/exams/exam_portions/_tabs.html.slim +1 -1
- data/app/views/gaku/exams/exam_portions/create.js.erb +4 -0
- data/app/views/gaku/exams/exam_portions/destroy.js.erb +2 -0
- data/app/views/gaku/exams/exam_portions/edit.html.slim +1 -16
- data/app/views/gaku/exams/exam_portions/edit.js.erb +1 -0
- data/app/views/gaku/exams/exam_portions/index.js.erb +1 -0
- data/app/views/gaku/exams/exam_portions/update.js.erb +2 -0
- data/app/views/gaku/exams/exam_sessions/_exam_session.html.slim +2 -0
- data/app/views/gaku/exams/exam_sessions/_exam_sessions.html.slim +20 -0
- data/app/views/gaku/exams/exam_sessions/_form.html.slim +3 -0
- data/app/views/gaku/exams/exam_sessions/_form_fields.html.slim +10 -0
- data/app/views/gaku/exams/exam_sessions/_students.html.slim +1 -0
- data/app/views/gaku/exams/exam_sessions/_table_fields.html.slim +6 -0
- data/app/views/gaku/exams/exam_sessions/_tabs.html.slim +10 -0
- data/app/views/gaku/exams/exam_sessions/create.js.erb +7 -0
- data/app/views/gaku/exams/{exam_portions/attachments/create.js.erb → exam_sessions/destroy.js.erb} +0 -0
- data/app/views/gaku/exams/exam_sessions/edit.html.slim +16 -0
- data/app/views/gaku/exams/exam_sessions/new.js.erb +4 -0
- data/app/views/gaku/exams/exam_sessions/update.js.erb +0 -0
- data/app/views/gaku/exams/export.xls.rb +9 -10
- data/app/views/gaku/exams/index.html.slim +18 -21
- data/app/views/gaku/extracurricular_activities/_edit_form.html.slim +9 -0
- data/app/views/gaku/extracurricular_activities/edit.html.slim +12 -12
- data/app/views/gaku/extracurricular_activities/edit.js.erb +1 -0
- data/app/views/gaku/extracurricular_activities/update.js.erb +1 -0
- data/app/views/gaku/grading_method_connectors/_form.html.slim +3 -0
- data/app/views/gaku/grading_method_connectors/_form_fields.html.slim +1 -0
- data/app/views/gaku/grading_method_connectors/_grading_method_connector.html.slim +2 -0
- data/app/views/gaku/grading_method_connectors/_grading_method_connectors.html.slim +23 -0
- data/app/views/gaku/grading_method_connectors/_set_form.html.slim +6 -0
- data/app/views/gaku/grading_method_connectors/_table_fields.html.slim +4 -0
- data/app/views/gaku/grading_method_connectors/add_set.js.erb +12 -0
- data/app/views/gaku/grading_method_connectors/create.js.erb +10 -0
- data/app/views/gaku/grading_method_connectors/destroy.js.erb +5 -0
- data/app/views/gaku/grading_method_connectors/index.js.erb +1 -0
- data/app/views/gaku/grading_method_connectors/new.js.erb +7 -0
- data/app/views/gaku/grading_method_connectors/new_set.js.erb +6 -0
- data/app/views/gaku/{students/guardians → guardians}/_delete_modal.html.slim +0 -1
- data/app/views/gaku/guardians/_edit_form.html.slim +10 -0
- data/app/views/gaku/{students/guardians → guardians}/_form.html.slim +1 -1
- data/app/views/gaku/{students/guardians → guardians}/_form_fields.html.slim +0 -0
- data/app/views/gaku/guardians/_guardian.html.slim +6 -0
- data/app/views/gaku/{students/guardians → guardians}/_guardians.html.slim +3 -6
- data/app/views/gaku/{students/guardians → guardians}/create.js.erb +1 -1
- data/app/views/gaku/guardians/destroy.js.erb +2 -0
- data/app/views/gaku/guardians/edit.html.slim +32 -0
- data/app/views/gaku/guardians/edit.js.erb +1 -0
- data/app/views/gaku/guardians/index.js.erb +1 -0
- data/app/views/gaku/{students/guardians → guardians}/new.js.erb +0 -0
- data/app/views/gaku/guardians/recovery.js.erb +1 -0
- data/app/views/gaku/notes/_buttons.html.slim +4 -8
- data/app/views/gaku/notes/_notes.html.slim +3 -5
- data/app/views/gaku/notes/create.js.erb +3 -1
- data/app/views/gaku/notes/destroy.js.erb +2 -1
- data/app/views/gaku/notes/index.js.erb +1 -0
- data/app/views/gaku/notes/show/_notes.html.slim +17 -0
- data/app/views/gaku/semester_connectors/_form.html.slim +4 -0
- data/app/views/gaku/{courses/semester_courses → semester_connectors}/_form_fields.html.slim +2 -2
- data/app/views/gaku/semester_connectors/_modal.html.slim +4 -0
- data/app/views/gaku/semester_connectors/_semester_connector.html.slim +2 -0
- data/app/views/gaku/semester_connectors/_semester_connectors.html.slim +17 -0
- data/app/views/gaku/semester_connectors/_table_fields.html.slim +4 -0
- data/app/views/gaku/semester_connectors/create.js.erb +8 -0
- data/app/views/gaku/semester_connectors/destroy.js.erb +4 -0
- data/app/views/gaku/semester_connectors/edit.js.erb +3 -0
- data/app/views/gaku/semester_connectors/index.js.erb +1 -0
- data/app/views/gaku/semester_connectors/new.js.erb +4 -0
- data/app/views/gaku/semester_connectors/update.js.erb +3 -0
- data/app/views/gaku/shared/_ajax_picture.html.slim +8 -0
- data/app/views/gaku/shared/_ajax_upload_picture.html.slim +14 -0
- data/app/views/gaku/shared/_delete_modal_without_soft.html.slim +11 -0
- data/app/views/gaku/shared/fields/_attachment_fields.html.slim +4 -5
- data/app/views/gaku/shared/fields/_exam_portion_fields.html.slim +1 -1
- data/app/views/gaku/shared/js/remove_picture.js.erb +3 -0
- data/app/views/gaku/shared/js/set_picture.js.erb +3 -0
- data/app/views/gaku/shared/student_selection/_chooser.html.slim +16 -0
- data/app/views/gaku/shared/student_selection/_modal.html.slim +3 -0
- data/app/views/gaku/states/_no_states_select.html.slim +1 -1
- data/app/views/gaku/states/_states_select.html.slim +1 -1
- data/app/views/gaku/student_selection/_selected_student.html.slim +4 -0
- data/app/views/gaku/student_selection/add.js.erb +3 -0
- data/app/views/gaku/student_selection/clear.js.erb +2 -0
- data/app/views/gaku/student_selection/collection.js.erb +0 -0
- data/app/views/gaku/student_selection/index.js.erb +10 -0
- data/app/views/gaku/student_selection/remove.js.erb +8 -0
- data/app/views/gaku/students/_chooser_widget.html.slim +6 -2
- data/app/views/gaku/students/{_personal.html.slim → _edit_form.html.slim} +6 -0
- data/app/views/gaku/students/_form_fields.html.slim +4 -7
- data/app/views/gaku/students/_student.html.slim +1 -2
- data/app/views/gaku/students/_student_unit.html.slim +0 -1
- data/app/views/gaku/students/_students.html.slim +5 -3
- data/app/views/gaku/students/_table_fields.html.slim +1 -1
- data/app/views/gaku/students/badges/_badges.html.slim +20 -2
- data/app/views/gaku/students/badges/_edit.html.slim +9 -8
- data/app/views/gaku/students/badges/create.js.erb +2 -7
- data/app/views/gaku/students/badges/destroy.js.erb +2 -4
- data/app/views/gaku/students/badges/edit.js.erb +2 -1
- data/app/views/gaku/students/badges/index.js.erb +1 -3
- data/app/views/gaku/students/badges/new.js.erb +1 -1
- data/app/views/gaku/students/badges/update.js.erb +3 -5
- data/app/views/gaku/students/chosen.js.erb +1 -3
- data/app/views/gaku/students/class_group_enrollments/_class_group_enrollment.html.slim +5 -0
- data/app/views/gaku/students/class_group_enrollments/_class_group_enrollments.html.slim +19 -0
- data/app/views/gaku/students/class_group_enrollments/_form.html.slim +4 -0
- data/app/views/gaku/students/class_group_enrollments/create.js.erb +10 -8
- data/app/views/gaku/students/class_group_enrollments/destroy.js.erb +3 -0
- data/app/views/gaku/students/class_group_enrollments/index.js.erb +1 -0
- data/app/views/gaku/students/class_group_enrollments/new.js.erb +3 -2
- data/app/views/gaku/students/course_enrollments/_course_enrollment.html.slim +3 -4
- data/app/views/gaku/students/course_enrollments/_course_enrollments.html.slim +3 -3
- data/app/views/gaku/students/course_enrollments/_form.html.slim +3 -4
- data/app/views/gaku/students/course_enrollments/create.js.erb +5 -5
- data/app/views/gaku/students/course_enrollments/destroy.js.erb +1 -1
- data/app/views/gaku/students/course_enrollments/index.js.erb +1 -0
- data/app/views/gaku/students/edit.html.slim +65 -35
- data/app/views/gaku/students/edit.js.erb +1 -0
- data/app/views/gaku/students/external_school_records/_external_school_record.html.slim +1 -1
- data/app/views/gaku/students/external_school_records/_external_school_records.html.slim +2 -2
- data/app/views/gaku/students/external_school_records/_fields.html.slim +3 -4
- data/app/views/gaku/students/external_school_records/_form_fields.html.slim +1 -1
- data/app/views/gaku/students/external_school_records/create.js.erb +3 -2
- data/app/views/gaku/students/external_school_records/destroy.js.erb +2 -1
- data/app/views/gaku/students/external_school_records/index.js.erb +1 -0
- data/app/views/gaku/students/external_school_records/update.js.erb +1 -1
- data/app/views/gaku/students/extracurricular_activity_enrollments/_extracurricular_activity_enrollment.html.slim +3 -0
- data/app/views/gaku/students/extracurricular_activity_enrollments/_extracurricular_activity_enrollments.html.slim +17 -0
- data/app/views/gaku/students/extracurricular_activity_enrollments/_form.html.slim +3 -0
- data/app/views/gaku/students/extracurricular_activity_enrollments/create.js.erb +9 -0
- data/app/views/gaku/students/extracurricular_activity_enrollments/destroy.js.erb +3 -0
- data/app/views/gaku/students/extracurricular_activity_enrollments/index.js.erb +1 -0
- data/app/views/gaku/students/extracurricular_activity_enrollments/new.js.erb +3 -0
- data/app/views/gaku/students/index.html.slim +0 -1
- data/app/views/gaku/students/simple_grades/_edit.html.slim +6 -8
- data/app/views/gaku/students/simple_grades/_form_fields.html.slim +7 -3
- data/app/views/gaku/students/simple_grades/_simple_grades.html.slim +21 -2
- data/app/views/gaku/students/simple_grades/create.js.erb +1 -1
- data/app/views/gaku/students/simple_grades/destroy.js.erb +1 -2
- data/app/views/gaku/students/simple_grades/edit.js.erb +5 -3
- data/app/views/gaku/students/simple_grades/index.js.erb +1 -5
- data/app/views/gaku/students/simple_grades/update.js.erb +2 -3
- data/app/views/gaku/students/student_specialties/_edit.html.slim +5 -7
- data/app/views/gaku/students/student_specialties/_student_specialties.html.slim +18 -2
- data/app/views/gaku/students/student_specialties/create.js.erb +3 -3
- data/app/views/gaku/students/student_specialties/destroy.js.erb +1 -1
- data/app/views/gaku/students/student_specialties/edit.js.erb +3 -2
- data/app/views/gaku/students/student_specialties/index.js.erb +1 -5
- data/app/views/gaku/students/student_specialties/update.js.erb +2 -3
- data/app/views/gaku/syllabuses/_edit_form.html.slim +9 -0
- data/app/views/gaku/syllabuses/edit.html.slim +12 -12
- data/app/views/gaku/syllabuses/edit.js.erb +1 -0
- data/app/views/gaku/syllabuses/{exams/_select_form.html.slim → exam_syllabuses/_form.html.slim} +1 -1
- data/app/views/gaku/syllabuses/exam_syllabuses/create.js.erb +3 -3
- data/app/views/gaku/syllabuses/exam_syllabuses/destroy.js.erb +3 -2
- data/app/views/gaku/syllabuses/exam_syllabuses/new.js.erb +8 -0
- data/app/views/gaku/syllabuses/exams/_exams.html.slim +29 -13
- data/app/views/gaku/syllabuses/exams/destroy.js.erb +2 -2
- data/app/views/gaku/syllabuses/exams/index.js.erb +1 -0
- data/app/views/gaku/syllabuses/exams/new.js.erb +5 -0
- data/app/views/gaku/syllabuses/update.js.erb +1 -0
- data/app/views/gaku/teachers/_edit_form.html.slim +9 -0
- data/app/views/gaku/teachers/_fields.html.slim +5 -1
- data/app/views/gaku/teachers/_teacher.html.slim +1 -1
- data/app/views/gaku/teachers/_teachers.html.slim +1 -1
- data/app/views/gaku/teachers/edit.html.slim +22 -14
- data/app/views/gaku/teachers/edit.js.erb +1 -0
- data/app/views/gaku/teachers/show.html.slim +6 -8
- data/config/routes.rb +71 -37
- data/lib/gaku/app_responder.rb +1 -1
- data/lib/gaku/frontend/engine.rb +2 -2
- data/lib/gaku/frontend.rb +4 -1
- data/lib/gaku_frontend.rb +1 -1
- data/lib/tasks/admin_user.rake +2 -1
- metadata +631 -519
- data/app/controllers/concerns/enrollments_controller.rb +0 -83
- data/app/controllers/gaku/class_group_enrollments_controller.rb +0 -15
- data/app/controllers/gaku/class_groups/courses_controller.rb +0 -50
- data/app/controllers/gaku/class_groups/semester_class_groups_controller.rb +0 -63
- data/app/controllers/gaku/class_groups/students_controller.rb +0 -37
- data/app/controllers/gaku/course_enrollments_controller.rb +0 -10
- data/app/controllers/gaku/courses/enrollments_controller.rb +0 -55
- data/app/controllers/gaku/courses/semester_courses_controller.rb +0 -64
- data/app/controllers/gaku/exams/exam_portions/attachments_controller.rb +0 -46
- data/app/controllers/gaku/extracurricular_activities/students_controller.rb +0 -21
- data/app/controllers/gaku/extracurricular_activity_enrollments_controller.rb +0 -16
- data/app/views/gaku/class_groups/_student_chooser_form.html.slim +0 -4
- data/app/views/gaku/class_groups/_tabs.html.slim +0 -41
- data/app/views/gaku/class_groups/courses/_course.html.slim +0 -4
- data/app/views/gaku/class_groups/courses/_courses.html.slim +0 -14
- data/app/views/gaku/class_groups/courses/_form.html.slim +0 -5
- data/app/views/gaku/class_groups/courses/create.js.erb +0 -7
- data/app/views/gaku/class_groups/courses/destroy.js.erb +0 -2
- data/app/views/gaku/class_groups/courses/new.js.erb +0 -3
- data/app/views/gaku/class_groups/semester_class_groups/_fields.html.slim +0 -4
- data/app/views/gaku/class_groups/semester_class_groups/_form.html.slim +0 -4
- data/app/views/gaku/class_groups/semester_class_groups/_form_fields.html.slim +0 -3
- data/app/views/gaku/class_groups/semester_class_groups/_modal.html.slim +0 -5
- data/app/views/gaku/class_groups/semester_class_groups/_semester.html.slim +0 -3
- data/app/views/gaku/class_groups/semester_class_groups/_semester_modal.html.slim +0 -4
- data/app/views/gaku/class_groups/semester_class_groups/_semesters.html.slim +0 -13
- data/app/views/gaku/class_groups/semester_class_groups/create.js.erb +0 -8
- data/app/views/gaku/class_groups/semester_class_groups/destroy.js.erb +0 -2
- data/app/views/gaku/class_groups/semester_class_groups/edit.js.erb +0 -3
- data/app/views/gaku/class_groups/semester_class_groups/new.js.erb +0 -3
- data/app/views/gaku/class_groups/semester_class_groups/update.js.erb +0 -3
- data/app/views/gaku/class_groups/student_chooser.js.erb +0 -9
- data/app/views/gaku/class_groups/students/_student.html.slim +0 -5
- data/app/views/gaku/class_groups/students/_students.html.slim +0 -14
- data/app/views/gaku/class_groups/students/destroy.js.erb +0 -2
- data/app/views/gaku/class_groups/students/enroll_students.js.erb +0 -16
- data/app/views/gaku/class_groups/students/new.js.erb +0 -3
- data/app/views/gaku/class_groups/students/without_semester.js.erb +0 -2
- data/app/views/gaku/courses/_student_chooser_form.html.slim +0 -4
- data/app/views/gaku/courses/_tabs.html.slim +0 -26
- data/app/views/gaku/courses/enrollments/_enrolled.html.slim +0 -7
- data/app/views/gaku/courses/enrollments/_enrollments.html.slim +0 -27
- data/app/views/gaku/courses/enrollments/_errors_modal.html.slim +0 -11
- data/app/views/gaku/courses/enrollments/class_groups/_form.html.slim +0 -3
- data/app/views/gaku/courses/enrollments/class_groups/enroll.js.erb +0 -16
- data/app/views/gaku/courses/enrollments/class_groups/new.js.erb +0 -4
- data/app/views/gaku/courses/enrollments/error.js.erb +0 -2
- data/app/views/gaku/courses/enrollments/students/enroll_students.js.erb +0 -11
- data/app/views/gaku/courses/semester_courses/_fields.html.slim +0 -4
- data/app/views/gaku/courses/semester_courses/_form.html.slim +0 -4
- data/app/views/gaku/courses/semester_courses/_modal.html.slim +0 -4
- data/app/views/gaku/courses/semester_courses/_semester_course.html.slim +0 -3
- data/app/views/gaku/courses/semester_courses/_semester_courses.html.slim +0 -16
- data/app/views/gaku/courses/semester_courses/create.js.erb +0 -6
- data/app/views/gaku/courses/semester_courses/destroy.js.erb +0 -3
- data/app/views/gaku/courses/semester_courses/edit.js.erb +0 -3
- data/app/views/gaku/courses/semester_courses/new.js.erb +0 -3
- data/app/views/gaku/courses/semester_courses/update.js.erb +0 -3
- data/app/views/gaku/courses/student_chooser.js.erb +0 -7
- data/app/views/gaku/exams/exam_portions/attachments/_attachment.html.slim +0 -2
- data/app/views/gaku/exams/exam_portions/attachments/_attachments.html.slim +0 -20
- data/app/views/gaku/exams/exam_portions/attachments/_form.html.slim +0 -3
- data/app/views/gaku/exams/exam_portions/attachments/_modal.html.slim +0 -4
- data/app/views/gaku/exams/exam_portions/attachments/new.js.erb +0 -3
- data/app/views/gaku/extracurricular_activities/_student_chooser_form.html.slim +0 -4
- data/app/views/gaku/extracurricular_activities/_tabs.html.slim +0 -15
- data/app/views/gaku/extracurricular_activities/student_chooser.js.erb +0 -9
- data/app/views/gaku/extracurricular_activities/students/_student.html.slim +0 -5
- data/app/views/gaku/extracurricular_activities/students/_students.html.slim +0 -16
- data/app/views/gaku/extracurricular_activities/students/destroy.js.erb +0 -3
- data/app/views/gaku/extracurricular_activities/students/enroll_students.js.erb +0 -11
- data/app/views/gaku/shared/_external_school_record.html.slim +0 -36
- data/app/views/gaku/shared/_picture.html.slim +0 -8
- data/app/views/gaku/shared/_upload_picture.html.slim +0 -7
- data/app/views/gaku/shared/student/_show.html.slim +0 -12
- data/app/views/gaku/students/_academic.html.slim +0 -18
- data/app/views/gaku/students/_student_chooser_form.html.slim +0 -16
- data/app/views/gaku/students/_tabs.html.slim +0 -48
- data/app/views/gaku/students/_tabs_academic.html.slim +0 -40
- data/app/views/gaku/students/_tabs_personal.html.slim +0 -27
- data/app/views/gaku/students/badges/_badge_type.html.slim +0 -5
- data/app/views/gaku/students/badges/_badges_tab.html.slim +0 -8
- data/app/views/gaku/students/badges/_index.html.slim +0 -20
- data/app/views/gaku/students/badges/_index_modal.html.slim +0 -4
- data/app/views/gaku/students/class_group_enrollments/_new_modal.html.slim +0 -28
- data/app/views/gaku/students/course_enrollments/_errors_modal.html.slim +0 -11
- data/app/views/gaku/students/course_enrollments/error.js.erb +0 -2
- data/app/views/gaku/students/guardians/_guardian.html.slim +0 -12
- data/app/views/gaku/students/guardians/_picture.html.slim +0 -8
- data/app/views/gaku/students/guardians/_tabs.html.slim +0 -14
- data/app/views/gaku/students/guardians/_upload_picture.html.slim +0 -7
- data/app/views/gaku/students/guardians/edit.html.slim +0 -21
- data/app/views/gaku/students/guardians/show.html.slim +0 -17
- data/app/views/gaku/students/show.html.slim +0 -24
- data/app/views/gaku/students/simple_grades/_index.html.slim +0 -21
- data/app/views/gaku/students/simple_grades/_index_modal.html.slim +0 -4
- data/app/views/gaku/students/student_specialties/_index.html.slim +0 -18
- data/app/views/gaku/students/student_specialties/_index_modal.html.slim +0 -4
- data/app/views/gaku/syllabuses/_all_exams.html.slim +0 -14
- data/app/views/gaku/syllabuses/_tabs.html.slim +0 -16
- data/app/views/gaku/teachers/_tabs.html.slim +0 -20
- data/config/initializers/client_side_validations.rb +0 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 73bc6e97d11c00ed414ec686da939525a58d98f5
|
4
|
+
data.tar.gz: 899cfd6c2fc074d3410e86c28a8985b3e5b25e39
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9ef87014311ef1dac5419e8e49cc4d9a8c47a5479f3a646a66bf35a7297d61adea9aa1c53daa1058c9f331c87f526b45cb1091214d4d3b3535c0fd93954bcd46
|
7
|
+
data.tar.gz: 9eee7e55e8ad7f41e15ca8dc967e81d81367d13667de22e66fcf892233bee263fbfd57c972ad5482f616ff28d6f95955659184ef189466203666616f14de17f3
|
@@ -3,7 +3,7 @@ window.showNotice = (notice)->
|
|
3
3
|
$(@).html('').show()
|
4
4
|
|
5
5
|
$.fn.enableValidations = ->
|
6
|
-
$(this).
|
6
|
+
$(this).enableClientSideValidations()
|
7
7
|
|
8
8
|
$.fn.withAnimation = ->
|
9
9
|
$(this).animate({height:"toggle", opacity:"toggle"})
|
@@ -29,6 +29,19 @@ $.fn.datepicker_i18n = ->
|
|
29
29
|
|
30
30
|
$.fn.datepicker.defaults.format = "yyyy-mm-dd"
|
31
31
|
|
32
|
+
window.add_sortable = ->
|
33
|
+
fixHelper = (e, ui) ->
|
34
|
+
ui.children().each ->
|
35
|
+
$(@).width $(@).width()
|
36
|
+
ui
|
37
|
+
|
38
|
+
$('.sortable').sortable
|
39
|
+
handle: '.sort-handler'
|
40
|
+
helper: fixHelper
|
41
|
+
axis: 'y'
|
42
|
+
update: ->
|
43
|
+
$.post $(@).data('sort-url'), $(@).sortable('serialize')
|
44
|
+
|
32
45
|
window.load_states = ->
|
33
46
|
countryCode = $("#country_dropdown option:selected").val()
|
34
47
|
if countryCode
|
@@ -59,6 +72,11 @@ class App
|
|
59
72
|
e.preventDefault()
|
60
73
|
$('#delete-modal').modal('show')
|
61
74
|
|
75
|
+
# sorting helper fixixing table row width when drag
|
76
|
+
fixHelper = (e, ui) ->
|
77
|
+
ui.children().each ->
|
78
|
+
$(@).width $(@).width()
|
79
|
+
ui
|
62
80
|
|
63
81
|
$('.sortable').sortable
|
64
82
|
handle: '.sort-handler'
|
@@ -67,11 +85,6 @@ class App
|
|
67
85
|
update: ->
|
68
86
|
$.post $(@).data('sort-url'), $(@).sortable('serialize')
|
69
87
|
|
70
|
-
# sorting
|
71
|
-
fixHelper = (e, ui) ->
|
72
|
-
ui.children().each ->
|
73
|
-
$(@).width $(@).width()
|
74
|
-
ui
|
75
88
|
|
76
89
|
edit: ->
|
77
90
|
@upload_picture()
|
@@ -93,33 +106,93 @@ class App
|
|
93
106
|
$(document).on 'click', '#upload-picture-link', ->
|
94
107
|
$("#upload-picture").toggle()
|
95
108
|
|
109
|
+
upload_picture_ajax: ->
|
110
|
+
$('body').popover
|
111
|
+
selector: '.picture-upload'
|
112
|
+
html: true
|
113
|
+
content: ()->
|
114
|
+
return $('#upload-picture').html()
|
115
|
+
placement: 'bottom'
|
116
|
+
trigger: 'click'
|
117
|
+
|
118
|
+
|
96
119
|
country_dropdown: ->
|
97
120
|
$('body').on 'change', '#country_dropdown', ->
|
98
121
|
window.load_states()
|
99
122
|
|
100
|
-
|
101
123
|
student_chooser: ->
|
124
|
+
$.ajax
|
125
|
+
type: 'get'
|
126
|
+
url: '/student_selection'
|
127
|
+
dataType: 'script'
|
128
|
+
|
129
|
+
$(document).on 'click', '#clear-student-selection', (e)->
|
130
|
+
|
131
|
+
e.preventDefault()
|
132
|
+
|
133
|
+
$.ajax
|
134
|
+
type: 'get'
|
135
|
+
url: '/student_selection/clear'
|
136
|
+
dataType: 'script'
|
137
|
+
|
138
|
+
$(document).on 'click', '.remove-student', ->
|
139
|
+
thisId = $(this).closest('a').attr('id')
|
140
|
+
|
141
|
+
$.ajax
|
142
|
+
type: "POST",
|
143
|
+
url: "/student_selection/remove",
|
144
|
+
data: { id: thisId },
|
145
|
+
dataType: 'script'
|
146
|
+
|
147
|
+
$(document).on 'click', '.check-all', (e)->
|
148
|
+
e.preventDefault()
|
149
|
+
|
150
|
+
$checkboxes = $('.student-check')
|
151
|
+
|
152
|
+
student_ids = []
|
153
|
+
$('#students-index').find('tbody tr').map ->
|
154
|
+
student_ids.push @id.split('-')[1]
|
155
|
+
|
156
|
+
if $('.student-check:checked').length == $('.student-check').length
|
157
|
+
$checkboxes.prop('checked', false)
|
158
|
+
|
159
|
+
$.ajax
|
160
|
+
type: "POST",
|
161
|
+
url: "/student_selection/remove_collection",
|
162
|
+
data: { 'student_ids': student_ids },
|
163
|
+
dataType: 'script'
|
164
|
+
|
165
|
+
else
|
166
|
+
$checkboxes.prop('checked', true)
|
167
|
+
|
168
|
+
$.ajax
|
169
|
+
type: "POST",
|
170
|
+
url: "/student_selection/collection",
|
171
|
+
data: { 'student_ids': student_ids },
|
172
|
+
dataType: 'script'
|
173
|
+
|
102
174
|
$('body').on 'change', 'input.student-check', ->
|
103
175
|
thisCheck = $(this)
|
104
|
-
|
176
|
+
tr_id = $(this).closest('tr').attr('id')
|
177
|
+
parsed_id = tr_id.split('student-')
|
178
|
+
thisId = parsed_id[1]
|
179
|
+
|
105
180
|
|
106
181
|
if thisCheck.is (':checked')
|
107
|
-
surname = $(this).closest('tr').find('td.surname').text()
|
108
|
-
name = $(this).closest('tr').find('td.name').text()
|
109
|
-
$('#students-checked').append("<tr class=" + thisId + "><td>" + surname + "</td><td>" + name + "</td></tr>")
|
110
182
|
$('#selected-students, #enroll-to-class-form, #enroll-to-course-form, #enroll-to-extracurricular-activity-form').append('<input type="hidden" name="selected_students[]" value="' + thisId + '" class="' + thisId + '"/>')
|
111
|
-
|
112
|
-
|
113
|
-
|
183
|
+
|
184
|
+
$.ajax
|
185
|
+
type: "POST",
|
186
|
+
url: "/student_selection/add",
|
187
|
+
data: { id: thisId },
|
188
|
+
dataType: 'script'
|
189
|
+
|
114
190
|
else
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
else
|
121
|
-
chosen_trs = $('#chosen-table').find('tbody tr')
|
122
|
-
$('.chosen-count').html('(' + chosen_trs.length + ')')
|
191
|
+
$.ajax
|
192
|
+
type: "POST",
|
193
|
+
url: "/student_selection/remove",
|
194
|
+
data: { id: thisId },
|
195
|
+
dataType: 'script'
|
123
196
|
|
124
197
|
|
125
198
|
ready = ->
|
@@ -7,15 +7,28 @@ ready = ->
|
|
7
7
|
self.app.student_chooser()
|
8
8
|
|
9
9
|
grading: ->
|
10
|
-
source = new EventSource '/realtime/exam_portion_scores'
|
11
|
-
source.addEventListener 'update.examPortionScore', (event)->
|
12
|
-
console.log event.data
|
13
|
-
json = $.parseJSON(event.data)
|
14
10
|
|
15
|
-
|
16
|
-
input = form.children('input#exam_portion_score_score')
|
11
|
+
socket = io.connect("http://localhost:5001")
|
17
12
|
|
18
|
-
|
13
|
+
socket.on "grading-change", (message) ->
|
14
|
+
exam_id = message.exam_id
|
15
|
+
course_id = message.course_id
|
16
|
+
if message.exam_portion_score
|
17
|
+
exam_portion_score = message.exam_portion_score.exam_portion_score
|
18
|
+
form = $("#edit_exam_portion_score_#{exam_portion_score.id}")
|
19
|
+
input = form.children('input#exam_portion_score_score')
|
20
|
+
input.val("#{exam_portion_score.score}")
|
21
|
+
for grading_method_id, calculation of message.calculations
|
22
|
+
if calculation.student_results
|
23
|
+
console.log('vika me collection')
|
24
|
+
for result in calculation.student_results
|
25
|
+
el = $("#course-#{course_id}-exam-#{exam_id}-student-#{result.id}-grading-method-#{grading_method_id}-score")
|
26
|
+
el.html result.score
|
27
|
+
|
28
|
+
else
|
29
|
+
console.log('vika me single')
|
30
|
+
el = $("#course-#{course_id}-exam-#{exam_id}-student-#{calculation.id}-grading-method-#{grading_method_id}-score")
|
31
|
+
el.html calculation.score
|
19
32
|
|
20
33
|
@app.courses = new CoursesController
|
21
34
|
|
@@ -16,8 +16,10 @@ ready = ->
|
|
16
16
|
# else
|
17
17
|
# $('#exam_weight').attr 'class','span12'
|
18
18
|
# $('.exam_weightformError').remove()
|
19
|
+
edit: ->
|
20
|
+
$('.datetimepicker').datetimepicker()
|
19
21
|
|
20
22
|
@app.exams = new ExamsController
|
21
23
|
|
22
24
|
$(document).ready(ready)
|
23
|
-
$(document).on('page:load', ready)
|
25
|
+
$(document).on('page:load', ready)
|
@@ -15,6 +15,13 @@ ready = ->
|
|
15
15
|
|
16
16
|
edit: ->
|
17
17
|
self.app.country_dropdown()
|
18
|
+
self.app.upload_picture_ajax()
|
19
|
+
|
20
|
+
students = JSON.parse(localStorage['students'])
|
21
|
+
|
22
|
+
students.map (student) ->
|
23
|
+
$('#students-collection').append("<li class=#{student['id']}><a href='#{students_path}/#{student['id']}'>#{student['name']}</a></li>")
|
24
|
+
|
18
25
|
|
19
26
|
$(document).on 'click', '#cancel-student-commute-method-link', (e) ->
|
20
27
|
e.preventDefault()
|
@@ -2,20 +2,6 @@ ready = ->
|
|
2
2
|
|
3
3
|
class SyllabusesController
|
4
4
|
edit: ->
|
5
|
-
$('#syllabus-exams').on "click", '#new-syllabus-exam-link', (event) ->
|
6
|
-
event.preventDefault()
|
7
|
-
#$(@).hide()
|
8
|
-
$('#new-existing-exam').slideUp ->
|
9
|
-
#$('#new-syllabus-exam').slide()
|
10
|
-
$('#new-existing-exam-link').show()
|
11
|
-
|
12
|
-
$('#syllabus-exams').on "click", '#new-existing-exam-link', (event) ->
|
13
|
-
event.preventDefault()
|
14
|
-
$(@).hide()
|
15
|
-
$('#new-syllabus-exam').slideUp ->
|
16
|
-
$('#new-existing-exam').slide()
|
17
|
-
$('#new-syllabus-exam-link').show()
|
18
|
-
|
19
5
|
|
20
6
|
@app.syllabuses = new SyllabusesController
|
21
7
|
|
@@ -1,6 +1,8 @@
|
|
1
1
|
#= require jquery
|
2
2
|
#= require jquery.minicolors
|
3
3
|
|
4
|
+
#= require socket.io
|
5
|
+
|
4
6
|
#= require jquery.ui.autocomplete
|
5
7
|
#= require jquery.ui.draggable
|
6
8
|
#= require jquery.ui.droppable
|
@@ -15,6 +17,10 @@
|
|
15
17
|
#= require bootstrap/tab
|
16
18
|
#= require bootstrap/dropdown
|
17
19
|
#= require bootstrap/modal
|
20
|
+
#= require bootstrap/collapse
|
21
|
+
#= require bootstrap/transition
|
22
|
+
#= require bootstrap/tooltip
|
23
|
+
#= require bootstrap/popover
|
18
24
|
|
19
25
|
#= require nprogress
|
20
26
|
#= require nprogress-turbolinks
|
@@ -22,11 +28,12 @@
|
|
22
28
|
|
23
29
|
#= require bootstrap-datepicker/core
|
24
30
|
#= require bootstrap-datepicker/locales/bootstrap-datepicker.ja
|
25
|
-
|
31
|
+
#= require bootstrap-datetimepicker/bootstrap-datetimepicker
|
26
32
|
#= require underscore
|
27
33
|
#= require moment
|
28
34
|
#= require rails.validations
|
29
35
|
#= require select2
|
36
|
+
#= require jquery.remotipart
|
30
37
|
|
31
38
|
#= require gaku/frontend/slide.js.erb
|
32
39
|
#= require gaku/frontend/base
|
@@ -304,6 +304,10 @@ font-size: 24px;
|
|
304
304
|
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);
|
305
305
|
}
|
306
306
|
|
307
|
+
#user_menu {
|
308
|
+
margin-right: 25px;
|
309
|
+
}
|
310
|
+
|
307
311
|
.navbar .navbar-nav > .active > a {
|
308
312
|
background-color: #f8f8f8;
|
309
313
|
}
|
@@ -570,4 +574,9 @@ font-size: 24px;
|
|
570
574
|
background-repeat: repeat-x;
|
571
575
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0); }
|
572
576
|
}
|
573
|
-
}
|
577
|
+
}
|
578
|
+
|
579
|
+
.modal-backdrop.in {
|
580
|
+
opacity: 0.70;
|
581
|
+
filter: alpha(opacity=70);
|
582
|
+
}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module PictureController
|
2
|
+
|
3
|
+
include Gaku::ClassNameDetector
|
4
|
+
|
5
|
+
def set_picture
|
6
|
+
@resource = set_resource
|
7
|
+
@resource.update params.require(param_name).permit(:picture)
|
8
|
+
flash.now[:notice] = t('notice.picture_update')
|
9
|
+
render 'gaku/shared/js/set_picture'
|
10
|
+
end
|
11
|
+
|
12
|
+
def remove_picture
|
13
|
+
@resource = set_resource
|
14
|
+
@resource.update(picture: nil)
|
15
|
+
flash.now[:notice] = t('notice.picture_remove')
|
16
|
+
render 'gaku/shared/js/remove_picture'
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def set_resource
|
22
|
+
instance_variable_set("@#{class_name_underscored}", class_name.constantize.find(params[:id]))
|
23
|
+
end
|
24
|
+
|
25
|
+
def param_name
|
26
|
+
controller_name.singularize.to_sym
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module PolyController
|
2
|
+
|
3
|
+
private
|
4
|
+
|
5
|
+
def parent_resource
|
6
|
+
nested_resources.last
|
7
|
+
end
|
8
|
+
|
9
|
+
def nested_resources
|
10
|
+
@nested_resources ||= Array.new.tap do |array|
|
11
|
+
nested_resource_params.each do |param, value|
|
12
|
+
array.append find_resource(param, value)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def resource_names
|
18
|
+
Array.new.tap do |a|
|
19
|
+
a.append nested_resource_names
|
20
|
+
a.append polymorphic_resource_name
|
21
|
+
a.prepend namespace if namespaced?
|
22
|
+
end.join('-')
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
def nested_resource_params
|
27
|
+
params.select { |param, _| param =~ /(.+)_id$/i }
|
28
|
+
end
|
29
|
+
|
30
|
+
def namespaced?
|
31
|
+
controller_path.split('/').count == 3
|
32
|
+
end
|
33
|
+
|
34
|
+
def namespace
|
35
|
+
controller_path.split('/')[1]
|
36
|
+
end
|
37
|
+
|
38
|
+
def find_resource(param, value)
|
39
|
+
param.gsub('_id', '').prepend('gaku/').classify.constantize.find(value)
|
40
|
+
end
|
41
|
+
|
42
|
+
def nested_resource_names
|
43
|
+
nested_resource_params.keys.map { |p| p.gsub('_id', '').dasherize }
|
44
|
+
end
|
45
|
+
|
46
|
+
def polymorphic_resource_name
|
47
|
+
controller_name.singularize
|
48
|
+
end
|
49
|
+
end
|
@@ -8,8 +8,8 @@ module PolymorphicResourceConcern
|
|
8
8
|
end
|
9
9
|
|
10
10
|
@nested_resources = nested_resources(klasses)
|
11
|
-
#puts "nested_resources :::::::::::::::::::: #{@nested_resources}"
|
12
|
-
#puts "resource_name:::::::::::::::::::: #{resource_name}"
|
11
|
+
# puts "nested_resources :::::::::::::::::::: #{@nested_resources}"
|
12
|
+
# puts "resource_name:::::::::::::::::::: #{resource_name}"
|
13
13
|
@polymorphic_resource_name = resource_name
|
14
14
|
end
|
15
15
|
|
@@ -18,7 +18,7 @@ module PolymorphicResourceConcern
|
|
18
18
|
last_klass_foreign_key = params[klasses.last.to_s.foreign_key]
|
19
19
|
if klasses.is_a? Array
|
20
20
|
@polymorphic_resource = klasses.last.find(last_klass_foreign_key)
|
21
|
-
klasses.pop #remove @polymorphic_resource resource
|
21
|
+
klasses.pop # remove @polymorphic_resource resource
|
22
22
|
klasses.each do |klass|
|
23
23
|
nested_resources.append klass.find(params[klass.to_s.foreign_key])
|
24
24
|
end
|
@@ -26,7 +26,7 @@ module PolymorphicResourceConcern
|
|
26
26
|
@polymorphic_resource = klasses.find(params[klasses.to_s.foreign_key])
|
27
27
|
end
|
28
28
|
|
29
|
-
#prepend :admin for admin/namespacing
|
29
|
+
# prepend :admin for admin/namespacing
|
30
30
|
nested_resources.prepend(:admin) if @polymorphic_resource.class == Gaku::Campus
|
31
31
|
nested_resources
|
32
32
|
end
|
@@ -45,4 +45,4 @@ module PolymorphicResourceConcern
|
|
45
45
|
resource_name.join '-'
|
46
46
|
end
|
47
47
|
|
48
|
-
end
|
48
|
+
end
|