gaku_core 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/controllers/gaku/core_controller.rb +3 -8
- data/app/decorators/gaku/course_decorator.rb +1 -2
- data/app/decorators/gaku/guardian_decorator.rb +1 -1
- data/app/decorators/gaku/person_decorator.rb +8 -12
- data/app/decorators/gaku/student_decorator.rb +0 -2
- data/app/decorators/gaku/teacher_decorator.rb +1 -1
- data/app/models/concerns/addresses.rb +6 -6
- data/app/models/concerns/contacts.rb +6 -6
- data/app/models/concerns/enrollmentable.rb +9 -0
- data/app/models/concerns/gradable.rb +14 -0
- data/app/models/concerns/notes.rb +1 -2
- data/app/models/concerns/pagination.rb +1 -2
- data/app/models/concerns/person.rb +0 -2
- data/app/models/concerns/picture.rb +1 -3
- data/app/models/concerns/semesterable.rb +12 -0
- data/app/models/concerns/student_reviewable.rb +7 -0
- data/app/models/gaku/ability.rb +2 -4
- data/app/models/gaku/address.rb +11 -10
- data/app/models/gaku/admin_ability.rb +0 -1
- data/app/models/gaku/assignment.rb +0 -2
- data/app/models/gaku/assignment_score.rb +0 -1
- data/app/models/gaku/attachment.rb +1 -4
- data/app/models/gaku/attendance.rb +0 -2
- data/app/models/gaku/attendance_type.rb +0 -2
- data/app/models/gaku/badge.rb +0 -2
- data/app/models/gaku/badge_type.rb +0 -1
- data/app/models/gaku/class_group.rb +13 -13
- data/app/models/gaku/commute_method_type.rb +0 -2
- data/app/models/gaku/contact.rb +6 -36
- data/app/models/gaku/contact_type.rb +0 -2
- data/app/models/gaku/country.rb +0 -3
- data/app/models/gaku/course.rb +11 -25
- data/app/models/gaku/course_group.rb +0 -2
- data/app/models/gaku/course_group_enrollment.rb +3 -4
- data/app/models/gaku/department.rb +0 -2
- data/app/models/gaku/enrollment.rb +85 -0
- data/app/models/gaku/enrollment_status.rb +0 -2
- data/app/models/gaku/exam.rb +17 -22
- data/app/models/gaku/exam_portion.rb +2 -6
- data/app/models/gaku/exam_portion_score.rb +0 -2
- data/app/models/gaku/exam_schedule.rb +0 -1
- data/app/models/gaku/exam_session.rb +14 -0
- data/app/models/gaku/exam_syllabus.rb +2 -6
- data/app/models/gaku/external_school_record.rb +1 -9
- data/app/models/gaku/extracurricular_activity.rb +1 -2
- data/app/models/gaku/faculty.rb +0 -2
- data/app/models/gaku/grading_method.rb +14 -2
- data/app/models/gaku/grading_method_connector.rb +35 -0
- data/app/models/gaku/grading_method_set.rb +6 -4
- data/app/models/gaku/grading_method_set_item.rb +4 -5
- data/app/models/gaku/guardian.rb +1 -3
- data/app/models/gaku/install.rb +0 -2
- data/app/models/gaku/lesson.rb +0 -1
- data/app/models/gaku/lesson_plan.rb +0 -2
- data/app/models/gaku/level.rb +0 -2
- data/app/models/gaku/preset.rb +18 -18
- data/app/models/gaku/program.rb +0 -2
- data/app/models/gaku/program_level.rb +0 -2
- data/app/models/gaku/program_specialty.rb +0 -2
- data/app/models/gaku/program_syllabus.rb +0 -2
- data/app/models/gaku/role.rb +0 -2
- data/app/models/gaku/schedule.rb +0 -1
- data/app/models/gaku/scholarship_status.rb +0 -2
- data/app/models/gaku/school.rb +0 -2
- data/app/models/gaku/school_role.rb +0 -2
- data/app/models/gaku/school_year.rb +4 -2
- data/app/models/gaku/semester.rb +21 -6
- data/app/models/gaku/semester_attendance.rb +14 -0
- data/app/models/gaku/semester_connector.rb +27 -0
- data/app/models/gaku/simple_grade.rb +0 -2
- data/app/models/gaku/simple_grade_type.rb +0 -1
- data/app/models/gaku/specialty.rb +0 -2
- data/app/models/gaku/state.rb +0 -3
- data/app/models/gaku/student.rb +47 -45
- data/app/models/gaku/student_exam_session.rb +11 -0
- data/app/models/gaku/student_guardian.rb +0 -2
- data/app/models/gaku/student_review.rb +11 -0
- data/app/models/gaku/student_review_category.rb +13 -0
- data/app/models/gaku/student_specialty.rb +2 -5
- data/app/models/gaku/syllabus.rb +0 -4
- data/app/models/gaku/teacher.rb +0 -2
- data/app/models/gaku/template.rb +7 -9
- data/app/models/gaku/user.rb +10 -22
- data/app/models/gaku/user_role.rb +0 -2
- data/app/services/gaku/contact_creation.rb +49 -0
- data/app/services/gaku/contact_updation.rb +41 -0
- data/app/services/gaku/student_selection.rb +57 -0
- data/app/services/gaku/user_creator.rb +31 -0
- data/config/initializers/devise.rb +1 -1
- data/config/initializers/redis.rb +5 -0
- data/config/locales/en.yml +79 -15
- data/config/routes.rb +5 -10
- data/db/default/gaku/attendance_types.rb +14 -16
- data/db/default/gaku/commute_method_types.rb +2 -4
- data/db/default/gaku/enrollment_status.rb +3 -3
- data/db/default/gaku/master_school.rb +7 -6
- data/db/default/gaku/presets.rb +6 -9
- data/db/default/gaku/scholarship_statuses.rb +1 -1
- data/db/migrate/20140128141752_change_grading_methods_arguments_field.rb +5 -0
- data/db/migrate/20140213113405_create_grading_method_connectors_table.rb +9 -0
- data/db/migrate/20140304094422_create_gaku_exam_sessions_table.rb +10 -0
- data/db/migrate/20140304101025_create_gaku_student_exam_session_table.rb +8 -0
- data/db/migrate/20140325073941_add_time_format_24_to_presets_table.rb +5 -0
- data/db/migrate/20140408111314_remove_semester_join_tables.rb +6 -0
- data/db/migrate/20140408111358_create_semester_connectors_table.rb +8 -0
- data/db/migrate/20140423093155_create_enrollments_table.rb +11 -0
- data/db/migrate/20140423100114_clean_enrollments_join_models.rb +8 -0
- data/db/migrate/20140429112725_add_counters_to_enrollmentable.rb +11 -0
- data/db/migrate/20140604104210_rename_method_to_grading_method.rb +5 -0
- data/db/migrate/20140604113045_add_default_value_to_curved.rb +5 -0
- data/db/migrate/20140610091053_add_seat_number_to_enrollments.rb +5 -0
- data/db/migrate/20140701104700_change_hstore_to_string_criteria.rb +5 -0
- data/db/migrate/20140715135152_create_semester_attendance_table.rb +16 -0
- data/db/migrate/20140718105226_create_student_review_categories_table.rb +13 -0
- data/db/migrate/20140728121353_create_student_review_table.rb +12 -0
- data/db/seeds.rb +1 -1
- data/lib/gaku/core.rb +2 -1
- data/lib/gaku/core/engine.rb +7 -5
- data/lib/gaku/core/url_helpers.rb +1 -1
- data/lib/gaku/grading/collection/base_method.rb +30 -0
- data/lib/gaku/grading/collection/calculations.rb +36 -0
- data/lib/gaku/grading/collection/interval.rb +55 -0
- data/lib/gaku/grading/collection/ordinal.rb +10 -0
- data/lib/gaku/grading/collection/percentage.rb +10 -0
- data/lib/gaku/grading/collection/result.rb +18 -0
- data/lib/gaku/grading/collection/score.rb +10 -0
- data/lib/gaku/grading/single/base_method.rb +30 -0
- data/lib/gaku/grading/single/calculations.rb +42 -0
- data/lib/gaku/grading/single/interval.rb +7 -0
- data/lib/gaku/grading/single/ordinal.rb +30 -0
- data/lib/gaku/grading/single/pass_fail.rb +2 -0
- data/lib/gaku/grading/single/percentage.rb +26 -0
- data/lib/gaku/grading/single/ratio.rb +2 -0
- data/lib/gaku/grading/single/result.rb +18 -0
- data/lib/gaku/grading/single/score.rb +15 -0
- data/lib/gaku/migrations.rb +1 -1
- data/lib/gaku/streamer/sse.rb +5 -5
- data/lib/gaku/testing/auth_helpers.rb +6 -2
- data/lib/gaku/testing/common_rake.rb +9 -3
- data/lib/gaku/testing/controller_helpers.rb +17 -12
- data/lib/gaku/testing/coverage.rb +1 -1
- data/lib/gaku/testing/deferred_garbage_collection.rb +3 -3
- data/lib/gaku/testing/factories/attachment_factory.rb +0 -1
- data/lib/gaku/testing/factories/attendance_type_factory.rb +1 -1
- data/lib/gaku/testing/factories/class_group_factory.rb +12 -1
- data/lib/gaku/testing/factories/contact_creation_factory.rb +18 -0
- data/lib/gaku/testing/factories/course_enrollment_factory.rb +9 -9
- data/lib/gaku/testing/factories/course_factory.rb +2 -4
- data/lib/gaku/testing/factories/course_group_factory.rb +2 -4
- data/lib/gaku/testing/factories/enrollment_factory.rb +10 -0
- data/lib/gaku/testing/factories/exam_factory.rb +1 -1
- data/lib/gaku/testing/factories/exam_portion_factory.rb +2 -4
- data/lib/gaku/testing/factories/exam_score_factory.rb +1 -1
- data/lib/gaku/testing/factories/exam_session_factory.rb +14 -0
- data/lib/gaku/testing/factories/extracurricular_activity_factory.rb +1 -1
- data/lib/gaku/testing/factories/grading_method_connector_factory.rb +11 -0
- data/lib/gaku/testing/factories/grading_method_factory.rb +3 -2
- data/lib/gaku/testing/factories/guardian_factory.rb +2 -4
- data/lib/gaku/testing/factories/lesson_plan_factory.rb +2 -2
- data/lib/gaku/testing/factories/preset_factory.rb +7 -7
- data/lib/gaku/testing/factories/program_factory.rb +0 -1
- data/lib/gaku/testing/factories/school_factory.rb +3 -3
- data/lib/gaku/testing/factories/semester_attendance_factory.rb +8 -0
- data/lib/gaku/testing/factories/semester_connectors_factory.rb +11 -0
- data/lib/gaku/testing/factories/semester_factory.rb +16 -0
- data/lib/gaku/testing/factories/simple_grade_type_factory.rb +1 -1
- data/lib/gaku/testing/factories/state_factory.rb +2 -1
- data/lib/gaku/testing/factories/student_exam_session_factory.rb +8 -0
- data/lib/gaku/testing/factories/student_factory.rb +15 -5
- data/lib/gaku/testing/factories/student_review_category_factory.rb +7 -0
- data/lib/gaku/testing/factories/student_review_factory.rb +13 -0
- data/lib/gaku/testing/factories/teacher_factory.rb +1 -1
- data/lib/gaku/testing/factories/template_factory.rb +5 -7
- data/lib/gaku/testing/factories/traits.rb +32 -4
- data/lib/gaku/testing/factories/user_factory.rb +0 -1
- data/lib/gaku_core.rb +1 -1
- data/lib/generators/gaku/dummy/dummy_generator.rb +5 -4
- data/lib/generators/gaku/install/install_generator.rb +16 -14
- data/lib/tasks/admin_user.rake +2 -1
- metadata +310 -264
- data/app/models/gaku/class_group_course_enrollment.rb +0 -17
- data/app/models/gaku/class_group_enrollment.rb +0 -31
- data/app/models/gaku/course_enrollment.rb +0 -23
- data/app/models/gaku/disposal.rb +0 -45
- data/app/models/gaku/extracurricular_activity_enrollment.rb +0 -15
- data/app/models/gaku/semester_class_group.rb +0 -21
- data/app/models/gaku/semester_course.rb +0 -21
- data/lib/gaku/grading/calculations.rb +0 -279
- data/lib/gaku/grading/grade.rb +0 -17
- data/lib/gaku/grading/japanese_hs_standard.rb +0 -8
- data/lib/gaku/testing/factories/class_group_course_enrollment_factory.rb +0 -8
- data/lib/gaku/testing/factories/class_group_enrollment_factory.rb +0 -9
- data/lib/gaku/testing/factories/semester_class_group_factory.rb +0 -8
- data/lib/gaku/testing/factories/semester_course.rb +0 -8
@@ -2,18 +2,18 @@ class DeferredGarbageCollection
|
|
2
2
|
|
3
3
|
DEFERRED_GC_THRESHOLD = (ENV['DEFER_GC'] || 10.0).to_f
|
4
4
|
|
5
|
-
|
5
|
+
@last_gc_run = Time.now
|
6
6
|
|
7
7
|
def self.start
|
8
8
|
GC.disable if DEFERRED_GC_THRESHOLD > 0
|
9
9
|
end
|
10
10
|
|
11
11
|
def self.reconsider
|
12
|
-
if DEFERRED_GC_THRESHOLD > 0 && Time.now -
|
12
|
+
if DEFERRED_GC_THRESHOLD > 0 && Time.now - @last_gc_run >= DEFERRED_GC_THRESHOLD
|
13
13
|
GC.enable
|
14
14
|
GC.start
|
15
15
|
GC.disable
|
16
|
-
|
16
|
+
@last_gc_run = Time.now
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
@@ -1,13 +1,24 @@
|
|
1
1
|
FactoryGirl.define do
|
2
2
|
|
3
3
|
factory :class_group, class: Gaku::ClassGroup do
|
4
|
-
name
|
4
|
+
sequence(:name) { |n| "A#{n}" }
|
5
|
+
|
5
6
|
grade 8
|
6
7
|
homeroom '123'
|
7
8
|
|
8
9
|
factory :invalid_class_group do
|
9
10
|
name nil
|
10
11
|
end
|
12
|
+
|
13
|
+
factory :class_group_with_active_semester do
|
14
|
+
ignore do
|
15
|
+
semester { create(:active_semester) }
|
16
|
+
end
|
17
|
+
|
18
|
+
after(:create) do |class_group, evaluator|
|
19
|
+
class_group.semesters << evaluator.semester
|
20
|
+
end
|
21
|
+
end
|
11
22
|
end
|
12
23
|
|
13
24
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
FactoryGirl.define do
|
2
|
+
|
3
|
+
factory :contact_creation, class: Gaku::ContactCreation do
|
4
|
+
data 'gaku@example.com'
|
5
|
+
details 'My email'
|
6
|
+
contact_type
|
7
|
+
|
8
|
+
initialize_with { new(attributes) }
|
9
|
+
|
10
|
+
after(:build) do |contact_creation|
|
11
|
+
if contact_creation.contact.contactable.respond_to?(:contacts)
|
12
|
+
contact_creation.contact.contactable.contacts.reload
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
@@ -1,12 +1,12 @@
|
|
1
|
-
FactoryGirl.define do
|
1
|
+
# FactoryGirl.define do
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
3
|
+
# factory :course_enrollment, class: Gaku::CourseEnrollment do
|
4
|
+
# course
|
5
|
+
# student
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
7
|
+
# factory :invalid_course_enrollment do
|
8
|
+
# course nil
|
9
|
+
# end
|
10
|
+
# end
|
11
11
|
|
12
|
-
end
|
12
|
+
# end
|
@@ -2,14 +2,12 @@ FactoryGirl.define do
|
|
2
2
|
|
3
3
|
factory :exam_portion, class: Gaku::ExamPortion do
|
4
4
|
name 'wow'
|
5
|
-
max_score
|
5
|
+
max_score 100
|
6
6
|
weight 100
|
7
7
|
problem_count 1
|
8
8
|
exam
|
9
9
|
|
10
|
-
factory
|
11
|
-
name ''
|
12
|
-
end
|
10
|
+
factory(:invalid_exam_portion) { name nil }
|
13
11
|
end
|
14
12
|
|
15
13
|
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# add assigments when integrate with GradingMethodConnector
|
2
|
+
%w( exam course ).each do |resource|
|
3
|
+
FactoryGirl.define do
|
4
|
+
|
5
|
+
factory "grading_method_connector_#{resource}", class: Gaku::GradingMethodConnector do
|
6
|
+
grading_method
|
7
|
+
association :gradable, factory: resource
|
8
|
+
end
|
9
|
+
|
10
|
+
end
|
11
|
+
end
|
@@ -1,10 +1,11 @@
|
|
1
1
|
FactoryGirl.define do
|
2
2
|
|
3
3
|
factory :grading_method, class: Gaku::GradingMethod do
|
4
|
-
sequence(:name) { |n
|
5
|
-
method 'Method'
|
4
|
+
sequence(:name) { |n| "Method #{n}" }
|
6
5
|
description 'Grading method description'
|
7
6
|
|
7
|
+
grading_type 'score'
|
8
|
+
|
8
9
|
factory :invalid_grading_method do
|
9
10
|
name nil
|
10
11
|
end
|
@@ -1,13 +1,11 @@
|
|
1
1
|
FactoryGirl.define do
|
2
2
|
|
3
3
|
factory :guardian, class: Gaku::Guardian do
|
4
|
-
|
4
|
+
name { Faker::Name.first_name }
|
5
5
|
surname { Faker::Name.last_name }
|
6
6
|
relationship 'Relationship'
|
7
7
|
|
8
|
-
factory
|
9
|
-
name nil
|
10
|
-
end
|
8
|
+
factory(:invalid_guardian) { name nil }
|
11
9
|
end
|
12
10
|
|
13
11
|
end
|
@@ -5,13 +5,13 @@ FactoryGirl.define do
|
|
5
5
|
names_order '%first %middle %last'
|
6
6
|
active true
|
7
7
|
default true
|
8
|
-
pagination {{ }
|
9
|
-
person {{ }
|
10
|
-
student {{ increment_foreign_id_code: 0 }}
|
11
|
-
address {{ }
|
12
|
-
export_formats {{ }
|
13
|
-
chooser_fields {{ }
|
14
|
-
grading {{ }
|
8
|
+
pagination { {} }
|
9
|
+
person { {} }
|
10
|
+
student { { increment_foreign_id_code: 0 } }
|
11
|
+
address { {} }
|
12
|
+
export_formats { {} }
|
13
|
+
chooser_fields { {} }
|
14
|
+
grading { {} }
|
15
15
|
end
|
16
16
|
|
17
17
|
end
|
@@ -14,14 +14,14 @@ FactoryGirl.define do
|
|
14
14
|
|
15
15
|
factory :school_with_one_contact, parent: :school do
|
16
16
|
after(:create) do |school|
|
17
|
-
create(:
|
17
|
+
create(:contact_creation, contactable: school.campuses.first)
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
21
21
|
factory :school_with_two_contacts, parent: :school do
|
22
22
|
after(:create) do |school|
|
23
|
-
create(:
|
24
|
-
create(:
|
23
|
+
create(:contact_creation, contactable: school.campuses.first)
|
24
|
+
create(:contact_creation, contactable: school.campuses.first)
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# add assigments when integrate with GradingMethodConnector
|
2
|
+
%w( class_group course ).each do |resource|
|
3
|
+
FactoryGirl.define do
|
4
|
+
|
5
|
+
factory "semester_connector_#{resource}", class: Gaku::SemesterConnector do
|
6
|
+
semester
|
7
|
+
association :semesterable, factory: resource
|
8
|
+
end
|
9
|
+
|
10
|
+
end
|
11
|
+
end
|
@@ -8,6 +8,22 @@ FactoryGirl.define do
|
|
8
8
|
starting { Date.parse('2014-04-08') }
|
9
9
|
ending { Date.parse('2013-04-08') }
|
10
10
|
end
|
11
|
+
|
12
|
+
factory :active_semester do
|
13
|
+
starting { Date.today - 1.day }
|
14
|
+
ending { Date.today + 1.day }
|
15
|
+
end
|
16
|
+
|
17
|
+
factory :upcomming_semester do
|
18
|
+
starting { Date.today + 1.day }
|
19
|
+
ending { Date.today + 2.day }
|
20
|
+
end
|
21
|
+
|
22
|
+
factory :ended_semester do
|
23
|
+
starting { Date.today - 2.day }
|
24
|
+
ending { Date.today - 1.day }
|
25
|
+
end
|
26
|
+
|
11
27
|
end
|
12
28
|
|
13
29
|
end
|
@@ -6,7 +6,7 @@ FactoryGirl.define do
|
|
6
6
|
surname { Faker::Name.last_name }
|
7
7
|
name_reading { Faker::Name.first_name }
|
8
8
|
surname_reading { Faker::Name.last_name }
|
9
|
-
gender
|
9
|
+
gender true
|
10
10
|
birth_date Date.today
|
11
11
|
end
|
12
12
|
|
@@ -24,19 +24,29 @@ FactoryGirl.define do
|
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
|
+
trait :with_class_group do
|
28
|
+
after(:create) do |student|
|
29
|
+
student.class_groups << create(:class_group)
|
30
|
+
student.save
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
trait :with_extracurricular_activity do
|
35
|
+
after(:create) do |student|
|
36
|
+
student.extracurricular_activities << create(:extracurricular_activity)
|
37
|
+
student.save
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
27
41
|
trait :with_enrollment_status do
|
28
42
|
enrollment_status
|
29
43
|
end
|
30
44
|
|
31
45
|
trait :admitted do
|
32
|
-
deleted false
|
33
|
-
#admitted false
|
34
46
|
association :enrollment_status, factory: :enrollment_status_admitted
|
35
47
|
end
|
36
48
|
|
37
49
|
trait :applicant do
|
38
|
-
deleted false
|
39
|
-
#admitted false
|
40
50
|
association :enrollment_status, factory: :enrollment_status_applicant
|
41
51
|
end
|
42
52
|
|