Remove debug statements and improve contest's timing information
This commit is contained in:
parent
c67608dc6d
commit
919fda3637
3 changed files with 31 additions and 11 deletions
|
@ -94,10 +94,10 @@ func (c *Contest) Read(db *Database, args map[string]string, w http.ResponseWrit
|
||||||
Preload("Participants").
|
Preload("Participants").
|
||||||
Preload("Responses").
|
Preload("Responses").
|
||||||
Preload("StartedResponses", func(tx *gorm.DB) *gorm.DB {
|
Preload("StartedResponses", func(tx *gorm.DB) *gorm.DB {
|
||||||
return db.DB().Debug().Where("start_time <> ?", time.Time{})
|
return db.DB().Where("start_time <> ?", time.Time{})
|
||||||
}).
|
}).
|
||||||
Preload("SavedResponses", func(tx *gorm.DB) *gorm.DB {
|
Preload("SavedResponses", func(tx *gorm.DB) *gorm.DB {
|
||||||
return db.DB().Debug().Where("end_time <> ?", time.Time{})
|
return db.DB().Where("end_time <> ?", time.Time{})
|
||||||
}).
|
}).
|
||||||
Preload("Questions").
|
Preload("Questions").
|
||||||
First(&contest, id).Error; err != nil {
|
First(&contest, id).Error; err != nil {
|
||||||
|
@ -182,7 +182,7 @@ func (c *Contest) Update(db *Database, args map[string]string, w http.ResponseWr
|
||||||
|
|
||||||
// Optionally reset participant start time
|
// Optionally reset participant start time
|
||||||
if contest.(*Contest).ResetStartTime {
|
if contest.(*Contest).ResetStartTime {
|
||||||
err := db._db.Debug().Model(&Response{}).Where("contest_id=?", contest.(*Contest).ID).Update("start_time", time.Time{}).Error
|
err := db._db.Model(&Response{}).Where("contest_id=?", contest.(*Contest).ID).Update("start_time", time.Time{}).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -218,7 +218,7 @@ func SaveContest(db *Database, contest interface{}) (interface{}, error) {
|
||||||
return contest, nil
|
return contest, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Contest) isAlwaysActive() bool {
|
func (c *Contest) IsAlwaysActive() bool {
|
||||||
return c.StartTime.IsZero() || c.EndTime.IsZero() || c.Duration == 0
|
return c.StartTime.IsZero() || c.EndTime.IsZero() || c.Duration == 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -60,7 +60,10 @@ func (model *Response) String() string {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (model *Response) IsActive() bool {
|
func (model *Response) IsActive() bool {
|
||||||
return (!time.Now().Before(model.Contest.StartTime) && !time.Now().After(model.Contest.EndTime)) || model.Contest.isAlwaysActive()
|
if !model.StartTime.IsZero() {
|
||||||
|
return !time.Now().After(model.EndTime) || model.Contest.IsAlwaysActive()
|
||||||
|
}
|
||||||
|
return (!time.Now().Before(model.Contest.StartTime) && !time.Now().After(model.Contest.EndTime)) || model.Contest.IsAlwaysActive()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (model *Response) SetCreatorID(id uint) {
|
func (model *Response) SetCreatorID(id uint) {
|
||||||
|
@ -216,7 +219,7 @@ func (model *Response) Update(db *Database, args map[string]string, w http.Respo
|
||||||
|
|
||||||
// Write StartTime for the first time if user is a participant
|
// Write StartTime for the first time if user is a participant
|
||||||
|
|
||||||
if isParticipant(r) && !response.Contest.isAlwaysActive() {
|
if isParticipant(r) && !response.Contest.IsAlwaysActive() {
|
||||||
if !response.IsActive() {
|
if !response.IsActive() {
|
||||||
return nil, errors.OutOfTime
|
return nil, errors.OutOfTime
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,24 +19,41 @@
|
||||||
|
|
||||||
<h2 class="karmen-relation-header">Informazioni generali</h2>
|
<h2 class="karmen-relation-header">Informazioni generali</h2>
|
||||||
<dl class="row">
|
<dl class="row">
|
||||||
<dt class="col-sm-3">Periodo di attività</dt>
|
<dt class="col-sm-3">Finestra di prima visualizzazione</dt>
|
||||||
<dd class="col-sm-9">
|
<dd class="col-sm-9">
|
||||||
{{if not (.Data.Contest.Date|zeroTime)}}
|
{{if not (.Data.Contest.Date|zeroTime)}}
|
||||||
Giorno {{.Data.Contest.Date|prettyDate}} dalle ore {{.Data.Contest.StartTime|convertTime}} alle ore {{.Data.Contest.EndTime|convertTime}}
|
E' possibile visualizzare la prova di gara per la prima volta il giorno {{.Data.Contest.Date|prettyDate}} dalle ore {{.Data.Contest.StartTime|convertTime}} alle ore {{.Data.Contest.EndTime|convertTime}}
|
||||||
{{- if not .Data.IsActive -}}<strong> [Scaduta o non ancora attiva]</strong>{{- end -}}
|
{{- if not .Data.IsActive -}}<strong> [La gara è scaduta o non ancora attiva]</strong>{{- end -}}
|
||||||
{{else}}
|
{{else}}
|
||||||
La gara è sempre attiva.
|
La gara è sempre attiva.
|
||||||
{{end}}
|
{{end}}
|
||||||
</dd>
|
</dd>
|
||||||
{{if not (.Data.Contest.Date|zeroTime)}}
|
{{if not (.Data.Contest.Date|zeroTime)}}
|
||||||
<dt class="col-sm-3">Prima visualizzazione</dt>
|
<dt class="col-sm-3">Data e ora della prima visualizzazione</dt>
|
||||||
<dd class="col-sm-9">
|
<dd class="col-sm-9">
|
||||||
{{if not (.Data.StartTime|zeroTime)}}
|
{{if not (.Data.StartTime|zeroTime)}}
|
||||||
Giorno {{.Data.StartTime|prettyDate}} alle ore {{.Data.StartTime|convertTime}}
|
La prova di gara è stata visualizzata per la prima volta il giorno {{.Data.StartTime|prettyDate}} alle ore {{.Data.StartTime|convertTime}}
|
||||||
{{else}}
|
{{else}}
|
||||||
Il partecipante non ha ancora visualizzato la prova.
|
Il partecipante non ha ancora visualizzato la prova.
|
||||||
{{end}}
|
{{end}}
|
||||||
</dd>
|
</dd>
|
||||||
|
<dt class="col-sm-3">Durata della gara</dt>
|
||||||
|
<dd class="col-sm-9">
|
||||||
|
{{if not .Data.Contest.IsAlwaysActive}}
|
||||||
|
{{.Data.Contest.Duration}} min
|
||||||
|
{{else}}
|
||||||
|
La gara ha una durata illimitata.
|
||||||
|
{{end}}
|
||||||
|
</dd>
|
||||||
|
<dt class="col-sm-3">Finestra di consegna</dt>
|
||||||
|
<dd class="col-sm-9">
|
||||||
|
{{if not (.Data.Contest.Date|zeroTime)}}
|
||||||
|
E' possibile consegnare la prova entro il giorno {{.Data.Contest.Date|prettyDate}} fino alle ore {{.Data.EndTime|convertTime}}
|
||||||
|
{{- if not .Data.IsActive -}}<strong> [Termini per la consegna scaduti]</strong>{{- end -}}
|
||||||
|
{{else}}
|
||||||
|
La gara è sempre attiva.
|
||||||
|
{{end}}
|
||||||
|
</dd>
|
||||||
{{end}}
|
{{end}}
|
||||||
{{if $isAdmin}}
|
{{if $isAdmin}}
|
||||||
<dt class="col-sm-3">Ordine delle domande</dt>
|
<dt class="col-sm-3">Ordine delle domande</dt>
|
||||||
|
|
Loading…
Reference in a new issue