From 0e9679119c44b439c7a9e8c15baf3436a0e47925 Mon Sep 17 00:00:00 2001 From: bashmak Date: Tue, 20 Feb 2018 00:14:35 +0300 Subject: [PATCH] Fix bugs --- taskapp/forms.py | 17 ++++++- taskapp/locale/ru/LC_MESSAGES/django.po | 5 ++ taskapp/models.py | 2 +- taskapp/templates/taskapp/add_edit_task.html | 2 +- taskapp/templates/taskapp/details.html | 9 +++- taskapp/views.py | 50 +++++++++++--------- 6 files changed, 57 insertions(+), 28 deletions(-) diff --git a/taskapp/forms.py b/taskapp/forms.py index 326a16c..79fcbd3 100644 --- a/taskapp/forms.py +++ b/taskapp/forms.py @@ -2,13 +2,28 @@ from django.utils.translation import ugettext as _ from django import forms from .models import Task, ExtraComment, _delta_add_days from accounts_app.models import UserProfile +from taskapp.handle import TaskException class TaskFrm(forms.ModelForm): - def __init__(self, *args, **kwargs): + def __init__(self, initial_abon=None, *args, **kwargs): super(TaskFrm, self).__init__(*args, **kwargs) self.fields['recipients'].queryset = UserProfile.objects.filter(is_admin=True) + if initial_abon is not None: + # fetch profiles that has been attached on group of selected subscriber + profile_ids = initial_abon.group.profiles.filter(is_active=True).filter(is_admin=True).values_list('pk') + if len(profile_ids) > 0: + self.fields['recipients'].initial = [pi[0] for pi in profile_ids] + else: + raise TaskException(_('No responsible employee for the users group')) + + def save(self, commit=True): + abon = self.data.get('abon') or None + if abon is None: + raise TaskException(_('You must select the subscriber')) + return super(TaskFrm, self).save(commit) + class Meta: model = Task exclude = ['time_of_create', 'author', 'device'] diff --git a/taskapp/locale/ru/LC_MESSAGES/django.po b/taskapp/locale/ru/LC_MESSAGES/django.po index fbd98ed..5ecd465 100644 --- a/taskapp/locale/ru/LC_MESSAGES/django.po +++ b/taskapp/locale/ru/LC_MESSAGES/django.po @@ -427,6 +427,8 @@ msgstr "Время ожидания истекло -%(time_left)s" msgid "fix form errors" msgstr "исправте ошибки формы" +msgid "Task has successfully created" +msgstr "Задача успешно создана" msgid "Failed tasks" msgstr "Проваленные задачи" @@ -448,3 +450,6 @@ msgstr "Задачи, которые необходимо выполнить" msgid "locality %s. Task type - %s. " msgstr "с. %s. Тип задачи - %s. " + +msgid "Recipients" +msgstr "Исполнители" diff --git a/taskapp/models.py b/taskapp/models.py index 86678e9..b894035 100644 --- a/taskapp/models.py +++ b/taskapp/models.py @@ -61,7 +61,7 @@ def _delta_add_days(): class Task(models.Model): descr = models.CharField(_('Description'), max_length=128, null=True, blank=True) - recipients = models.ManyToManyField(settings.AUTH_USER_MODEL, related_name='them_task') + recipients = models.ManyToManyField(settings.AUTH_USER_MODEL, verbose_name=_('Recipients'), related_name='them_task') author = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='+', on_delete=models.SET_NULL, null=True, blank=True, verbose_name=_('Task author')) priority = models.CharField(_('A priority'), max_length=1, choices=TASK_PRIORITIES, default=TASK_PRIORITIES[2][0]) out_date = models.DateField(_('Reality'), null=True, blank=True, default=_delta_add_days) diff --git a/taskapp/templates/taskapp/add_edit_task.html b/taskapp/templates/taskapp/add_edit_task.html index e9603fa..2f5596a 100644 --- a/taskapp/templates/taskapp/add_edit_task.html +++ b/taskapp/templates/taskapp/add_edit_task.html @@ -99,7 +99,7 @@ {% if task %}
- {% include 'taskapp/details.html' with task=task %} + {% include 'taskapp/details.html' with task=task time_diff=time_diff %}
{% include "taskapp/comments/task_comments.html" with comments=comments task_uid=task.pk comment_form=comment_form %} diff --git a/taskapp/templates/taskapp/details.html b/taskapp/templates/taskapp/details.html index af7eacc..0fd0773 100644 --- a/taskapp/templates/taskapp/details.html +++ b/taskapp/templates/taskapp/details.html @@ -5,9 +5,14 @@
-

{% trans 'Description' %}: {{ task.descr }}

+

{% trans 'Description' %}: {{ task.descr|default:'' }}

- {% trans 'Task author' %}: {{ task.author.username }}
+ {% trans 'Task author' %}: + {% if task and task.author %} + {{ task.author.username }} + {% else %} + {% trans 'Not assigned' %} + {% endif %}
{% trans 'Implementers' %}: