Browse Source

Use publicize time instead

master
hewenyang 7 years ago
parent
commit
16726a08b1
  1. 12
      models/problem.js
  2. 4
      modules/index.js
  3. 1
      modules/problem.js

12
models/problem.js

@ -244,17 +244,14 @@ let model = db.define('problem', {
file_io_input_name: { type: Sequelize.TEXT },
file_io_output_name: { type: Sequelize.TEXT },
create_time: { type: Sequelize.DATE },
last_update: { type: Sequelize.DATE },
publicize_time: { type: Sequelize.DATE },
type: {
type: Sequelize.ENUM,
values: ['traditional', 'submit-answer', 'interaction']
}
}, {
timestamps: true,
createdAt: 'create_time',
updatedAt: 'last_update',
timestamps: false,
tableName: 'problem',
indexes: [
{
@ -264,10 +261,7 @@ let model = db.define('problem', {
fields: ['user_id'],
},
{
fields: ['create_time'],
},
{
fields: ['last_update'],
fields: ['publicize_time'],
},
]
});

4
modules/index.js

@ -47,10 +47,10 @@ app.get('/', async (req, res) => {
let contests = await Contest.query([1, 5], { is_public: true }, [['start_time', 'desc']]);
let problems = (await Problem.query([1, 5], { is_public: true }, [['last_update', 'desc']])).map(problem => ({
let problems = (await Problem.query([1, 5], { is_public: true }, [['publicize_time', 'desc']])).map(problem => ({
id: problem.id,
title: problem.title,
time: timeAgo.format(new Date(problem.last_update)),
time: timeAgo.format(new Date(problem.publicize_time)),
}));
res.render('index', {

1
modules/problem.js

@ -581,6 +581,7 @@ async function setPublic(req, res, is_public) {
problem.is_public = is_public;
problem.publicizer_id = res.locals.user.id;
problem.publicize_time = new Date();
await problem.save();
JudgeState.model.update(

Loading…
Cancel
Save