add task-update

This commit is contained in:
2022-01-19 16:51:35 +00:00
parent 8cfa3d6578
commit 728af8eb72
5 changed files with 78 additions and 20 deletions

View File

@@ -1,6 +1,8 @@
from django import forms
from django.contrib.admin.widgets import FilteredSelectMultiple
from django.contrib.auth.models import User
from django.forms.widgets import HiddenInput
from django.utils import timezone
from django.utils.translation import gettext_lazy as _
from .models import Task, TaskList, Document
@@ -34,7 +36,7 @@ class TaskAdminForm(forms.ModelForm):
].queryset.order_by("username")
class TaskForm(forms.ModelForm):
class TaskCreateForm(forms.ModelForm):
class Meta:
model = Task
@@ -66,6 +68,36 @@ class TaskForm(forms.ModelForm):
].queryset.order_by("username")
class TaskUpdateForm(forms.ModelForm):
class Meta:
model = Task
fields = [
"assigned_to",
"due_date",
"priority",
"note",
]
labels = {
"due_date": _("Fälligkeitsdatum"),
"assigned_to": _("Zuweisen an"),
}
widgets = {
"due_date": DateInput(
format=("%d-%m-%Y"),
)
}
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs) # to get the self.fields set
self.fields["assigned_to"].empty_label = "Alle"
self.fields["assigned_to"].queryset = self.fields[
"assigned_to"
].queryset.order_by("username")
class TaskListForm(forms.ModelForm):
users = forms.ModelMultipleChoiceField(
label="Benutzer",

View File

@@ -8,5 +8,6 @@ urlpatterns = [
path("", views.index, name="tasks"),
path("task-create/", TaskCreate.as_view(), name="task-create"),
path("<int:pk>/docu-create/", DocumentCreate.as_view(), name="docu-create"),
path("<int:pk>/update/", TaskUpdate.as_view(), name="task-update"),
path("<int:pk>/detail/", TaskDetail.as_view(), name="task-detail"),
]

View File

@@ -16,8 +16,8 @@ from authentications.decorators import authenticated_user
from documents.api import get_pad_link
from documents.etherpadlib import add_ep_cookie
from .forms import TaskForm, DocumentForm
from .models import Task, TaskList, Document
from .forms import DocumentForm, TaskCreateForm, TaskUpdateForm
from .models import Document, Task, TaskList
logger = logging.getLogger(__name__)
@@ -54,7 +54,6 @@ def index(request):
else:
show_all_tasks = False
form = TaskForm()
tasks = deque(
Task.taskmanager.get_tasks(
user=request.user.id,
@@ -66,7 +65,6 @@ def index(request):
tasklists = deque(TaskList.objects.all())
context = {
"formset": form,
"tasks": tasks,
"tasklists": tasklists,
"current_user": request.user.id,
@@ -78,7 +76,7 @@ def index(request):
return render(request, "tasks/index.html", context)
def __add_log_action(request, form, add=True):
def add_log_action(request, form, add=True):
obj = form.save()
content_type = ContentType.objects.get(app_label="tasks", model="task")
change_message = construct_change_message(form, None, add)
@@ -102,25 +100,29 @@ class TaskCreate(LoginRequiredMixin, CreateView):
model = Task
success_url = reverse_lazy("tasks")
template_name = "tasks/task_create.html"
form_class = TaskForm
form_class = TaskCreateForm
def form_valid(self, form):
form.instance.created_by = self.request.user
__add_log_action(self.request, form, True)
add_log_action(self.request, form, True)
return super().form_valid(form)
class TaskUpdate(LoginRequiredMixin, UpdateView):
model = Task
success_url = reverse_lazy("tasks")
template_name = "tasks/task_create.html"
form_class = TaskForm
template_name = "tasks/task_update.html"
form_class = TaskUpdateForm
def form_valid(self, form):
__add_log_action(self.request, form, False)
add_log_action(self.request, form, False)
return super().form_valid(form)
def get_success_url(self):
kwargs = {
"pk": self.kwargs.get("pk"),
}
return reverse("task-detail", kwargs=kwargs)
class TaskDetail(LoginRequiredMixin, DetailView):
model = Task
@@ -161,7 +163,6 @@ class TaskDetail(LoginRequiredMixin, DetailView):
class DocumentCreate(LoginRequiredMixin, CreateView):
model = Document
# success_url = reverse_lazy('tasks')
template_name = "tasks/docu_create.html"
form_class = DocumentForm
@@ -169,12 +170,10 @@ class DocumentCreate(LoginRequiredMixin, CreateView):
def get_initial(self):
self.task_id = self.kwargs.get("pk")
task = Task.objects.get(pk=self.task_id)
context = {
"task": task,
}
return context
def get_context_data(self, **kwargs):
@@ -184,8 +183,7 @@ class DocumentCreate(LoginRequiredMixin, CreateView):
return context
def get_success_url(self):
context = {
kwargs = {
"pk": self.task_id,
}
return reverse("task-detail", kwargs=context)
return reverse("task-detail", kwargs=kwargs)

View File

@@ -7,7 +7,7 @@
<a class="button" href="{% url 'tasks' %}">Zurück</a>
</div>
<div class="cell large-3 medium-4 small-12">
<a class="button" href="{% url 'admin:tasks_task_change' task.id %}">Task bearbeiten</a>
<a class="button" href="{% url 'task-update' task.id %}">Task bearbeiten</a>
</div>
<div class="cell large-3 medium-4 small-12">
<a class="button" href="{% url 'docu-create' task.id %}">Etherpad hinzufügen</a>

View File

@@ -0,0 +1,27 @@
{% extends 'layout.html' %}
{% block content %}
<div class="grid-container">
<div class="grid-x padding-top-1">
<div class="cell large-3 medium-4 small-12">
<a class="button" href="{% url 'task-detail' task.id %}">Zurück</a>
</div>
<div class="cell large-3 medium-4 small-12">
<a class="button" href="{% url 'admin:tasks_task_change' task.id %}">Task im Admin bearbeiten</a>
</div>
</div>
<hr>
<h2>Task {{ task.title }} bearbeiten</h2>
<div class="grid-x">
<div class="cell">
<form action="" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" class="button" name="btn_input" value="Bearbeiten">
</form>
</div>
</div>
</div>
{% endblock %}