diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
index 0000000..99cf7ae
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,19 @@
+{
+ // Use IntelliSense to learn about possible attributes.
+ // Hover to view descriptions of existing attributes.
+ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "name": "Python Debugger: Django",
+ "type": "debugpy",
+ "request": "launch",
+ "program": "${workspaceFolder}\\manage.py",
+ "args": [
+ "runserver"
+ ],
+ "django": true,
+ "autoStartBrowser": false
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..cad7657
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,3 @@
+{
+ "cmake.configureOnOpen": false
+}
\ No newline at end of file
diff --git a/index.html b/index.html
index a5b4ad9..0651ce5 100644
--- a/index.html
+++ b/index.html
@@ -1,6 +1,73 @@
-
-
-
-
-
-
\ No newline at end of file
+
+
+
+
+
+ Servicing Ticket
+
+
+
+
+
+
+
+ {{ ticket.name }}
+
+
+ {{ticket.phone}}
+
+
+ {{ticket.date}}
+
+
+ {% if ticket.description %} {{ ticket.description }} {% else %} Нема опис {% endif %}
+
+
+
+
+
+ {{ ticket.name }}
+
+
+ {{ ticket.phone }}
+
+
+ {{ ticket.date }}
+
+
+ {% if ticket.description %} {{ ticket.description }} {% else %} Нема опис {% endif %}
+
+
+
+
+
\ No newline at end of file
diff --git a/serviceCRM/filter.py b/serviceCRM/filter.py
new file mode 100644
index 0000000..2bd3373
--- /dev/null
+++ b/serviceCRM/filter.py
@@ -0,0 +1,14 @@
+from .models import Insert
+import django_filters as filters
+from django_filters import FilterSet
+
+class DoneTable(FilterSet):
+ class Meta:
+ model = Insert
+ fields = ["done"]
+
+ def filter_done(self, queryset, name, value):
+ if value:
+ return queryset.filter(done=True)
+ else:
+ return queryset.filter(done=False)
\ No newline at end of file
diff --git a/serviceCRM/forms.py b/serviceCRM/forms.py
index 2fca7f4..399fc51 100644
--- a/serviceCRM/forms.py
+++ b/serviceCRM/forms.py
@@ -20,7 +20,15 @@ class InputForm(forms.ModelForm):
field_order = ["name", "phone", "date", "description", "done"]
- # name = forms.CharField(label="Name", max_length=30)
- # phone = forms.CharField(label="Phone", max_length=30)
- # date = forms.DateField()
- # description = forms.CharField(label="Write description of the problem...", max_length=300)
+# class EditForm(forms.ModelForm):
+# class Meta:
+# model = Insert
+# fields = {"name", "phone", "description", "done"}
+# labels = {'name': "Name", 'phone': "Phone", 'description': "Description", 'done': "Done"}
+# widgets = {
+# 'name': forms.TextInput(attrs={'class': 'form-control'}),
+# 'phone': forms.TextInput(attrs={'class': 'form-control'}),
+# 'description': forms.Textarea(attrs={'class': 'form-control'})
+# }
+
+# field_order = ["name", "phone", "description", "done"]
\ No newline at end of file
diff --git a/serviceCRM/static/fer-logo.png b/serviceCRM/static/fer-logo.png
new file mode 100644
index 0000000..851a9b9
Binary files /dev/null and b/serviceCRM/static/fer-logo.png differ
diff --git a/serviceCRM/tables.py b/serviceCRM/tables.py
index 02aaa37..7a0decd 100644
--- a/serviceCRM/tables.py
+++ b/serviceCRM/tables.py
@@ -1,13 +1,22 @@
import django_tables2 as tables
+from django_tables2 import TemplateColumn
+from django_filters import FilterSet
+from django.db.models.query import QuerySet # Add missing import
from .models import Insert
-from django_tables2.utils import A
-
class InsertTable(tables.Table):
+
+ actions = TemplateColumn(template_code='Edit')
class Meta:
model = Insert
- template_name = "list.html"
- sequence = ("name", "phone", "description","date","done" )
- delete = tables.LinkColumn('main:delete_item', args=[A('pk')], attrs={
- 'a': {'class': 'btn'}
- })
+ fields = ("id","name","phone","description","date","done")
+
+
+class DoneInsertTable(InsertTable):
+ class Meta:
+ model = Insert
+ fields = ("id","name","phone","description","date","done")
+
+ def __init__(self, *args, **kwargs):
+ super().__init__(*args, **kwargs)
+ print(self.data)
diff --git a/serviceCRM/templates/list.html b/serviceCRM/templates/list.html
index 52a7f9f..7e0b6db 100644
--- a/serviceCRM/templates/list.html
+++ b/serviceCRM/templates/list.html
@@ -3,6 +3,6 @@
{% load render_table from django_tables2 %}
- {% render_table table %}
-
+ {% render_table object_list %}
+
{% endblock%}
\ No newline at end of file
diff --git a/serviceCRM/templates/serviceCRM/delete.html b/serviceCRM/templates/serviceCRM/delete.html
new file mode 100644
index 0000000..e69de29
diff --git a/serviceCRM/templates/serviceCRM/done.html b/serviceCRM/templates/serviceCRM/done.html
new file mode 100644
index 0000000..2414505
--- /dev/null
+++ b/serviceCRM/templates/serviceCRM/done.html
@@ -0,0 +1,6 @@
+{% extends 'base.html' %}
+{% load render_table from django_tables2 %}
+
+{% block content %}
+ {% render_table table %}
+{%endblock%}
\ No newline at end of file
diff --git a/serviceCRM/templates/serviceCRM/edit.html b/serviceCRM/templates/serviceCRM/edit.html
index 0f5d396..f7b2e22 100644
--- a/serviceCRM/templates/serviceCRM/edit.html
+++ b/serviceCRM/templates/serviceCRM/edit.html
@@ -1 +1,13 @@
-Edit
+{% extends 'base.html' %}
+{% block title %}Edit{% endblock %}
+{% block content %}
+{% csrf_token %}
+
+{% endblock%}
\ No newline at end of file
diff --git a/serviceCRM/templates/serviceCRM/list.html b/serviceCRM/templates/serviceCRM/list.html
index 52a7f9f..bfdcac4 100644
--- a/serviceCRM/templates/serviceCRM/list.html
+++ b/serviceCRM/templates/serviceCRM/list.html
@@ -1,8 +1,5 @@
{% extends 'base.html' %}
+{% load render_table from django_tables2 %}
{% block content %}
- {% load render_table from django_tables2 %}
-
-
{% render_table table %}
-
{% endblock%}
\ No newline at end of file
diff --git a/serviceCRM/templates/serviceCRM/nalog.html b/serviceCRM/templates/serviceCRM/nalog.html
new file mode 100644
index 0000000..2a88587
--- /dev/null
+++ b/serviceCRM/templates/serviceCRM/nalog.html
@@ -0,0 +1,83 @@
+{% block content %}
+{% load static %}
+
+
+
+
+ Servicing Ticket
+
+
+
+
+
+
+
+ {{ name }}
+
+
+ {{phone}}
+
+
+ {{date}}
+
+
+ {{ desc }}
+
+
+
+
+
+ {{ name }}
+
+
+ {{ phone }}
+
+
+ {{ date }}
+
+
+ {{ desc }}
+
+
+
+
+
+{% endblock %}
diff --git a/serviceCRM/urls.py b/serviceCRM/urls.py
index 15924fe..3b3ca10 100644
--- a/serviceCRM/urls.py
+++ b/serviceCRM/urls.py
@@ -19,8 +19,11 @@ from django.urls import path
import serviceCRM.views as view
urlpatterns = [
- path("", view.TableView.as_view(), name="index"),
+ path("", view.InsertListView.as_view(), name="index"),
path('admin/', admin.site.urls),
- path("/", view.ReportById.ReportById, name="detail"),
path("insert/", view.InsertNew.insert, name="insert"),
- path("done//", view.done, name="done"),]
+ path("edit//", view.Update.as_view(), name="update"),
+ path("nalog//", view.Nalog, name="nalog"),
+ path("delete//", view.Delete.Delete, name="delete"),
+ path("done/", view.Done.as_view(), name="done"),
+ ]
diff --git a/serviceCRM/views.py b/serviceCRM/views.py
index da3b605..0661910 100644
--- a/serviceCRM/views.py
+++ b/serviceCRM/views.py
@@ -1,36 +1,23 @@
from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import get_object_or_404, render
from django.views import generic
+from django.views.generic import UpdateView
from .forms import InputForm
-from .tables import InsertTable
from .models import Insert
+from .tables import DoneInsertTable, InsertTable
from django_tables2 import SingleTableView
-
-
-# from django.template import loader
-
-def index(request):
- if request.user.is_authenticated:
- return HttpResponse("You are logged in")
- proba = Insert.objects.order_by("date")
- return HttpResponse(proba)
- else:
- return HttpResponse("You are not logged in")
-
-
-# def detail(request,question_id):
-# req = get_object_or_404(Insert,id=question_id)
-# context = {"name":req.name, "phone":req.phone,"desc":req.description,"date":req.date}
-# return HttpResponse(render(request,"serviceCRM/id.html", context))
-#
-class ReportById(generic.DetailView):
+class InsertListView(SingleTableView):
model = Insert
- template_name = "serviceCRM/id.html"
+ table_class = InsertTable
+ template_name = 'serviceCRM/list.html'
- def ReportById(request, question_id):
- req = get_object_or_404(Insert, id=question_id)
- context = {"name": req.name, "phone": req.phone, "desc": req.description, "date": req.date}
- return HttpResponse(f"Report ID: {question_id} \nName: {req.name} \nPhone: {req.phone} \nDescription: {req.description} \nDate: {req.date} \nDone: {req.done}")
+# class ReportById(generic.DetailView):
+# model = Insert
+# template_name = "serviceCRM/id.html"
+# def ReportById(request, question_id):
+# req = get_object_or_404(Insert, id=question_id)
+# context = {"name": req.name, "phone": req.phone, "desc": req.description, "date": req.date}
+# return HttpResponse(f"Report ID: {question_id} \nName: {req.name} \nPhone: {req.phone} \nDescription: {req.description} \nDate: {req.date} \nDone: {req.done}")
class InsertNew(generic.View):
model = Insert
@@ -40,23 +27,42 @@ class InsertNew(generic.View):
if request.method == 'POST':
form = InputForm(request.POST)
if form.is_valid():
- form.save()
+ ticket=form.save()
print("Raboti")
- return HttpResponseRedirect("/admin/")
+ return HttpResponseRedirect(f"/nalog/{ticket.id}/")
else:
form = InputForm()
return render(request, InsertNew.template_name, {'form': form})
-
-class TableView(SingleTableView):
- table_class = Insert
- queryset = Insert.objects.all()
- template_name = "serviceCRM/list.html"
-
+class Update(UpdateView):
+ model = Insert
+ template_name = "serviceCRM/edit.html"
+ fields = ["name", "phone", "description", "done"]
+ success_url = '/'
def done(request, id):
req = get_object_or_404(Insert, id=id)
if req.isDone():
return HttpResponse("Done")
return HttpResponse("Not Done")
+
+def Nalog(request, id):
+ data = Insert.objects.get(id=id)
+ template = "serviceCRM/nalog.html"
+ context = {"name": data.name, "phone": data.phone, "desc": data.description, "date": data.date}
+ return render(request, template, context)
+
+class Delete():
+ model = Insert
+ def Delete(request, id):
+ req = get_object_or_404(Insert, id=id)
+ req.delete()
+ return HttpResponseRedirect("/")
+
+class Done(SingleTableView):
+ model = Insert
+ table_data = Insert.objects.filter(done=True)
+ table_class = DoneInsertTable
+ template_name = 'serviceCRM/done.html'
+