summaryrefslogtreecommitdiffstats
path: root/apps/it/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'apps/it/views.py')
-rw-r--r--apps/it/views.py105
1 files changed, 97 insertions, 8 deletions
diff --git a/apps/it/views.py b/apps/it/views.py
index fa13ed0..47afe63 100644
--- a/apps/it/views.py
+++ b/apps/it/views.py
@@ -1,11 +1,20 @@
from django import forms
+from django.contrib import messages
from django.http import HttpResponse
from django.shortcuts import render, redirect
-from django.views.decorators.csrf import csrf_exempt
-from apps.it.models import Issue, Task, Attachment
+from apps.it.models import Issue, Task, Attachment, User, Asset
+class AssetForm(forms.ModelForm):
+ class Meta:
+ model = Asset
+
+class SimpleAssetForm(forms.ModelForm):
+ class Meta:
+ model = Asset
+ fields = ['name', 'description', 'kind']
+
class AttachmentForm(forms.ModelForm):
class Meta:
model = Attachment
@@ -14,28 +23,52 @@ class IssueForm(forms.ModelForm):
class Meta:
model = Issue
+
+class SimpleIssueForm(forms.ModelForm):
+ class Meta:
+ model = Issue
+ fields = ['description', 'priority']
+
class TaskForm(forms.ModelForm):
class Meta:
model = Task
def home(request):
+ state = request.GET.get('state')
issues = Issue.objects.all()
+ issue_count = issues.count()
+
+ if state:
+ issues = issues.filter(state=state)
+
+ form = SimpleIssueForm()
+ states = Issue.STATES
+ issue = Issue(created_by_id=1)
+
+ if request.method == 'POST':
+ form = SimpleIssueForm(request.POST, instance=issue)
+ if form.is_valid():
+ issue = form.save()
+ messages.success(request, 'Issue saved')
+ return redirect(issue)
return render(request, "list_issues.html", locals())
def search(request):
query = request.GET['q']
- results = Issue.objects.filter(description__icontains=query)
- return render(request, "default.html", locals())
+ form = IssueForm()
+ issues = Issue.objects.filter(description__icontains=query)
+ return render(request, "list_issues.html", locals())
def view_issue(request, pk):
issue = Issue.objects.get(pk=pk)
- files = Attachment.objects.filter(content_object=issue)
+ task = Task(issue=issue, created_by_id=1)
+ form = TaskForm(instance=task)
return render(request, "view_issue.html", locals())
def edit_issue(request, pk=None):
if pk is None:
- issue = Issue()
+ issue = Issue(created_by_id=1)
else:
issue = Issue.objects.get(pk=pk)
@@ -45,6 +78,7 @@ def edit_issue(request, pk=None):
form = IssueForm(request.POST, instance=issue)
if form.is_valid():
issue = form.save()
+ messages.success(request, 'Issue saved')
return redirect(issue)
return render(request, "edit_issue.html", locals())
@@ -52,6 +86,7 @@ def edit_issue(request, pk=None):
def edit_task(request, issue, pk=None):
if pk is None:
task = Task()
+ task.created_by_id = 1
task.issue = Issue.objects.get(pk=issue)
else:
task = Task.objects.get(pk=pk)
@@ -70,16 +105,70 @@ def edit_task(request, issue, pk=None):
def metoo(request, issue, user):
issue = Issue.objects.get(pk=issue)
+ user = User.objects.get(pk=user)
+
+ if user in issue.users.all():
+ issue.users.remove(user)
+ else:
+ issue.users.add(user)
+
+ messages.success(request, 'Issue updated')
+ return redirect(issue)
-@csrf_exempt
def add_files(request, pk):
issue = Issue.objects.get(pk=pk)
att = Attachment(content_object=issue, created_by_id=1)
form = AttachmentForm(request.POST, request.FILES, instance=att)
- if form.is_valid:
+ if form.is_valid():
form.save()
else:
print form.errors
return HttpResponse('Cheerio!')
+
+def delete_issue(request, pk):
+ pass
+
+def delete_task(request, pk):
+ task = Task.objects.get(pk=pk)
+ task.delete()
+ messages.info(request, 'Task deleted')
+ return redirect(task.issue)
+
+def list_assets(request):
+ pass
+
+def list_stuff(request):
+ if request.method == 'POST':
+ form = SimpleAssetForm(request.POST)
+ if form.is_valid():
+ asset = form.save()
+ return redirect(asset)
+
+ categories = Asset.KINDS
+ object_list = Asset.objects.all()
+ kind = request.GET.get('kind')
+
+ if kind:
+ object_list = object_list.filter(kind=kind)
+
+ form = SimpleAssetForm(initial={'kind': kind})
+ return render(request, "list_stuff.html", locals())
+
+def view_asset(request, pk):
+ return render(request, "view_asset.html", locals())
+
+
+def delete_file(request, pk):
+ file = Attachment.objects.get(pk=pk)
+ file.delete()
+ messages.success(request, 'File deleted')
+ return redirect(file.content_object)
+
+def remove_user(request, issue, user):
+ issue = Issue.objects.get(pk=issue)
+ user = User.objects.get(pk=user)
+ issue.users.remove(user)
+ messages.success(request, 'User removed from issue')
+ return redirect(issue)