Skip to content

Commit

Permalink
User Story #1963 Отображать последнего автора первичной и итоговой оц…
Browse files Browse the repository at this point in the history
…енки для руководителя цикла.

Руководители циклов хотят видеть на странице оценок каждого параметра ФИО эксперта, ответственного за выставление как первичных, так и итоговых оценок, и время изменения оценки.
К score должны быть добавлены два новых поля: автор и время. Автор - пользователь, создавший или изменивший score, время - время изменения. Значения этих полей должны обновляться при каждом создании или изменении score.
При создании или изменении ревизии 0 в качестве автора должен быть записан текущий пользователь, в качестве времени - текущее время.
При создании ревизии 1 (первичной оценки), в нее должны быть скопированы вместе с оценками также автор и время (в этот момент изменилась ревизия 0, и обновились ее автор и время).
Изменения на странице

Добавляется блок "Автор оценки" состоящий из двух столбцов. Столбцы имеют одинаковую ширину.
Блок расположен в 20 px под блоком "Примечание".
Заголовки:
левой колонки "Автор первичной оценки" формата h2;
правой колонки "Автор текущей оценки" формата h2.
В 3 px от заголовков расположен текст с автором и датой изменения:
левая колонка содержит данные о последнем изменении первичной оценки;
правая колонка содержит данные о последнем изменении текущей оценки.
Формат текста:
Автор изменения отображается как "Имя + Отчество + Фамилия" или при их отсутствии его логин;
Через запятую от автора изменения отображается дата изменения в формате "5 сентября 2012".
Пример текста: "Владимир Томко, 5 сентября 2012"
Поведение

Блок показывается только руководителю цикла.
На этапе "подготовка" данный блок не отображается.
На этапах "первичная оценка" и "результаты":
блок не отображается если нет оценки;
если есть оценка, то отображается только левая колонка блока.
На этапах "взаимодействие", "подведение итогов" и публикация результатов:
блок не отображается если нет оценки;
если есть только одна ревизия оценки, то отображается только левая колонка блока;
если есть две ревизии оценки, отображается и левая и правая колонка блока.
http://cdn.joxi.ru/uploads/prod/2014/02/28/086/381/e3360bdf1e2bf0b4541e1a730f51400ca5e4cc7b.jpg
  • Loading branch information
vintorez committed May 16, 2014
1 parent 590c22e commit 65b148e
Show file tree
Hide file tree
Showing 9 changed files with 497 additions and 130 deletions.
5 changes: 1 addition & 4 deletions exmo/auth/helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,9 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#

"""
Помощники для бекенда. По помощнику на каждый класс модели.
"""
import re
from types import NoneType

from exmo2010.models import Task, Score, Parameter
from exmo2010.models.monitoring import Monitoring, RATE, RES, INT, PUB, FIN

Expand Down

Large diffs are not rendered by default.

6 changes: 4 additions & 2 deletions exmo/exmo2010/models/score.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
from django.contrib.auth.models import User
from django.core.exceptions import ValidationError
from django.db import models
from django.utils.translation import ugettext, ugettext_lazy as _
Expand Down Expand Up @@ -71,8 +72,9 @@ class Meta(BaseModel.Meta):

links = models.TextField(null=True, blank=True, verbose_name=_('Links'))
recommendations = models.TextField(null=True, blank=True, verbose_name=_('Recommendations'))
created = models.DateTimeField(null=True, blank=True, auto_now_add=True)
edited = models.DateTimeField(null=True, blank=True, auto_now=True)
created = models.DateTimeField(auto_now_add=True, null=True)
last_modified = models.DateTimeField(auto_now=True, null=True)
editor = models.ForeignKey(User, null=True, blank=True, verbose_name=_('Editor'))
revision = models.PositiveIntegerField(default=REVISION_DEFAULT, choices=REVISION_CHOICE)
accomplished = models.BooleanField(default=True)

Expand Down
Loading

0 comments on commit 65b148e

Please sign in to comment.