qa: New field to save exported state of qa
This commit is contained in:
parent
563cf14adc
commit
334512ef0d
@ -499,6 +499,7 @@ CREATE TABLE IF NOT EXISTS exercices_qa(
|
||||
state VARCHAR(255) NOT NULL,
|
||||
solved TIMESTAMP NULL,
|
||||
closed TIMESTAMP NULL,
|
||||
exported INTEGER NULL,
|
||||
FOREIGN KEY(id_exercice) REFERENCES exercices(id_exercice),
|
||||
FOREIGN KEY(id_team) REFERENCES teams(id_team)
|
||||
) DEFAULT CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
|
||||
|
21
libfic/qa.go
21
libfic/qa.go
@ -16,26 +16,27 @@ type QAQuery struct {
|
||||
Subject string `json:"subject"`
|
||||
Solved *time.Time `json:"solved,omitempty"`
|
||||
Closed *time.Time `json:"closed,omitempty"`
|
||||
Exported *int64 `json:"exported,omitempty"`
|
||||
}
|
||||
|
||||
// GetQAQuery retrieves the query with the given identifier.
|
||||
func GetQAQuery(id int64) (q *QAQuery, err error) {
|
||||
q = &QAQuery{}
|
||||
err = DBQueryRow("SELECT id_qa, id_exercice, id_team, authuser, creation, state, subject, solved, closed FROM exercices_qa WHERE id_qa = ?", id).Scan(&q.Id, &q.IdExercice, &q.IdTeam, &q.User, &q.Creation, &q.State, &q.Subject, &q.Solved, &q.Closed)
|
||||
err = DBQueryRow("SELECT id_qa, id_exercice, id_team, authuser, creation, state, subject, solved, closed, exported FROM exercices_qa WHERE id_qa = ?", id).Scan(&q.Id, &q.IdExercice, &q.IdTeam, &q.User, &q.Creation, &q.State, &q.Subject, &q.Solved, &q.Closed, &q.Exported)
|
||||
return
|
||||
}
|
||||
|
||||
// GetQAQueries returns a list of all QAQuery registered in the database.
|
||||
func GetQAQueries() (res []*QAQuery, err error) {
|
||||
var rows *sql.Rows
|
||||
if rows, err = DBQuery("SELECT id_qa, id_exercice, id_team, authuser, creation, state, subject, solved, closed FROM exercices_qa"); err != nil {
|
||||
if rows, err = DBQuery("SELECT id_qa, id_exercice, id_team, authuser, creation, state, subject, solved, closed, exported FROM exercices_qa"); err != nil {
|
||||
return
|
||||
}
|
||||
defer rows.Close()
|
||||
|
||||
for rows.Next() {
|
||||
q := &QAQuery{}
|
||||
if err = rows.Scan(&q.Id, &q.IdExercice, &q.IdTeam, &q.User, &q.Creation, &q.State, &q.Subject, &q.Solved, &q.Closed); err != nil {
|
||||
if err = rows.Scan(&q.Id, &q.IdExercice, &q.IdTeam, &q.User, &q.Creation, &q.State, &q.Subject, &q.Solved, &q.Closed, &q.Exported); err != nil {
|
||||
return
|
||||
}
|
||||
res = append(res, q)
|
||||
@ -48,14 +49,14 @@ func GetQAQueries() (res []*QAQuery, err error) {
|
||||
// GetQAQueries returns a list of all QAQuery registered for the Exercice.
|
||||
func (e *Exercice) GetQAQueries() (res []*QAQuery, err error) {
|
||||
var rows *sql.Rows
|
||||
if rows, err = DBQuery("SELECT id_qa, id_exercice, id_team, authuser, creation, state, subject, solved, closed FROM exercices_qa WHERE id_exercice = ?", e.Id); err != nil {
|
||||
if rows, err = DBQuery("SELECT id_qa, id_exercice, id_team, authuser, creation, state, subject, solved, closed, exported FROM exercices_qa WHERE id_exercice = ?", e.Id); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
|
||||
for rows.Next() {
|
||||
q := &QAQuery{}
|
||||
if err = rows.Scan(&q.Id, &q.IdExercice, &q.IdTeam, &q.User, &q.Creation, &q.State, &q.Subject, &q.Solved, &q.Closed); err != nil {
|
||||
if err = rows.Scan(&q.Id, &q.IdExercice, &q.IdTeam, &q.User, &q.Creation, &q.State, &q.Subject, &q.Solved, &q.Closed, &q.Exported); err != nil {
|
||||
return
|
||||
}
|
||||
res = append(res, q)
|
||||
@ -68,14 +69,14 @@ func (e *Exercice) GetQAQueries() (res []*QAQuery, err error) {
|
||||
// GetQAQueries returns a list of all QAQuery registered for the Exercice.
|
||||
func (t *Team) GetQAQueries() (res []*QAQuery, err error) {
|
||||
var rows *sql.Rows
|
||||
if rows, err = DBQuery("SELECT id_qa, id_exercice, id_team, authuser, creation, state, subject, solved, closed FROM exercices_qa WHERE id_team = ?", t.Id); err != nil {
|
||||
if rows, err = DBQuery("SELECT id_qa, id_exercice, id_team, authuser, creation, state, subject, solved, closed, exported FROM exercices_qa WHERE id_team = ?", t.Id); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
|
||||
for rows.Next() {
|
||||
q := &QAQuery{}
|
||||
if err = rows.Scan(&q.Id, &q.IdExercice, &q.IdTeam, &q.User, &q.Creation, &q.State, &q.Subject, &q.Solved, &q.Closed); err != nil {
|
||||
if err = rows.Scan(&q.Id, &q.IdExercice, &q.IdTeam, &q.User, &q.Creation, &q.State, &q.Subject, &q.Solved, &q.Closed, &q.Exported); err != nil {
|
||||
return
|
||||
}
|
||||
res = append(res, q)
|
||||
@ -88,7 +89,7 @@ func (t *Team) GetQAQueries() (res []*QAQuery, err error) {
|
||||
// GetQAQuery retrieves the query with the given identifier.
|
||||
func (e *Exercice) GetQAQuery(id int64) (q *QAQuery, err error) {
|
||||
q = &QAQuery{}
|
||||
err = DBQueryRow("SELECT id_qa, id_exercice, id_team, authuser, creation, state, subject, solved, closed FROM exercices_qa WHERE id_qa = ? AND id_exercice = ?", id, e.Id).Scan(&q.Id, &q.IdExercice, &q.IdTeam, &q.User, &q.Creation, &q.State, &q.Subject, &q.Solved, &q.Closed)
|
||||
err = DBQueryRow("SELECT id_qa, id_exercice, id_team, authuser, creation, state, subject, solved, closed, exported FROM exercices_qa WHERE id_qa = ? AND id_exercice = ?", id, e.Id).Scan(&q.Id, &q.IdExercice, &q.IdTeam, &q.User, &q.Creation, &q.State, &q.Subject, &q.Solved, &q.Closed, &q.Exported)
|
||||
return
|
||||
}
|
||||
|
||||
@ -99,13 +100,13 @@ func (e *Exercice) NewQAQuery(subject string, teamId *int64, user string, state
|
||||
} else if qid, err := res.LastInsertId(); err != nil {
|
||||
return nil, err
|
||||
} else {
|
||||
return &QAQuery{qid, e.Id, teamId, user, time.Now(), state, subject, solved, nil}, nil
|
||||
return &QAQuery{qid, e.Id, teamId, user, time.Now(), state, subject, solved, nil, nil}, nil
|
||||
}
|
||||
}
|
||||
|
||||
// Update applies modifications back to the database.
|
||||
func (q *QAQuery) Update() (int64, error) {
|
||||
if res, err := DBExec("UPDATE exercices_qa SET subject = ?, id_team = ?, authuser = ?, id_exercice = ?, creation = ?, state = ?, solved = ?, closed = ? WHERE id_qa = ?", q.Subject, q.IdTeam, q.User, q.IdExercice, q.Creation, q.State, q.Solved, q.Closed, q.Id); err != nil {
|
||||
if res, err := DBExec("UPDATE exercices_qa SET subject = ?, id_team = ?, authuser = ?, id_exercice = ?, creation = ?, state = ?, solved = ?, closed = ?, exported = ? WHERE id_qa = ?", q.Subject, q.IdTeam, q.User, q.IdExercice, q.Creation, q.State, q.Solved, q.Closed, q.Exported, q.Id); err != nil {
|
||||
return 0, err
|
||||
} else if nb, err := res.RowsAffected(); err != nil {
|
||||
return 0, err
|
||||
|
@ -20,7 +20,7 @@ export class QAQuery {
|
||||
}
|
||||
}
|
||||
|
||||
update({ id, id_exercice, id_team, user, creation, state, subject, solved, closed }) {
|
||||
update({ id, id_exercice, id_team, user, creation, state, subject, solved, closed, exported }) {
|
||||
this.id = id;
|
||||
this.id_team = id_team;
|
||||
this.id_exercice = id_exercice;
|
||||
@ -30,6 +30,7 @@ export class QAQuery {
|
||||
this.subject = subject;
|
||||
this.solved = solved;
|
||||
this.closed = closed;
|
||||
this.exported = exported;
|
||||
}
|
||||
|
||||
async delete() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user