added project delete + changed to list template
This commit is contained in:
@ -82,6 +82,7 @@ main {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 2em;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
button, input, select {
|
||||
|
@ -5,6 +5,7 @@
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 1em;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.list-header {
|
||||
@ -22,6 +23,7 @@
|
||||
gap: 0.8em;
|
||||
flex-direction: column;
|
||||
padding: 0;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.list li {
|
||||
|
@ -33,7 +33,7 @@ window.addEventListener("load", () => {
|
||||
|
||||
document.querySelectorAll(".list li").forEach(row => {
|
||||
let id = row.dataset.id
|
||||
row.querySelector("button.edit").addEventListener("click", () => {
|
||||
row.querySelector("button.edit")?.addEventListener("click", () => {
|
||||
window.location.href = `${id}/`
|
||||
})
|
||||
|
||||
|
@ -1,4 +1,8 @@
|
||||
.productive {
|
||||
box-shadow: 0.2em 0 0 var(--accent) inset;
|
||||
}
|
||||
|
||||
/*
|
||||
.projects {
|
||||
width: 100%;
|
||||
max-width: 40em;
|
||||
@ -21,4 +25,5 @@
|
||||
|
||||
.projects tbody tr:nth-child(even) {
|
||||
background-color: var(--dark2);
|
||||
}
|
||||
}
|
||||
*/
|
@ -1,5 +1,16 @@
|
||||
onBeforeDelete = async row => {
|
||||
await req(`${row.dataset.id}/on_delete/`).then(res => {
|
||||
return res.json()
|
||||
}).then(res => {
|
||||
if (res.status === "success") {
|
||||
let popup = document.getElementById("delete-popup")
|
||||
popup.querySelector(".task-count").innerText = res.tasks
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
window.addEventListener("load", () => {
|
||||
document.querySelectorAll(".projects tbody tr").forEach(row => {
|
||||
document.querySelectorAll(".list li").forEach(row => {
|
||||
let id = row.dataset.id
|
||||
let selector = row.querySelector(".parent-sel")
|
||||
selector.addEventListener("change", () => {
|
||||
@ -10,9 +21,5 @@ window.addEventListener("load", () => {
|
||||
body: fd
|
||||
})
|
||||
})
|
||||
|
||||
row.querySelector("button.edit").addEventListener("click", () => {
|
||||
window.location.href = `${id}/`
|
||||
})
|
||||
})
|
||||
})
|
@ -59,6 +59,15 @@ def parent_on_delete_view(request, id):
|
||||
"tasks": tasks
|
||||
})
|
||||
|
||||
def project_on_delete_view(request, id):
|
||||
project = get_object_or_404(Project, id=id)
|
||||
tasks = project.task_set.count()
|
||||
|
||||
return JsonResponse({
|
||||
"status": "success",
|
||||
"tasks": tasks
|
||||
})
|
||||
|
||||
def new_parent_view(request):
|
||||
context = {
|
||||
"class": "parent"
|
||||
@ -72,6 +81,11 @@ def new_parent_view(request):
|
||||
|
||||
def project_view(request, id):
|
||||
project = get_object_or_404(Project, id=id)
|
||||
|
||||
if request.method == "DELETE":
|
||||
project.delete()
|
||||
return JsonResponse({"status": "success"})
|
||||
|
||||
context = {
|
||||
"class": "project",
|
||||
"id": id
|
||||
@ -88,7 +102,7 @@ def table_view(request):
|
||||
@require_POST
|
||||
def set_parent(request, id):
|
||||
project = get_object_or_404(Project, id=id)
|
||||
parent_id = request.POST.get("parent_id")
|
||||
parent_id = request.POST.get("parent_id") or None
|
||||
try:
|
||||
parent = Parent.objects.get(id=parent_id)
|
||||
except Parent.DoesNotExist:
|
||||
@ -181,6 +195,16 @@ class ParentsView(generic.ListView):
|
||||
template_name = "parents.html"
|
||||
context_object_name = "elements"
|
||||
|
||||
class ProjectsView(generic.ListView):
|
||||
model = Project
|
||||
template_name = "projects.html"
|
||||
context_object_name = "elements"
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super().get_context_data(**kwargs)
|
||||
context["parents"] = Parent.objects.all()
|
||||
return context
|
||||
|
||||
|
||||
def get_table_data(request, start_date: datetime.date, end_date: datetime.date):
|
||||
end_date = end_date + timedelta(days=1)
|
||||
|
Reference in New Issue
Block a user