Преглед на файлове

Add coordinator/minuter flag

Andrea Fazzi преди 6 години
родител
ревизия
2e0ab29cd3
променени са 3 файла, в които са добавени 28 реда и са изтрити 8 реда
  1. 9 0
      orm/orm_test.go
  2. 17 6
      orm/teacher.go
  3. 2 2
      templates/teachers_show.html.tpl

+ 9 - 0
orm/orm_test.go

@@ -134,6 +134,15 @@ func (t *testSuite) TestGetTeacherAll() {
 		t.Equal(4, teacher.(*Teacher).ActualHours)
 	}
 
+	teacher, err = GetTeacherAll(map[string]string{"id": "3"})
+	t.Nil(err)
+	if !t.Failed() {
+		t.Equal("Costanza", teacher.(*Teacher).Name)
+		t.Equal("LUNGA", teacher.(*Teacher).Surname)
+
+		t.Equal(true, teacher.(*Teacher).IsCoordinator)
+	}
+
 }
 
 func (t *testSuite) TestGetStudentAll() {

+ 17 - 6
orm/teacher.go

@@ -14,6 +14,9 @@ type Teacher struct {
 	gorm.Model
 	Credential
 
+	IsCoordinator bool `gorm:"-"`
+	IsMinuter     bool `gorm:"-"`
+
 	Classes     []*Class
 	Students    []*Student
 	Subjects    []*Subject
@@ -103,6 +106,18 @@ func GetTeacherAll(args map[string]string) (interface{}, error) {
 		return nil, err
 	}
 
+	coordClasses, err := teacher.CoordinatorClasses()
+	if err != nil {
+		return nil, err
+	}
+
+	minuterClasses, err := teacher.MinuterClasses()
+	if err != nil {
+		return nil, err
+	}
+
+	teacher.IsCoordinator, teacher.IsMinuter = len(coordClasses) > 0, len(minuterClasses) > 0
+
 	return &teacher, nil
 }
 
@@ -142,10 +157,6 @@ func GetTeachersAll(args map[string]string) (interface{}, error) {
 			teacher.SubjectsByClass[c.ID] = subjects
 		}
 
-		// if err := DB().Raw(countActualTeacherHours, teacher.ID, teacher.ID).Scan(&teacher.ActualHours).Error; err != nil {
-		// 	return nil, err
-		// }
-
 	}
 
 	return teachers, nil
@@ -289,7 +300,7 @@ func (t *Teacher) GetSubjectsByClassID(id string) ([]*Subject, error) {
 	return t.Subjects, nil
 }
 
-func (t *Teacher) IsCoordinator() ([]*Class, error) {
+func (t *Teacher) CoordinatorClasses() ([]*Class, error) {
 	var output []*Class
 
 	classes, err := t.GetClasses()
@@ -305,7 +316,7 @@ func (t *Teacher) IsCoordinator() ([]*Class, error) {
 	return output, nil
 }
 
-func (t *Teacher) IsMinuter() ([]*Class, error) {
+func (t *Teacher) MinuterClasses() ([]*Class, error) {
 	var output []*Class
 
 	classes, err := t.GetClasses()

+ 2 - 2
templates/teachers_show.html.tpl

@@ -111,7 +111,7 @@
 	</a>
       </div>
       
-      {{if $classes := .Data.IsCoordinator}}
+      {{if $classes := .Data.CoordinatorClasses}}
       <p>Il docente è <strong>coordinatore</strong> nelle seguenti classi</p>
       <div class="list-group" id="coord_classes_list_group">
 	{{range $class := $classes}}
@@ -123,7 +123,7 @@
       </div>
       {{end}}
 
-      {{if $classes := .Data.IsMinuter}}
+      {{if $classes := .Data.MinuterClasses}}
       <p>Il docente è <strong>verbalizzante</strong> nelle seguenti classi</p>
       <div class="list-group" id="coord_classes_list_group">
 	{{range $class := $classes}}