Use new error template for errors

This commit is contained in:
Andrea Fazzi 2020-01-28 15:04:28 +01:00
parent 55a3605bd0
commit f7d0fa4b39
10 changed files with 58 additions and 59 deletions

View file

@ -1 +1 @@
0.1.0-6-gb421739 0.1.0-9-g5616fce-master

View file

@ -268,16 +268,29 @@ func (model *Participant) Read(db *Database, args map[string]string, w http.Resp
} }
if strconv.Itoa(int(participant.SchoolID)) != getUserIDFromToken(r) { if strconv.Itoa(int(participant.SchoolID)) != getUserIDFromToken(r) {
// setFlashMessage(w, r, "notAuthorized")
return nil, errors.NotAuthorized return nil, errors.NotAuthorized
} }
if err := db._db.Preload("User").Preload("School").Preload("School.Participants").Preload("Category").First(&participant, id).Error; err != nil { if err := db._db.
Preload("User").
Preload("School").
Preload("School.Participants").
Preload("Category").
First(&participant, id).Error; err != nil {
return nil, err return nil, err
} }
} else { } else {
if err := db._db.Preload("User").Preload("School").Preload("School.Participants").Preload("Responses").Preload("Contests").Preload("Category").First(&participant, id).Error; err != nil { if err := db._db.
Preload("User").
Preload("Creator").
Preload("Updater").
Preload("School").
Preload("School.Participants").
Preload("Responses").
Preload("Contests").
Preload("Category").
First(&participant, id).Error; err != nil {
return nil, err return nil, err
} }
@ -295,7 +308,12 @@ func (model *Participant) ReadAll(db *Database, args map[string]string, w http.R
if err != nil { if err != nil {
return nil, err return nil, err
} }
if err := db._db.Preload("Category").Preload("School").Preload("Contests").Order("lastname").Find(&participants, &Participant{SchoolID: uint(schoolId)}).Error; err != nil { if err := db._db.
Preload("Category").
Preload("School").
Preload("Contests").
Order("lastname").
Find(&participants, &Participant{SchoolID: uint(schoolId)}).Error; err != nil {
return nil, err return nil, err
} }
} else { } else {
@ -359,11 +377,7 @@ func (model *Participant) Update(db *Database, args map[string]string, w http.Re
if user, err := participant.(*Participant).exists(db); err == nil && user != nil { if user, err := participant.(*Participant).exists(db); err == nil && user != nil {
if user.ID != participant.(*Participant).UserID { if user.ID != participant.(*Participant).UserID {
// err := setFlashMessage(w, r, "participantExists") return nil, errors.ParticipantExists
// if err != nil {
// return nil, err
// }
return participant, nil
} }
} else if err != nil { } else if err != nil {
return nil, err return nil, err
@ -382,7 +396,9 @@ func (model *Participant) Update(db *Database, args map[string]string, w http.Re
return nil, errors.CategoryExists return nil, errors.CategoryExists
} }
if err := db._db.Where([]uint(participant.(*Participant).ContestIDs)).Find(&participant.(*Participant).Contests).Error; err != nil { if err := db._db.
Where([]uint(participant.(*Participant).ContestIDs)).
Find(&participant.(*Participant).Contests).Error; err != nil {
return nil, err return nil, err
} }
@ -393,7 +409,10 @@ func (model *Participant) Update(db *Database, args map[string]string, w http.Re
return nil, err return nil, err
} }
if err := db._db.Model(participant).Association("Contests").Replace(participant.(*Participant).Contests).Error; err != nil { if err := db._db.
Model(participant).
Association("Contests").
Replace(participant.(*Participant).Contests).Error; err != nil {
return nil, err return nil, err
} }
@ -406,7 +425,10 @@ func (model *Participant) Update(db *Database, args map[string]string, w http.Re
if isAdministrator(r) { if isAdministrator(r) {
var response Response var response Response
if err := db._db.First(&response, &Response{ParticipantID: participant.(*Participant).ID}).Error; err != nil { if err := db._db.First(
&response,
&Response{ParticipantID: participant.(*Participant).ID},
).Error; err != nil {
return nil, err return nil, err
} }

View file

@ -228,7 +228,7 @@ func (model *School) Read(db *Database, args map[string]string, w http.ResponseW
func (model *School) ReadAll(db *Database, args map[string]string, w http.ResponseWriter, r *http.Request) (interface{}, error) { func (model *School) ReadAll(db *Database, args map[string]string, w http.ResponseWriter, r *http.Request) (interface{}, error) {
var schools []*School var schools []*School
if err := db._db. if err := db._db.
Preload("Participant"). Preload("Participants").
Preload("Participants.Category"). Preload("Participants.Category").
Order("code"). Order("code").
Find(&schools).Error; err != nil { Find(&schools).Error; err != nil {
@ -315,7 +315,9 @@ func SaveSchool(db *Database, school interface{}) (interface{}, error) {
func (model *School) HasCategory(db *Database, participant *Participant) (bool, error) { func (model *School) HasCategory(db *Database, participant *Participant) (bool, error) {
var participants []*Participant var participants []*Participant
if err := db._db.Where("category_id = ? AND school_id = ? AND id <> ?", participant.CategoryID, model.ID, participant.ID).Find(&participants).Error; err != nil { if err := db._db.
Where("category_id = ? AND school_id = ? AND id <> ?", participant.CategoryID, model.ID, participant.ID).
Find(&participants).Error; err != nil {
return false, err return false, err
} }
return len(participants) > 0, nil return len(participants) > 0, nil

View file

@ -50,6 +50,7 @@ var (
"mod2": mod2, "mod2": mod2,
"toLower": toLower, "toLower": toLower,
"anchor": anchor, "anchor": anchor,
"alertLink": alertLink,
"html": html, "html": html,
"field": field, "field": field,
"modelName": modelName, "modelName": modelName,
@ -185,6 +186,10 @@ func anchor(text, url string) template.HTML {
return template.HTML(fmt.Sprintf("<a href=\"%s\">%s</a>", url, text)) return template.HTML(fmt.Sprintf("<a href=\"%s\">%s</a>", url, text))
} }
func alertLink(text, url string) template.HTML {
return template.HTML(fmt.Sprintf("<a class=\"alert-link\" href=\"%s\">%s</a>", url, text))
}
func toLower(text string) string { func toLower(text string) string {
return strings.ToLower(text) return strings.ToLower(text)
} }

View file

@ -1,11 +1,4 @@
{{ define "content" }} {{ define "content" }}
<div class="container"> {{$options := `title: "Errore nella creazione/aggiornamento di un partecipante"`}}
<h1 class="border-bottom">Errore</h1> {{template "error" dict "options" ($options|yaml) "data" .Data}}
<p> {{end}}
Si è verificato un errore durante la creazione o l'aggiornamento di un partecipante: <strong>{{.Data}}</strong>
</p>
<p>
Clicca {{.Referer|anchor "qui"}} per tornare al modulo di creazione del partecipante.
</p>
</div>
{{ end }}

View file

@ -1,6 +1,4 @@
{{ define "content" }} {{ define "content" }}
{{$options := ` {{$options := `title: "Errore nella creazione/aggiornamento di un partecipante"`}}
title: "Errore nella creazione/aggiornamento di un partecipante"
`}}
{{template "error" dict "options" ($options|yaml) "data" .Data}} {{template "error" dict "options" ($options|yaml) "data" .Data}}
{{end}} {{end}}

View file

@ -1,11 +1,4 @@
{{ define "content" }} {{ define "content" }}
<div class="container"> {{$options := `title: "Errore nella gestione della prova di gara"`}}
<h1 class="border-bottom">Errore</h1> {{template "error" dict "options" ($options|yaml) "data" .Data}}
<p> {{end}}
Si è verificato nella gestione della prova di gara: <strong>{{.Data}}</strong>
</p>
<p>
Clicca {{.Claims|userId|show "Participant"|anchor "qui"}} per tornare alle informazioni sul partecipante.
</p>
</div>
{{ end }}

View file

@ -1,11 +1,4 @@
{{ define "content" }} {{ define "content" }}
<div class="container"> {{$options := `title: "Errore nella creazione/aggiornamento di un partecipante"`}}
<h1 class="border-bottom">Errore</h1> {{template "error" dict "options" ($options|yaml) "data" .Data}}
<p> {{end}}
Si è verificato un errore durante la creazione o l'aggiornamento di un partecipante: <strong>{{.Data}}</strong>
</p>
<p>
Clicca {{create "Participant"|anchor "qui"}} per tornare al modulo di creazione del partecipante.
</p>
</div>
{{ end }}

View file

@ -1,11 +1,4 @@
{{ define "content" }} {{ define "content" }}
<div class="container"> {{$options := `title: "Errore nella creazione/aggiornamento di una scuola"`}}
<h1 class="border-bottom">Errore</h1> {{template "error" dict "options" ($options|yaml) "data" .Data}}
<p> {{end}}
Si è verificato un errore durante la creazione o l'aggiornamento di una scuola: <strong>{{.Data}}</strong>
</p>
<p>
Clicca {{create "School"|anchor "qui"}} per tornare al modulo di iscrizione.
</p>
</div>
{{ end }}

View file

@ -6,7 +6,7 @@
</h4> </h4>
{{.data}} {{.data}}
{{if .data.Referer}} {{if .data.Referer}}
Clicca {{.data.Referer|anchor "qui"}} per tornare all'azione precedente. Clicca {{.data.Referer|alertLink "qui"}} per tornare all'azione precedente.
{{end}} {{end}}
</div> </div>
<p> <p>