add task-update
This commit is contained in:
@@ -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",
|
||||
|
||||
@@ -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"),
|
||||
]
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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>
|
||||
|
||||
27
fet2020/templates/tasks/task_update.html
Normal file
27
fet2020/templates/tasks/task_update.html
Normal 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 %}
|
||||
Reference in New Issue
Block a user