Ver código fonte

Work in progress

Andrea Fazzi 6 anos atrás
pai
commit
a809bf0d15

+ 1 - 0
.gitignore

@@ -1,2 +1,3 @@
 **/*~
 core
+watch.sh

+ 0 - 192
handlers/activities.go

@@ -1,192 +0,0 @@
-package api
-
-import (
-	"encoding/json"
-	"fmt"
-	"html/template"
-	"net/http"
-
-	"github.com/gorilla/mux"
-	"github.com/gorilla/schema"
-
-	"gogs.carducci-dante.gov.it/karmen/core/orm"
-)
-
-func saveActivity(r *http.Request, activity *orm.Activity) {
-	var (
-		class   orm.Class
-		subject orm.Subject
-	)
-	if err := r.ParseForm(); err != nil {
-		panic(err)
-	}
-
-	decoder := schema.NewDecoder()
-	if err := decoder.Decode(activity, r.PostForm); err != nil {
-		panic(err)
-	}
-
-	if err := orm.DB().First(&class, activity.ClassID).Error; err != nil {
-		panic(err)
-	}
-
-	if err := orm.DB().First(&subject, activity.SubjectID).Error; err != nil {
-		panic(err)
-	}
-
-	activity.Name = fmt.Sprintf("%s %s %dh", class.Name, subject.Name, activity.Hours)
-
-	if err := orm.DB().Save(activity).Error; err != nil {
-		panic(err)
-	}
-
-}
-
-func activitiesHandler() http.Handler {
-	fn := func(w http.ResponseWriter, r *http.Request) {
-		var data struct {
-			Activities []orm.Activity
-		}
-		if err := orm.DB().Find(&data.Activities).Error; err != nil {
-			panic(err)
-		}
-
-		if err := orm.DB().Preload("Subject").Preload("Teacher").Preload("Class").Find(&data.Activities).Error; err != nil {
-			panic(err)
-		}
-		// if err := renderer.Render(w, "base", "activities", data); err != nil {
-		// 	panic(err)
-		// }
-	}
-	return http.HandlerFunc(fn)
-}
-
-func activitiesAddHandler() http.Handler {
-	fn := func(w http.ResponseWriter, r *http.Request) {
-		if r.Method == "GET" {
-			var data struct {
-				Update      bool
-				AllTeachers []orm.Teacher
-				AllClasses  []orm.Class
-				AllSubjects []orm.Subject
-				SubmitUrl   template.URL
-			}
-			data.SubmitUrl = template.URL(fmt.Sprintf("/activities/add"))
-
-			if err := orm.DB().Find(&data.AllTeachers).Error; err != nil {
-				panic(err)
-			}
-
-			if err := orm.DB().Find(&data.AllClasses).Error; err != nil {
-				panic(err)
-			}
-
-			if err := orm.DB().Find(&data.AllSubjects).Error; err != nil {
-				panic(err)
-			}
-
-			// if err := renderer.Render(w, "base", "activities_add_update", data); err != nil {
-			// 	panic(err)
-			// }
-		} else if r.Method == "POST" {
-			var activity orm.Activity
-
-			if err := orm.DB().Create(&activity).Error; err != nil {
-				panic(err)
-			}
-
-			saveActivity(r, &activity)
-
-			http.Redirect(w, r, fmt.Sprintf("/activities"), http.StatusSeeOther)
-		}
-
-	}
-	return http.HandlerFunc(fn)
-}
-
-func activitiesDeleteHandler() http.Handler {
-	fn := func(w http.ResponseWriter, r *http.Request) {
-		var activity orm.Activity
-		if err := orm.DB().First(&activity, mux.Vars(r)["id"]).Error; err != nil {
-			panic(err)
-		}
-
-		if err := orm.DB().Delete(&activity).Error; err != nil {
-			panic(err)
-		}
-
-		var data struct {
-			RedirectUrl string `json:"redirect_url"`
-		}
-
-		data.RedirectUrl = "/activities"
-
-		w.Header().Set("Content-Type", "application/json")
-		json.NewEncoder(w).Encode(data)
-	}
-	return http.HandlerFunc(fn)
-}
-
-func activitiesUpdateHandler() http.Handler {
-	fn := func(w http.ResponseWriter, r *http.Request) {
-		if r.Method == "GET" {
-			var data struct {
-				Update          bool
-				SubmitUrl       template.URL
-				Activity        orm.Activity
-				AllTeachers     []orm.Teacher
-				AllSubjects     []orm.Subject
-				AllClasses      []orm.Class
-				SelectedTeacher map[uint]string
-				SelectedSubject map[uint]string
-				SelectedClass   map[uint]string
-			}
-
-			if err := orm.DB().First(&data.Activity, mux.Vars(r)["id"]).Error; err != nil {
-				panic(err)
-			}
-
-			if err := orm.DB().Find(&data.AllTeachers).Error; err != nil {
-				panic(err)
-			}
-
-			if err := orm.DB().Find(&data.AllSubjects).Error; err != nil {
-				panic(err)
-			}
-
-			if err := orm.DB().Find(&data.AllClasses).Error; err != nil {
-				panic(err)
-			}
-
-			if id := data.Activity.TeacherID; id != 0 {
-				data.SelectedTeacher = make(map[uint]string)
-				data.SelectedTeacher[id] = "selected"
-			}
-
-			data.SelectedClass = make(map[uint]string)
-			data.SelectedClass[data.Activity.ClassID] = "selected"
-
-			data.SelectedSubject = make(map[uint]string)
-			data.SelectedSubject[data.Activity.SubjectID] = "selected"
-
-			data.Update = true
-			data.SubmitUrl = template.URL(fmt.Sprintf("/activities/%d/update", data.Activity.ID))
-
-			// if err := renderer.Render(w, "base", "activities_add_update", data); err != nil {
-			// 	panic(err)
-			// }
-		} else if r.Method == "POST" {
-			var activity orm.Activity
-
-			if err := orm.DB().First(&activity, mux.Vars(r)["id"]).Error; err != nil {
-				panic(err)
-			}
-
-			saveActivity(r, &activity)
-
-			http.Redirect(w, r, fmt.Sprintf("/activities"), http.StatusSeeOther)
-		}
-
-	}
-	return http.HandlerFunc(fn)
-}

+ 37 - 15
orm/activity.go

@@ -1,8 +1,6 @@
 package orm
 
 import (
-	"fmt"
-	"log"
 	"net/http"
 
 	"github.com/jinzhu/gorm"
@@ -11,7 +9,7 @@ import (
 
 type Activity struct {
 	gorm.Model
-	Name      string
+	//	Name      string
 	Class     *Class
 	Teacher   *Teacher
 	Subject   *Subject
@@ -33,6 +31,12 @@ type ActivityForUpdate struct {
 	SelectedClass   map[uint]string
 }
 
+type ActivityForAdd struct {
+	AllClasses  []*Class
+	AllSubjects []*Subject
+	AllTeachers []*Teacher
+}
+
 func (a *Activity) GetID() uint { return a.ID }
 
 func GetActivity(args map[string]string) (interface{}, error) {
@@ -86,6 +90,24 @@ func GetActivityForUpdate(args map[string]string) (interface{}, error) {
 	return data, nil
 }
 
+func GetActivityForAdd(args map[string]string) (interface{}, error) {
+	var data ActivityForAdd
+
+	if err := DB().Find(&data.AllClasses).Error; err != nil {
+		return nil, err
+	}
+
+	if err := DB().Find(&data.AllSubjects).Error; err != nil {
+		return nil, err
+	}
+
+	if err := DB().Find(&data.AllTeachers).Error; err != nil {
+		return nil, err
+	}
+
+	return data, nil
+}
+
 func GetActivitiesAll(args map[string]string) (interface{}, error) {
 	var activities []*Activity
 	if err := DB().Preload("Teacher").Preload("Subject").Preload("Class").Order("name").Find(&activities).Error; err != nil {
@@ -156,15 +178,15 @@ func DeleteActivity(activity *Activity) error {
 	return nil
 }
 
-func (a *Activity) AfterSave(tx *gorm.DB) error {
-	var act Activity
-	if err := DB().Preload("Teacher").Preload("Subject").Preload("Class").First(&act, a.ID).Error; err != nil {
-		return err
-	}
-
-	log.Println(a.ID)
-	if err := tx.Model(a).Update("name", fmt.Sprintf("%s %s %dh", act.Class.Name, act.Subject.Name, act.Hours)).Error; err != nil {
-		return err
-	}
-	return nil
-}
+// func (a *Activity) AfterSave(tx *gorm.DB) error {
+// 	var act Activity
+// 	if err := DB().Preload("Teacher").Preload("Subject").Preload("Class").First(&act, a.ID).Error; err != nil {
+// 		return err
+// 	}
+
+// 	log.Println(a.ID)
+// 	if err := tx.Model(a).Update("name", fmt.Sprintf("%s %s %dh", act.Class.Name, act.Subject.Name, act.Hours)).Error; err != nil {
+// 		return err
+// 	}
+// 	return nil
+// }

+ 1 - 1
orm/class.go

@@ -64,7 +64,7 @@ func GetClass(id string) (*Class, error) {
 	if err := DB().Raw(selectUniqueClassTeachers, id).Scan(&class.Teachers).Error; err != nil {
 		return nil, err
 	}
-	if err := DB().Preload("Teacher").Preload("Subject").Where("class_id=?", id).Find(&class.Activities).Error; err != nil {
+	if err := DB().Preload("Teacher").Preload("Class").Preload("Subject").Where("class_id=?", id).Find(&class.Activities).Error; err != nil {
 		return nil, err
 	}
 

+ 1 - 1
orm/orm.go

@@ -109,7 +109,7 @@ var (
 		"/activities":             GetActivitiesAll,
 		"/activities/{id}":        GetActivityAll,
 		"/activities/{id}/update": GetActivityForUpdate,
-		"/activities/add/":        GetNothing,
+		"/activities/add/":        GetActivityForAdd,
 	}
 
 	Post map[string]PostFn = map[string]PostFn{

+ 15 - 3
orm/orm_test.go

@@ -69,7 +69,7 @@ func (t *testSuite) TestSaveActivity() {
 	activity, err := GetActivity(map[string]string{"id": "1"})
 	t.Nil(err)
 
-	t.Equal("1 A MATEMATICA 2h", activity.(*Activity).Name)
+	t.Equal(uint(1), activity.(*Activity).SubjectID)
 
 	activity.(*Activity).SubjectID = 2
 	_, err = SaveActivity(activity)
@@ -77,7 +77,7 @@ func (t *testSuite) TestSaveActivity() {
 
 	if !t.Failed() {
 		activity, _ = GetActivity(map[string]string{"id": "1"})
-		t.Equal("Roberto", activity.(*Activity).Name)
+		t.Equal(uint(2), activity.(*Activity).SubjectID)
 	}
 }
 
@@ -91,6 +91,18 @@ func (t *testSuite) TestGetTeacher() {
 
 }
 
+func (t *testSuite) TestGetTeacherAll() {
+	teacher, err := GetTeacherAll(map[string]string{"id": "1"})
+	t.Nil(err)
+	if !t.Failed() {
+		t.Equal("Amilcare", teacher.(*Teacher).Name)
+		t.Equal("AGOSTINO", teacher.(*Teacher).Surname)
+
+		t.Equal("1 A", teacher.(*Teacher).Activities[0].Class.Name)
+	}
+
+}
+
 func (t *testSuite) TestGetTeachers() {
 	teachers, err := GetTeachers(map[string]string{})
 	t.Nil(err)
@@ -166,7 +178,7 @@ func (t *testSuite) TestGetClass() {
 		// Test activities
 
 		t.True(len(class.Activities) > 0)
-		t.Equal("1 A MATEMATICA 2h", class.Activities[0].Name)
+		t.Equal("1 A", class.Activities[0].Class.Name)
 		t.Equal("AGOSTINO", class.Activities[0].Teacher.Surname)
 		t.Equal("MATEMATICA", class.Activities[0].Subject.Name)
 		t.Equal(2, class.Activities[0].Hours)

+ 1 - 1
orm/teacher.go

@@ -72,7 +72,7 @@ func GetTeacherAll(args map[string]string) (interface{}, error) {
 		return nil, err
 	}
 
-	if err := DB().Preload("Teacher").Preload("Subject").Where("teacher_id=?", id).Find(&teacher.Activities).Error; err != nil {
+	if err := DB().Preload("Teacher").Preload("Subject").Preload("Class").Where("teacher_id=?", id).Find(&teacher.Activities).Error; err != nil {
 		return nil, err
 	}
 

+ 1 - 6
renderer/renderer.go

@@ -30,8 +30,7 @@ var (
 	Render       map[string]func(http.ResponseWriter, *http.Request, interface{}, ...url.Values)
 
 	funcMap = template.FuncMap{
-		"queryString": queryString,
-		"query":       query,
+		"query": query,
 	}
 )
 
@@ -47,10 +46,6 @@ func init() {
 	}
 }
 
-func queryString(layout string, content string) string {
-	return fmt.Sprintf("?format=html&tpl_layout=%s&tpl_content=%s", layout, content)
-}
-
 func query(values ...string) template.URL {
 	var urlValues url.Values
 

+ 2 - 2
templates/activities.html.tpl

@@ -8,7 +8,7 @@
 	<h1>Attività</h1>
       </div>
       <div class="col-md-4">
-	<a href="/activities/add" class="btn btn-primary pull-right">
+	<a href="/activities/add/?{{query "tpl_layout" "base" "tpl_content" "activities_add_update"}}" class="btn btn-primary pull-right">
 	  <span class="glyphicon glyphicon-plus" aria-hidden="true"></span>
 	  Crea nuova attività
 	</a>
@@ -26,7 +26,7 @@
   {{else}}
   <div class="list-group" id="myUL">
     {{range $activity := .Data}}
-    <a class="list-group-item clearfix" href="/activities/{{$activity.ID}}{{queryString "base" "activities_show"}}">
+    <a class="list-group-item clearfix" href="/activities/{{$activity.ID}}?{{query "tpl_layout" "base" "tpl_content" "activities_show"}}">
       <span class="glyphicon glyphicon-briefcase"></span>
       {{$activity.Subject.Name}}
       <div class="text-right">

+ 10 - 6
templates/activities_add_update.html.tpl

@@ -4,12 +4,12 @@
 
   {{if .Options.Get "update"}}
   <ol class="breadcrumb">
-    <li><a href="/activities{{queryString "base" "activities"}}">Attività</a></li>
+    <li><a href="/activities?{{query "tpl_layout" "base" "tpl_content" "activities"}}">Attività</a></li>
     <li class="active"><a href="#">Aggiorna l'attività</a></li>
   </ol>  
   {{else}}  
   <ol class="breadcrumb">
-    <li><a href="/activities{{queryString "base" "activities"}}">Attività</a></li>
+    <li><a href="/activities?{{query "tpl_layout" "base" "tpl_content" "activities"}}">Attività</a></li>
     <li class="active"><a href="#">Aggiungi</a></li>
   </ol>
   {{end}}
@@ -34,9 +34,13 @@
   {{else}}
   <h1 class="karmen-info-header">Crea una nuova attività</h1>
   {{end}}
-  
-  <form id="form_activities_add_update" action="/activities/{{.Data.Activity.ID}}/update" method="POST" role="form" data-toggle="validator">
 
+  {{if .Options.Get "update"}}
+  <form id="form_activities_add_update" action="/activities/{{.Data.Activity.ID}}/update" method="POST" role="form" data-toggle="validator">
+  {{else}}
+  <form id="form_activities_add_update" action="/activities/add/" method="POST" role="form" data-toggle="validator">
+  {{end}}
+   
     <div class="form-group">
       <label class="control-label" for="subject_id">Materia</label>
       <select name="subject_id" class="form-control selectpicker" id="subject_id" placeholder="Materia" data-live-search="true" form="form_activities_add_update" title="Seleziona il nome della materia" data-dropup-auto="false" required>
@@ -96,9 +100,9 @@
     <div class="form-group">
       <button type="submit" class="btn btn-primary">Salva</button>
       {{if .Options.Get "update"}}
-      <a href="/activities{{queryString "base" "activities"}}" class="btn btn-default">Annulla</a>
+      <a href="/activities/{{.Data.Activity.ID}}?{{query "tpl_layout" "base" "tpl_content" "activities_show"}}" class="btn btn-default">Annulla</a>
       {{else}}
-      <a href="/activities{{queryString "base" "activities"}}" class="btn btn-default">Annulla</a>
+      <a href="/activities?{{query "tpl_layout" "base" "tpl_content" "activities"}}" class="btn btn-default">Annulla</a>
       {{end}}
     </div>
     

+ 9 - 9
templates/activities_show.html.tpl

@@ -3,14 +3,14 @@
 <div class="container">
 
   <ol class="breadcrumb">
-    <li><a href="/activities{{queryString "base" "activities"}}">Attività</a></li>
-    <li class="active"><a href="#">{{.Data.Name}}</a></li>
+    <li><a href="/activities?{{query "base" "activities"}}">Attività</a></li>
+    <li class="active"><a href="#">{{.Data.Subject.Name}} {{.Data.Class.Name}} {{.Data.Hours}}h</a></li>
   </ol>
 
   <div class="karmen-info-header">
     <div class="row">
       <div class="col-md-8">
-	<h1>{{.Data.Name}}</h1>
+	<h1>{{.Data.Subject.Name}} {{.Data.Class.Name}} {{.Data.Hours}}h</h1>
       </div>
       <div class="col-md-4">
 	<div class="btn-group pull-right" role="group">
@@ -35,14 +35,14 @@
       <h2 class="karmen-relation-header">Materia</h2>
       {{if .Data.Subject}}
       <div class="list-group" id="materie_list_group">
-    	<a href="/subjects/{{.Data.Subject.ID}}{{queryString "base" "subjects_show"}}" class="list-group-item clearfix">
+    	<a href="/subjects/{{.Data.Subject.ID}}?{{query "base" "subjects_show"}}" class="list-group-item clearfix">
     	  <span class="glyphicon glyphicon-book"></span>
     	  {{.Data.Subject.Name}}
     	</a>
       </div>
       {{else}}
       <p>All'attività non è associata alcuna materia
-    	didattica. Clicca <a href="/activities/update{{queryString "base" "activities_add_update"}}">qui</a> per
+    	didattica. Clicca <a href="/activities/update?{{query "base" "activities_add_update"}}">qui</a> per
     	modificare questa attività didattica.</p>
       {{end}}
     </div>
@@ -56,7 +56,7 @@
       {{if .Data.Class}}
       <div class="list-group" id="classes_list_group">
 
-	<a href="/classes/{{.Data.Class.ID}}{{queryString "base" "classes_show"}}" class="list-group-item clearfix">
+	<a href="/classes/{{.Data.Class.ID}}?{{query "base" "classes_show"}}" class="list-group-item clearfix">
 	  <span class="glyphicon glyphicon-blackboard"></span>
 	  {{.Data.Class.Name}}
 	</a>
@@ -65,7 +65,7 @@
       {{else}}
       
       <p>All'attività non è associata alcuna classe
-    	didattica. Clicca <a href="/activities/update{{queryString "base" "activities_add_update"}}">qui</a> per
+    	didattica. Clicca <a href="/activities/update?{{query "base" "activities_add_update"}}">qui</a> per
     	modificare questa attività didattica.</p>
       
       {{end}}
@@ -79,7 +79,7 @@
       <h2 class="karmen-relation-header">Docente</h2>
       {{if .Data.Teacher}}
       <div class="list-group" id="classes_list_group">
-	<a href="/activities/{{.Data.Teacher.ID}}/update{{queryString "base" "teachers_add_update"}}" class="list-group-item clearfix">
+	<a href="/teachers/{{.Data.Teacher.ID}}?{{query "base" "teachers_show"}}" class="list-group-item clearfix">
 	  <span class="glyphicon glyphicon-briefcase"></span>
 	  {{.Data.Teacher.Surname}} {{.Data.Teacher.Name}}
 	</a>
@@ -88,7 +88,7 @@
       {{else}}
 
       <p>All'attività non è associato alcun docente
-    	didattica. Clicca <a href="/activities/update{{queryString "base" "activities_add_update"}}">qui</a> per
+    	didattica. Clicca <a href="/activities/update?{{query "base" "activities_add_update"}}">qui</a> per
     	modificare questa attività didattica.</p>
 	    
       {{end}}

+ 5 - 5
templates/layout/base.html.tpl

@@ -24,11 +24,11 @@
         </div>
         <div id="navbar" class="collapse navbar-collapse">
           <ul class="nav navbar-nav">
-	    <li><a href="/school/1{{queryString "base" "school_show"}}">Scuola</a></li>
-            <li><a href="/teachers{{queryString "base" "teachers"}}">Docenti</a></li>
-	    <li><a href="/subjects{{queryString "base" "subjects"}}">Materie</a></li>
-	    <li><a href="/classes{{queryString "base" "classes"}}">Classi</a></li>
-	    <li><a href="/activities{{queryString "base" "activities"}}">Attività</a></li>
+	    <li><a href="/school/1?{{query "tpl_layout" "base" "tpl_content" "school_show"}}">Scuola</a></li>
+            <li><a href="/teachers?{{query "tpl_layout" "base" "tpl_content" "teachers"}}">Docenti</a></li>
+	    <li><a href="/subjects?{{query "tpl_layout" "base" "tpl_content" "subjects"}}">Materie</a></li>
+	    <li><a href="/classes?{{query "tpl_layout" "base" "tpl_content" "classes"}}">Classi</a></li>
+	    <li><a href="/activities?{{query "tpl_layout" "base" "tpl_content" "activities"}}">Attività</a></li>
           </ul>
 
 	  <ul class="nav navbar-nav navbar-right">

+ 3 - 20
templates/teachers.html.tpl

@@ -11,28 +11,11 @@
 	
 	<div class="btn-group pull-right">
 	  
-	  <a href="/teachers/add/{{queryString "base" "teachers_add_update"}}" class="btn btn-primary">
+	  <a href="/teachers/add/?{{query "tpl_layout" "base" "tpl_content" "teachers_add_update"}}" class="btn btn-primary">
 	    <span class="glyphicon glyphicon-plus" aria-hidden="true"></span>
 	    Crea nuovo docente
 	  </a>
-	  
-	  <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
-	    <span class="glyphicon glyphicon-floppy-open" aria-hidden="true"></span>
-	    Importa<span class="caret"></span>
-	  </button>
-	  
-	  <div class="dropdown-menu">
-	    <div class="container">  
-	      <form role="form" id="form_teachers_upload" action="/teachers/import" method="post" enctype="multipart/form-data">
-		<div class="form-group">
-		  <label class="control-label">Seleziona il file</label>
-		  <input id="input-1" type="file" class="file" data-show-preview="false" name="teachers_import">
-		</div>
-	      </form>
-	    </div>  
-	  </div>
-	</div>
-	
+	   	
       </div>
     </div>
   </div>
@@ -47,7 +30,7 @@
   {{else}}
   <div class="list-group" id="myUL">
     {{range $teacher := .Data}}
-    <a class="list-group-item clearfix" href="/teachers/{{$teacher.ID}}{{queryString "base" "teachers_show"}}">
+    <a class="list-group-item clearfix" href="/teachers/{{$teacher.ID}}?{{query "tpl_layout" "base" "tpl_content" "teachers_show"}}">
       <span class="glyphicon glyphicon-user"></span>
       {{$teacher.Name}} {{$teacher.Surname}}
       <div class="text-right">

+ 4 - 4
templates/teachers_add_update.html.tpl

@@ -4,8 +4,8 @@
 
   {{if .Options.Get "update"}}
   <ol class="breadcrumb">
-    <li><a href="/teachers?{{query "tpl_layout" "base" "tpl_content" "teachers_show"}}">Docenti</a></li>
-    <li><a href="/teachers/{{.Data.ID}}?{{query "tpl_layout" "base" "tpl_content" "teachers_show"}}">{{.Data.Name}} {{.Data.Surname}}</a></li>
+    <li><a href="/teachers{{query "tpl_layout" "base" "tpl_content" "teachers_show"}}">Docenti</a></li>
+    <li><a href="/teachers/{{.Data.ID}}{{query "tpl_layout" "base" "tpl_content" "teachers_show"}}">{{.Data.Name}} {{.Data.Surname}}</a></li>
     <li class="active"><a href="#">Aggiorna</a></li>
   </ol>  
   {{else}}  
@@ -61,9 +61,9 @@
     <div class="form-group">
       <button type="submit" class="btn btn-primary">Salva</button>
       {{if .Options.Get "update"}}
-      <a href="/teachers/{{.Data.ID}}" class="btn btn-default">Annulla</a>
+      <a href="/teachers/{{.Data.ID}}{{query "tpl_layout" "base" "tpl_content" "teachers_show"}}" class="btn btn-default">Annulla</a>
       {{else}}
-      <a href="/teachers" class="btn btn-default">Annulla</a>
+      <a href="/teachers{{query "tpl_layout" "base" "tpl_content" "teachers"}}" class="btn btn-default">Annulla</a>
       {{end}}
     </div>
     

+ 10 - 10
templates/teachers_show.html.tpl

@@ -3,7 +3,7 @@
 <div class="container">
 
   <ol class="breadcrumb">
-    <li><a href="/teachers{{queryString "base" "teachers"}}">Docenti</a></li>
+    <li><a href="/teachers?{{query "tpl_layout" "base" "tpl_content" "teachers"}}">Docenti</a></li>
     <li class="active"><a href="#">{{.Data.Name}} {{.Data.Surname}}</a></li>
   </ol>
 
@@ -36,7 +36,7 @@
       {{if .Data.Subjects}}
       <div class="list-group" id="materie_list_group">
     	{{range $subject := .Data.Subjects}}
-    	<a href="/subjects/{{$subject.ID}}{{queryString "base" "subjects_show"}}" class="list-group-item clearfix">
+    	<a href="/subjects/{{$subject.ID}}?{{query "tpl_layout" "base" "tpl_content" "subjects_show"}}" class="list-group-item clearfix">
     	  <span class="glyphicon glyphicon-book"></span>
     	  {{$subject.Name}}
     	  {{end}}
@@ -44,7 +44,7 @@
       </div>
       {{else}}
       <p>Al docente non è associata alcuna attività
-    	didattica. Clicca <a href="/activities/add{{queryString "base" "activities_add_update"}}">qui</a> per
+    	didattica. Clicca <a href="/activities/add?{{query "tpl_layout" "base" "tpl_content" "activities_add_update"}}">qui</a> per
     	creare una nuova attività didattica da associare al docente.</p>
       {{end}}
     </div>
@@ -58,7 +58,7 @@
       {{if .Data.Classes}}
       <div class="list-group" id="classes_list_group">
 	{{range $class := .Data.Classes}}
-	<a href="/classes/{{$class.ID}}{{queryString "base" "classes_show"}}" class="list-group-item clearfix">
+	<a href="/classes/{{$class.ID}}?{{query "tpl_layout" "base" "tpl_content" "classes_show"}}" class="list-group-item clearfix">
 	  <span class="glyphicon glyphicon-blackboard"></span>
 	  {{$class.Name}}
 	  {{end}}
@@ -66,7 +66,7 @@
       </div>
       {{else}}
       <p>Al docente non è associata alcuna attività
-	didattica. Clicca <a href="/activities/add{{queryString "base" "activities_add_update"}}">qui</a> per
+	didattica. Clicca <a href="/activities/add?{{query "tpl_layout" "base" "tpl_content" "activities_add_update"}}">qui</a> per
 	creare una nuova attività didattica da associare al docente.</p>
       {{end}}
     </div>
@@ -80,9 +80,9 @@
       {{if .Data.Activities}}
       <div class="list-group" id="classes_list_group">
 	{{range $activity := .Data.Activities}}
-	<a href="/activities/{{$activity.ID}}/update{{queryString "base" "activities_add_update"}}" class="list-group-item clearfix">
+	<a href="/activities/{{$activity.ID}}?{{query "tpl_layout" "base" "tpl_content" "activities_show"}}" class="list-group-item clearfix">
 	  <span class="glyphicon glyphicon-briefcase"></span>
-	  {{$activity.Name}}
+	  {{$activity.Subject.Name}} {{$activity.Class.Name}} {{$activity.Hours}}h
 	  {{end}}
 	</a>
       </div>
@@ -91,7 +91,7 @@
       <p>Il docente è <strong>coordinatore</strong> nelle seguenti classi</p>
       <div class="list-group" id="coord_classes_list_group">
 	{{range $class := $classes}}
-	<a href="/classes/{{$class.ID}}{{queryString "base" "classes_show"}}" class="list-group-item clearfix">
+	<a href="/classes/{{$class.ID}}?{{query "tpl_layout" "base" "tpl_content" "classes_show"}}" class="list-group-item clearfix">
 	  <span class="glyphicon glyphicon-blackboard"></span>
 	  {{$class.Name}}
 	  {{end}}
@@ -103,7 +103,7 @@
       <p>Il docente è <strong>verbalizzante</strong> nelle seguenti classi</p>
       <div class="list-group" id="coord_classes_list_group">
 	{{range $class := $classes}}
-	<a href="/classes/{{$class.ID}}{{queryString "base" "classes_show"}}" class="list-group-item clearfix">
+	<a href="/classes/{{$class.ID}}?{{query "tpl_layout" "base" "tpl_content" "classes_show"}}" class="list-group-item clearfix">
 	  <span class="glyphicon glyphicon-blackboard"></span>
 	  {{$class.Name}}
 	  {{end}}
@@ -114,7 +114,7 @@
       
       {{else}}
       <p>Al docente non è associata alcuna attività
-	didattica. Clicca <a href="/activities/add{{queryString "base" "activities_add_update"}}">qui</a> per
+	didattica. Clicca <a href="/activities/add?{{query "base" "activities_add_update"}}">qui</a> per
 	creare una nuova attività didattica da associare al docente.</p>
       {{end}}
     </div>