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("Responses").
|
||||
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 {
|
||||
return db.DB().Debug().Where("end_time <> ?", time.Time{})
|
||||
return db.DB().Where("end_time <> ?", time.Time{})
|
||||
}).
|
||||
Preload("Questions").
|
||||
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
|
||||
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 {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -218,7 +218,7 @@ func SaveContest(db *Database, contest interface{}) (interface{}, error) {
|
|||
return contest, nil
|
||||
}
|
||||
|
||||
func (c *Contest) isAlwaysActive() bool {
|
||||
func (c *Contest) IsAlwaysActive() bool {
|
||||
return c.StartTime.IsZero() || c.EndTime.IsZero() || c.Duration == 0
|
||||
}
|
||||
|
||||
|
|
|
@ -60,7 +60,10 @@ func (model *Response) String() string {
|
|||
}
|
||||
|
||||
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) {
|
||||
|
@ -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
|
||||
|
||||
if isParticipant(r) && !response.Contest.isAlwaysActive() {
|
||||
if isParticipant(r) && !response.Contest.IsAlwaysActive() {
|
||||
if !response.IsActive() {
|
||||
return nil, errors.OutOfTime
|
||||
}
|
||||
|
|
|
@ -19,24 +19,41 @@
|
|||
|
||||
<h2 class="karmen-relation-header">Informazioni generali</h2>
|
||||
<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">
|
||||
{{if not (.Data.Contest.Date|zeroTime)}}
|
||||
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 -}}
|
||||
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> [La gara è scaduta o non ancora attiva]</strong>{{- end -}}
|
||||
{{else}}
|
||||
La gara è sempre attiva.
|
||||
{{end}}
|
||||
</dd>
|
||||
{{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">
|
||||
{{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}}
|
||||
Il partecipante non ha ancora visualizzato la prova.
|
||||
{{end}}
|
||||
</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}}
|
||||
{{if $isAdmin}}
|
||||
<dt class="col-sm-3">Ordine delle domande</dt>
|
||||
|
|
Loading…
Reference in a new issue