Parcourir la source

Working on departments

Andrea Fazzi il y a 6 ans
Parent
commit
4a2dcce002

+ 1 - 1
generator/.gitignore

@@ -1,2 +1,2 @@
-./generator
+generator
 test/

+ 15 - 8
generator/main.go

@@ -6,10 +6,10 @@ import (
 	"log"
 	"os"
 	"path/filepath"
+	"strings"
 	"text/template"
 
 	"github.com/jinzhu/inflection"
-	"gogs.carducci-dante.gov.it/karmen/core/renderer"
 	tpl_util "gogs.carducci-dante.gov.it/karmen/util/template"
 )
 
@@ -21,6 +21,10 @@ var (
 	}
 )
 
+func toUpper(str string) string {
+	return strings.Title(str)
+}
+
 func main() {
 	flag.Usage = func() {
 		fmt.Fprintf(os.Stderr, "Usage of %s:\n", os.Args[0])
@@ -35,15 +39,15 @@ func main() {
 		return
 	}
 
+	funcMap := template.FuncMap{
+		"toUpper": toUpper,
+	}
+
 	model := flag.Args()[0]
 
 	for tplName, pattern := range fnPatterns {
 		name := fmt.Sprintf(pattern, model)
 
-		funcMap := template.FuncMap{
-			"query": renderer.Query,
-		}
-
 		tpl, err := tpl_util.LoadTextTemplate(filepath.Join(*tplDir, tplName+".tpl"), funcMap)
 		if err != nil {
 			panic(err)
@@ -62,9 +66,12 @@ func main() {
 			Models string
 		}
 
-		data.Model = inflection.Singular(name)
-		data.Models = inflection.Plural(name)
+		data.Model = inflection.Singular(model)
+		data.Models = inflection.Plural(model)
 
-		tpl.Execute(oFn, data)
+		err = tpl.Execute(oFn, data)
+		if err != nil {
+			panic(err)
+		}
 	}
 }

+ 54 - 0
generator/templates/add_update.tpl

@@ -0,0 +1,54 @@
+{{"{{ define \"content\" }}"}}
+
+<div class="container">
+
+  {{"{{if .Options.Get \"update\"}}"}}
+  <ol class="breadcrumb">
+    <li><a href="/{{.Models}}?{{"{{query \"tpl_layout\" \"base\" \"tpl_content\" "}}"{{.Models}}"}}">{{.Model}}</a></li>
+    <li class="active"><a href="#">Aggiorna {{.Model}}</a></li>
+  </ol>  
+  {{"{{else}}"}}
+  <ol class="breadcrumb">
+    <li><a href="/{{.Models}}?{{"{{query \"tpl_layout\" \"base\" \"tpl_content\" "}}"{{.Models}}"}}">{{.Model}}</a></li>
+    <li class="active"><a href="#">Aggiungi</a></li>
+  </ol>
+  {{"{{end}}"}}
+
+ {{"{{if .Options.Get \"update\"}}"}}
+  <div class="karmen-info-header">
+    <div class="row">
+      <div class="col-md-8">
+	<h1>Aggiorna {{.Model}}</h1>
+      </div>
+    </div>
+  </div>
+  
+  {{"{{else}}"}}
+  <h1 class="karmen-info-header">Crea nuovo {{.Model}}</h1>
+  {{"{{end}}"}}
+
+  {{"{{if .Options.Get \"update\"}}"}}
+  <form id="form_{{.Models}}_add_update" action="/{{.Models}}/{{"{{.Data.ID}}"}}/update" method="POST" role="form" data-toggle="validator">
+  {{"{{else}}"}}
+  <form id="form_{{.Models}}_add_update" action="/{{.Models}}/add/" method="POST" role="form" data-toggle="validator">
+  {{"{{end}}"}}
+
+    <div class="form-group has-feedback">
+      <label class="control-label" for="{{.Model}}_name">Nome</label>
+      <input type="text" name="Name" class="form-control" id="{{.Model}}_name" placeholder="Nome" {{"{{if .Options.Get \"update\"}}"}} value="{{"{{.Data."}}{{.Model | toUpper}}{{".Name}}"}}" {{"{{end}}"}} required>
+    </div>
+        
+    <div class="form-group">
+      <button type="submit" class="btn btn-primary">Salva</button>
+      {{"{{if .Options.Get \"update\"}}"}}
+      <a href="/{{.Models}}/{{"{{.Data.ID}}"}}?{{"{{query \"tpl_layout\" \"base\" \"tpl_content\" "}}"{{.Models}}{{"_show\"}}"}}" class="btn btn-default">Annulla</a>
+      {{"{{else}}"}}
+      <a href="/{{.Models}}/?{{"{{query \"tpl_layout\" \"base\" \"tpl_content\" "}}"{{.Models}}"{{"}}"}}" class="btn btn-default">Annulla</a>
+      {{"{{end}}"}}
+    </div>
+    
+  </form>
+
+</div>
+
+{{"{{ end }}"}}

