Commit 6259b1af3a9b3125513fa3e042f5ec6f06de969d
1 parent
c14a3e83
Exists in
master
and in
21 other branches
profile_suggestions: new rules on stoa plugin
(ActionItem3234)
Showing
2 changed files
with
49 additions
and
0 deletions
Show diff stats
| ... | ... | @@ -0,0 +1,35 @@ |
| 1 | +require_dependency 'profile_suggestion' | |
| 2 | + | |
| 3 | +class ProfileSuggestion | |
| 4 | + | |
| 5 | + CATEGORIES.merge!({:common_classroom => _('Classroom in common')}) | |
| 6 | + | |
| 7 | + RULES += %w[ | |
| 8 | + people_with_common_classroom | |
| 9 | + ] | |
| 10 | + | |
| 11 | + def self.people_with_common_classroom(person) | |
| 12 | + usp_id = person.usp_id | |
| 13 | + return if usp_id.nil? | |
| 14 | + person_attempts = 0 | |
| 15 | + StoaPlugin::UspAlunoTurmaGrad.classrooms_from_person(usp_id).each do |classroom| | |
| 16 | + person_attempts += 1 | |
| 17 | + return unless person.profile_suggestions.count < N_SUGGESTIONS && person_attempts < MAX_ATTEMPTS | |
| 18 | + StoaPlugin::UspAlunoTurmaGrad.find_all_by_codtur(classroom.codtur).each do |same_class| | |
| 19 | + classmate = Person.find_by_usp_id(same_class.codpes) | |
| 20 | + unless classmate.nil? || classmate == person || classmate.is_a_friend?(person) || person.already_request_friendship?(classmate) | |
| 21 | + suggestion = person.profile_suggestions.find_or_initialize_by_suggestion_id(classmate.id) | |
| 22 | + suggestion.common_classroom = 1 | |
| 23 | + suggestion.save | |
| 24 | + end | |
| 25 | + end | |
| 26 | + end | |
| 27 | + end | |
| 28 | + | |
| 29 | + def self.people_with_common_discipline(person) | |
| 30 | + person_attempts = 0 | |
| 31 | + person_attempts += 1 | |
| 32 | + return unless person.profile_suggestions.count < N_SUGGESTIONS && person_attempts < MAX_ATTEMPTS | |
| 33 | + end | |
| 34 | + | |
| 35 | +end | ... | ... |
| ... | ... | @@ -0,0 +1,14 @@ |
| 1 | +class StoaPlugin::UspAlunoTurmaGrad < ActiveRecord::Base | |
| 2 | + | |
| 3 | + establish_connection(:stoa) | |
| 4 | + set_table_name('alunoturma_gr') | |
| 5 | + | |
| 6 | + def self.exists?(usp_id) | |
| 7 | + StoaPlugin::UspUser.find_by_codpes(usp_id.to_i) | |
| 8 | + end | |
| 9 | + | |
| 10 | + def self.classrooms_from_person(usp_id) | |
| 11 | + StoaPlugin::UspAlunoTurmaGrad.find_all_by_codpes(usp_id) | |
| 12 | + end | |
| 13 | + | |
| 14 | +end | ... | ... |