Skip to content

Commit 2dcf377

Browse files
#241 On the enrollments search screen, the course field was changed to avoid duplicate names
1 parent 1eed61d commit 2dcf377

3 files changed

Lines changed: 28 additions & 4 deletions

File tree

app/controllers/enrollments_controller.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -175,8 +175,8 @@ def self.condition_for_course_class_year_semester_column(column, value, like_pat
175175
course_classes.id = class_enrollments.course_class_id "
176176

177177
if not value[:course].empty?
178-
search_sql += " and course_classes.course_id = ? "
179-
result << value[:course]
178+
search_sql += " and course_classes.course_id in (?) "
179+
result << Course.ids_de_disciplinas_com_nome_parecido(value[:course])
180180
end
181181

182182
if not value[:year].empty?

app/helpers/class_enrollments_helper.rb

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,21 @@ def grade_form_column(record, options)
99

1010
def course_class_year_semester_search_column(record, options)
1111

12+
disciplinas_filtro = Course.all.collect{|c| [I18n.transliterate(c.name.squish.downcase), c.name, c.id]}
13+
disciplinas_filtro.sort_by!{ |elemento| elemento[0] }
14+
15+
disciplinas_sem_nome_repetido = []
16+
ultimo_copiado = ""
17+
disciplinas_filtro.each do |elemento|
18+
if elemento[0] != ultimo_copiado
19+
disciplinas_sem_nome_repetido.push(elemento[1..2])
20+
ultimo_copiado = elemento[0]
21+
end
22+
end
1223

1324
html = select_tag(
1425
"#{options[:name]}[course]",
15-
options_for_select(Course.all.collect{|c| [c.name, c.id]}),
26+
options_for_select(disciplinas_sem_nome_repetido),
1627
:prompt => as_(:_select_),
1728
:id => "#{options[:id]}_course",
1829
:class => "as_search_search_course_class_option"

app/models/course.rb

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,18 @@ def workload_value
3030
def workload_text
3131
return I18n.translate('activerecord.attributes.course.empty_workload') if workload.nil?
3232
I18n.translate('activerecord.attributes.course.workload_time', :time => workload)
33-
end
33+
end
34+
35+
def self.ids_de_disciplinas_com_nome_parecido(id_disciplina_selecionada)
36+
ids = []
37+
nome_disciplina_selecionada = I18n.transliterate(Course.find(id_disciplina_selecionada).name.squish.downcase)
38+
disciplinas = Course.all.collect{|c| [c.name, c.id]}
39+
disciplinas.each do |disciplina|
40+
if nome_disciplina_selecionada == I18n.transliterate(disciplina[0].squish.downcase)
41+
ids.push(disciplina[1])
42+
end
43+
end
44+
return ids
45+
end
46+
3447
end

0 commit comments

Comments
 (0)