add 'create a task for everyone, is available'

This commit is contained in:
2020-10-05 01:06:44 +00:00
parent 5ddee4296d
commit bfa935558b
5 changed files with 38 additions and 13 deletions

View File

@@ -4,15 +4,28 @@ from .models import Task, TaskList
class TaskAdmin(admin.ModelAdmin): class TaskAdmin(admin.ModelAdmin):
list_display = ("title", "task_list", "completed", "priority", "due_date") model = Task
list_filter = ("task_list",) fieldsets = (
ordering = ("priority",) (None, {
search_fields = ("title",) 'fields': (
'title',
'task_list',
'due_date',
'completed',
'completed_date',
'assigned_to',
'note',
'priority',
)
}),
)
list_display = ('title', 'task_list', 'completed', 'priority', 'due_date')
list_filter = ('task_list', )
ordering = ('priority', )
search_fields = ('title', )
def save_model(self, request, obj, form, change): def save_model(self, request, obj, form, change):
obj.created_by = request.user obj.created_by = request.user
if not obj.assigned_to:
obj.assigned_to = request.user
super().save_model(request, obj, form, change) super().save_model(request, obj, form, change)

View File

@@ -11,4 +11,5 @@ class TaskForm(forms.ModelForm):
'title', 'title',
'task_list', 'task_list',
'due_date', 'due_date',
'assigned_to',
] ]

View File

@@ -1,6 +1,7 @@
from django.conf import settings from django.conf import settings
from django.db import models from django.db import models
from django.db.models import Q from django.db.models import Q
from django.utils import timezone
class TaskQuerySet(models.QuerySet): class TaskQuerySet(models.QuerySet):
@@ -44,8 +45,6 @@ class Task(models.Model):
created_by = models.ForeignKey( created_by = models.ForeignKey(
settings.AUTH_USER_MODEL, settings.AUTH_USER_MODEL,
null=True,
blank=True,
related_name="todo_created_by", related_name="todo_created_by",
on_delete=models.CASCADE, on_delete=models.CASCADE,
) )
@@ -65,3 +64,12 @@ class Task(models.Model):
def __str__(self): def __str__(self):
return self.title return self.title
def save(self, *args, **kwargs):
if self.completed and not self.completed_date:
self.completed_date = timezone.now().date()
if not self.completed and self.completed_date:
self.completed_date = None
super().save(*args, **kwargs)

View File

@@ -18,10 +18,7 @@ def index(request):
if form.is_valid(): if form.is_valid():
task = form.save(commit=False) task = form.save(commit=False)
task.created_by = request.user task.created_by = request.user
task.assigned_to = request.user
task.save() task.save()
elif 'btn_checkbox' in request.POST: elif 'btn_checkbox' in request.POST:
@@ -39,7 +36,10 @@ def index(request):
else: else:
current_action = True current_action = True
current_user = int(request.POST['user']) if request.POST['user'] == 'all':
current_user = None
else:
current_user = int(request.POST['user'])
form = TaskForm() form = TaskForm()
tasks = deque(Task.taskmanager.get_tasks(user=current_user, completed=current_action)) tasks = deque(Task.taskmanager.get_tasks(user=current_user, completed=current_action))

View File

@@ -9,6 +9,9 @@
{% csrf_token %} {% csrf_token %}
<label>User <label>User
<select id="id_user" name="user"> <select id="id_user" name="user">
<option value="all">
Alle
</option>
{% for user in users %} {% for user in users %}
<option value="{{ user.id }}" {% if current_user == user.id %} selected {% endif %}> <option value="{{ user.id }}" {% if current_user == user.id %} selected {% endif %}>
{{ user.username }} {{ user.username }}
@@ -43,7 +46,7 @@
{% for task in group.list %} {% for task in group.list %}
<input type="checkbox" name="checkbox" value="{{ task.id }}" {% if task.completed %} checked {% endif %}> <input type="checkbox" name="checkbox" value="{{ task.id }}" {% if task.completed %} checked {% endif %}>
{{ task.title|truncatewords:10 }}</a> {{ task.title }}</a>
{{ task.due_date|date:"d.m.Y" }} {{ task.due_date|date:"d.m.Y" }}