+ 1 - 1
generator/templates/all.tpl

@@ -26,7 +26,7 @@
   {{"{{else}}"}}
   <div class="list-group" id="myUL">
     {{"{{range "}}${{.Model}}{{" := .Data}}"}}
-    <a class="list-group-item clearfix" href="/{{.Models}}/{{"{{"}}${{.Model}}{{".ID}}"}}?{{query "tpl_layout" "base" "tpl_content" "{{.Models}}_show"}}">
+    <a class="list-group-item clearfix" href="/{{.Models}}/{{"{{"}}${{.Model}}{{".ID}}"}}?{{"{{query \"tpl_layout\" \"base\" \"tpl_content\" \""}}{{.Models}}{{"_show\"}}"}}">
       <span class="glyphicon glyphicon-briefcase"></span>
       {{"{{$"}}{{.Model}}{{".Name}}"}}
       <div class="text-right">

+ 61 - 0
generator/templates/show.tpl

@@ -0,0 +1,61 @@
+{{"{{ define \"content\" }}"}}
+
+<div class="container">
+
+  <ol class="breadcrumb">
+    <li><a href="/{{.Models}}?{{"{{query \"tpl_layout\" \"base\" \"tpl_content\" "}}"{{.Models}}"}}">{{.Models}}</a></li>
+    <li class="active"><a href="#">{{"{{.Data.Name}}"}}</a></li>
+  </ol>
+
+  <div class="karmen-info-header">
+    <div class="row">
+      <div class="col-md-8">
+	<h1>{{"{{.Data.Name}}"}}</h1>
+      </div>
+      <div class="col-md-4">
+
+	<div class="btn-group pull-right" role="group">
+	  <a href="/{{.Models}}/add/?{{"{{query \"tpl_layout\" \"base\" \"tpl_content\" "}}"{{.Models}}_add_update"}}" class="btn btn-success">
+	    <span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
+	    Crea
+	  </a>
+
+	  <a href="/{{.Models}}/add/?{{"{{query \"tpl_layout\" \"base\" \"tpl_content\" "}}"{{.Models}}_add_update" "update" "true"}}"  class="btn btn-primary">
+	    <span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
+	    Modifica
+	  </a>
+	  <button href="/{{.Models}}/{{"{{.Data.ID}}"}}/delete"
+		  data-url="/{{.Models}}/{{"{{.Data.ID}}"}}/delete"
+		  class="btn btn-danger karmen-ajax-delete">
+	    <span class="glyphicon glyphicon-trash" aria-hidden="true"></span>
+	    Elimina
+	  </button>
+	</div>
+
+      </div>
+    </div>
+  </div>
+
+  <div class="row">
+    <div class="col-md-12">
+      
+      <h2 class="karmen-relation-header">sub items</h2>
+      {{"{{if .Data.Items}}"}}
+      <div class="list-group" id="materie_list_group">
+    	<a href="{{"/subjects/{{.Data.Subject.ID}}?{{query \"tpl_layout\" \"base\" \"tpl_content\" \"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?{{query \"tpl_layout\" \"base\" \"tpl_content\" \"activities_add_update\"}}"}}">qui</a> per
+    	modificare questa attività didattica.</p>
+      {{"{{end}}"}}
+    </div>
+    
+  </div>
+
+</div>    
+
+{{"{{ end }}"}}

+ 17 - 0
orm/department.go

@@ -137,6 +137,23 @@ func DeleteDepartment(args map[string]string, r *http.Request) (IDer, error) {
 	return department.(*Department), nil
 }
 
+// func GetDepartmentForUpdate(args map[string]string) (interface{}, error) {
+// 	id := args["id"]
+
+// 	if err := DB().First(&data.Subject, id).Error; err != nil {
+// 		return nil, err
+// 	}
+
+// 	if err := DB().Find(&data.AllDepartments).Error; err != nil {
+// 		return nil, err
+// 	}
+
+// 	data.SelectedDepartment = make(map[uint]string)
+// 	data.SelectedDepartment[data.Subject.DepartmentID] = "selected"
+
+// 	return data, nil
+// }
+
 func (t *Department) GetTeachers() ([]*Teacher, error) {
 	if err := DB().Raw(selectUniqueDepartmentTeachers, t.ID).Scan(&t.Teachers).Error; err != nil {
 		return nil, err

+ 1 - 1
templates/departments.html.tpl

@@ -26,7 +26,7 @@
   {{else}}
   <div class="list-group" id="myUL">
     {{range $department := .Data}}
-    <a class="list-group-item clearfix" href="/departments/{{$department.ID}}?format=html&tpl_content=%7B%7B.Models%7D%7D_show&tpl_layout=base">
+    <a class="list-group-item clearfix" href="/departments/{{$department.ID}}?{{query "tpl_layout" "base" "tpl_content" "departments_show"}}">
       <span class="glyphicon glyphicon-briefcase"></span>
       {{$department.Name}}
       <div class="text-right">

+ 54 - 0
templates/departments_add_update.html.tpl

@@ -0,0 +1,54 @@
+{{ define "content" }}
+
+<div class="container">
+
+  {{if .Options.Get "update"}}
+  <ol class="breadcrumb">
+    <li><a href="/departments?{{query "tpl_layout" "base" "tpl_content" "departments"}}">department</a></li>
+    <li class="active"><a href="#">Aggiorna department</a></li>
+  </ol>  
+  {{else}}
+  <ol class="breadcrumb">
+    <li><a href="/departments?{{query "tpl_layout" "base" "tpl_content" "departments"}}">department</a></li>
+    <li class="active"><a href="#">Aggiungi</a></li>
+  </ol>
+  {{end}}
+
+ {{if .Options.Get "update"}}
+  <div class="karmen-info-header">
+    <div class="row">
+      <div class="col-md-8">
+	<h1>Aggiorna department</h1>
+      </div>
+    </div>
+  </div>
+  
+  {{else}}
+  <h1 class="karmen-info-header">Crea nuovo department</h1>
+  {{end}}
+
+  {{if .Options.Get "update"}}
+  <form id="form_departments_add_update" action="/departments/{{.ID}}/update" method="POST" role="form" data-toggle="validator">
+  {{else}}
+  <form id="form_departments_add_update" action="/departments/add/" method="POST" role="form" data-toggle="validator">
+  {{end}}
+
+    <div class="form-group has-feedback">
+      <label class="control-label" for="department_name">Nome</label>
+      <input type="text" name="Name" class="form-control" id="department_name" placeholder="Nome" {{if .Options.Get "update"}} value="{{.Data.Department.Name}}" {{end}} required>
+    </div>
+        
+    <div class="form-group">
+      <button type="submit" class="btn btn-primary">Salva</button>
+      {{if .Options.Get "update"}}
+      <a href="/departments/{{.Data.ID}}?{{query "tpl_layout" "base" "tpl_content" "departments_show"}}" class="btn btn-default">Annulla</a>
+      {{else}}
+      <a href="/departments/?{{query "tpl_layout" "base" "tpl_content" "departments"}}" class="btn btn-default">Annulla</a>
+      {{end}}
+    </div>
+    
+  </form>
+
+</div>
+
+{{ end }}

+ 61 - 0
templates/departments_show.html.tpl

@@ -0,0 +1,61 @@
+{{ define "content" }}
+
+<div class="container">
+
+  <ol class="breadcrumb">
+    <li><a href="/departments?{{query "tpl_layout" "base" "tpl_content" "departments"}}">departments</a></li>
+    <li class="active"><a href="#">{{.Data.Name}}</a></li>
+  </ol>
+
+  <div class="karmen-info-header">
+    <div class="row">
+      <div class="col-md-8">
+	<h1>{{.Data.Name}}</h1>
+      </div>
+      <div class="col-md-4">
+
+	<div class="btn-group pull-right" role="group">
+	  <a href="/departments/add/?{{query "tpl_layout" "base" "tpl_content" "departments_add_update"}}" class="btn btn-success">
+	    <span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
+	    Crea
+	  </a>
+
+	  <a href="/departments/add/?{{query "tpl_layout" "base" "tpl_content" "departments_add_update" "update" "true"}}"  class="btn btn-primary">
+	    <span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
+	    Modifica
+	  </a>
+	  <button href="/departments/{{.Data.ID}}/delete"
+		  data-url="/departments/{{.Data.ID}}/delete"
+		  class="btn btn-danger karmen-ajax-delete">
+	    <span class="glyphicon glyphicon-trash" aria-hidden="true"></span>
+	    Elimina
+	  </button>
+	</div>
+
+      </div>
+    </div>
+  </div>
+
+  <div class="row">
+    <div class="col-md-12">
+      
+      <h2 class="karmen-relation-header">sub items</h2>
+      {{if .Data.Items}}
+      <div class="list-group" id="materie_list_group">
+    	<a href="/subjects/{{.Data.Subject.ID}}?{{query "tpl_layout" "base" "tpl_content" "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?{{query "tpl_layout" "base" "tpl_content" "activities_add_update"}}">qui</a> per
+    	modificare questa attività didattica.</p>
+      {{end}}
+    </div>
+    
+  </div>
+
+</div>    
+
+{{ end }}