diff --git a/pollsapp/Poll.sqlite3 b/pollsapp/Poll.sqlite3
new file mode 100644
index 0000000..e88c6fb
Binary files /dev/null and b/pollsapp/Poll.sqlite3 differ
diff --git a/pollsapp/polls/admin.py b/pollsapp/polls/admin.py
index bd9ecc4..bffe00d 100644
--- a/pollsapp/polls/admin.py
+++ b/pollsapp/polls/admin.py
@@ -1,7 +1,8 @@
from django.contrib import admin
-from .models import Question, Choice
+from .models import Question, Choice, Track
# Register your models here.
admin.site.register(Question)
admin.site.register(Choice)
+admin.site.register(Track)
diff --git a/pollsapp/polls/api.py b/pollsapp/polls/api.py
index 5e46693..df2dc5d 100644
--- a/pollsapp/polls/api.py
+++ b/pollsapp/polls/api.py
@@ -8,6 +8,7 @@ class QuesSerializer(serializers.ModelSerializer):
class Meta:
model = Question
fields = ('id', 'question_text')
+ #fields = '__all__'
class ChoiceSerializer(serializers.ModelSerializer):
class Meta:
diff --git a/pollsapp/polls/forms.py b/pollsapp/polls/forms.py
new file mode 100644
index 0000000..128eaa4
--- /dev/null
+++ b/pollsapp/polls/forms.py
@@ -0,0 +1,17 @@
+from django import forms
+from polls.models import Question, Choice, Track
+class QuestionForm(forms.ModelForm):
+ class Meta:
+ model = Question
+ #fields = ( 'question_text',)
+ fields= "__all__"
+class ChoiceForm(forms.ModelForm):
+ class Meta:
+ model = Choice
+ #fields = ( 'choice_text',)
+ fields= "__all__"
+
+class TrackForm(forms.ModelForm):
+ class Meta:
+ model = Track
+ fields = ( 'name',)
diff --git a/pollsapp/polls/migrations/0002_auto_20190324_1308.py b/pollsapp/polls/migrations/0002_auto_20190324_1308.py
new file mode 100644
index 0000000..2f434f7
--- /dev/null
+++ b/pollsapp/polls/migrations/0002_auto_20190324_1308.py
@@ -0,0 +1,26 @@
+# Generated by Django 2.1.4 on 2019-03-24 07:38
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('polls', '0001_initial'),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='Track',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('name', models.CharField(max_length=10)),
+ ],
+ ),
+ migrations.AddField(
+ model_name='question',
+ name='track',
+ field=models.ForeignKey(default='', editable=False, on_delete=django.db.models.deletion.CASCADE, to='polls.Track'),
+ ),
+ ]
diff --git a/pollsapp/polls/migrations/0003_auto_20190324_1344.py b/pollsapp/polls/migrations/0003_auto_20190324_1344.py
new file mode 100644
index 0000000..0b8f03f
--- /dev/null
+++ b/pollsapp/polls/migrations/0003_auto_20190324_1344.py
@@ -0,0 +1,39 @@
+# Generated by Django 2.1.4 on 2019-03-24 08:14
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('polls', '0002_auto_20190324_1308'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='choice',
+ name='choice_text',
+ field=models.CharField(default='', max_length=200),
+ ),
+ migrations.AlterField(
+ model_name='choice',
+ name='question',
+ field=models.ForeignKey(default='', on_delete=django.db.models.deletion.CASCADE, to='polls.Question'),
+ ),
+ migrations.AlterField(
+ model_name='question',
+ name='pub_date',
+ field=models.DateTimeField(blank=True, default='', null=True),
+ ),
+ migrations.AlterField(
+ model_name='question',
+ name='question_text',
+ field=models.CharField(default='', max_length=200),
+ ),
+ migrations.AlterField(
+ model_name='track',
+ name='name',
+ field=models.CharField(default='', max_length=10),
+ ),
+ ]
diff --git a/pollsapp/polls/migrations/0004_auto_20190324_1346.py b/pollsapp/polls/migrations/0004_auto_20190324_1346.py
new file mode 100644
index 0000000..dedfad9
--- /dev/null
+++ b/pollsapp/polls/migrations/0004_auto_20190324_1346.py
@@ -0,0 +1,50 @@
+# Generated by Django 2.1.4 on 2019-03-24 08:16
+
+from django.db import migrations, models
+import django.db.models.deletion
+import django.utils.timezone
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('polls', '0003_auto_20190324_1344'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='choice',
+ name='choice_text',
+ field=models.CharField(default='', max_length=200, null=True),
+ ),
+ migrations.AlterField(
+ model_name='choice',
+ name='question',
+ field=models.ForeignKey(default='', null=True, on_delete=django.db.models.deletion.CASCADE, to='polls.Question'),
+ ),
+ migrations.AlterField(
+ model_name='choice',
+ name='votes',
+ field=models.IntegerField(default=0, null=True),
+ ),
+ migrations.AlterField(
+ model_name='question',
+ name='created_date',
+ field=models.DateTimeField(default=django.utils.timezone.now, null=True),
+ ),
+ migrations.AlterField(
+ model_name='question',
+ name='question_text',
+ field=models.CharField(default='', max_length=200, null=True),
+ ),
+ migrations.AlterField(
+ model_name='question',
+ name='track',
+ field=models.ForeignKey(default='', editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, to='polls.Track'),
+ ),
+ migrations.AlterField(
+ model_name='track',
+ name='name',
+ field=models.CharField(default='', max_length=10, null=True),
+ ),
+ ]
diff --git a/pollsapp/polls/migrations/0005_auto_20190324_1629.py b/pollsapp/polls/migrations/0005_auto_20190324_1629.py
new file mode 100644
index 0000000..d5522e2
--- /dev/null
+++ b/pollsapp/polls/migrations/0005_auto_20190324_1629.py
@@ -0,0 +1,29 @@
+# Generated by Django 2.1.4 on 2019-03-24 10:59
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('polls', '0004_auto_20190324_1346'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='question',
+ name='created_date',
+ field=models.DateTimeField(default='', null=True),
+ ),
+ migrations.AlterField(
+ model_name='question',
+ name='question_text',
+ field=models.CharField(default='Enter', max_length=200, null=True),
+ ),
+ migrations.AlterField(
+ model_name='question',
+ name='track',
+ field=models.ForeignKey(default='', null=True, on_delete=django.db.models.deletion.CASCADE, to='polls.Track'),
+ ),
+ ]
diff --git a/pollsapp/polls/migrations/0006_auto_20190324_1630.py b/pollsapp/polls/migrations/0006_auto_20190324_1630.py
new file mode 100644
index 0000000..a15c066
--- /dev/null
+++ b/pollsapp/polls/migrations/0006_auto_20190324_1630.py
@@ -0,0 +1,21 @@
+# Generated by Django 2.1.4 on 2019-03-24 11:00
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('polls', '0005_auto_20190324_1629'),
+ ]
+
+ operations = [
+ migrations.RemoveField(
+ model_name='question',
+ name='created_date',
+ ),
+ migrations.RemoveField(
+ model_name='question',
+ name='pub_date',
+ ),
+ ]
diff --git a/pollsapp/polls/models.py b/pollsapp/polls/models.py
index 024ae52..a0d3583 100644
--- a/pollsapp/polls/models.py
+++ b/pollsapp/polls/models.py
@@ -2,20 +2,23 @@
from django.utils import timezone
import datetime
-# Create your models here.
-class Question(models.Model):
- question_text = models.CharField(max_length=200)
- pub_date = models.DateTimeField(blank=True,null=True)
- created_date = models.DateTimeField(default=timezone.now)
+class Track(models.Model):
+ name = models.CharField(max_length=10, default="",null=True)
+ def __str__(self):
+ return self.name
+class Question(models.Model):
+ track = models.ForeignKey(Track,on_delete=models.CASCADE, default="",null=True)
+ question_text = models.CharField(max_length=200, default="Enter",null=True)
+ #pub_date = models.DateTimeField(blank=True,null=True, default="")
+ #created_date = models.DateTimeField(default="",null=True)
def __str__(self):
return self.question_text
class Choice(models.Model):
- question = models.ForeignKey(Question, on_delete=models.CASCADE)
- choice_text = models.CharField(max_length=200)
- votes = models.IntegerField(default=0)
+ question = models.ForeignKey(Question, on_delete=models.CASCADE, default="",null=True)
+ choice_text = models.CharField(max_length=200, default="",null=True)
+ votes = models.IntegerField(default=0,null=True)
def __str__(self):
return self.choice_text
-
diff --git a/pollsapp/polls/templates/editch.html b/pollsapp/polls/templates/editch.html
new file mode 100644
index 0000000..2f513e0
--- /dev/null
+++ b/pollsapp/polls/templates/editch.html
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pollsapp/polls/templates/editqn.html b/pollsapp/polls/templates/editqn.html
new file mode 100644
index 0000000..1f591e0
--- /dev/null
+++ b/pollsapp/polls/templates/editqn.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pollsapp/polls/templates/edittr.html b/pollsapp/polls/templates/edittr.html
new file mode 100644
index 0000000..2d50945
--- /dev/null
+++ b/pollsapp/polls/templates/edittr.html
@@ -0,0 +1,37 @@
+
+
+
+
+ Index
+ {% load staticfiles %}
+
+
+
+
+
+
diff --git a/pollsapp/polls/templates/home - Copy.html b/pollsapp/polls/templates/home - Copy.html
new file mode 100644
index 0000000..6bceb85
--- /dev/null
+++ b/pollsapp/polls/templates/home - Copy.html
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pollsapp/polls/templates/home.html b/pollsapp/polls/templates/home.html
new file mode 100644
index 0000000..8037e73
--- /dev/null
+++ b/pollsapp/polls/templates/home.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pollsapp/polls/templates/indexch.html b/pollsapp/polls/templates/indexch.html
new file mode 100644
index 0000000..9816c37
--- /dev/null
+++ b/pollsapp/polls/templates/indexch.html
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pollsapp/polls/templates/indexqn.html b/pollsapp/polls/templates/indexqn.html
new file mode 100644
index 0000000..3eb23ae
--- /dev/null
+++ b/pollsapp/polls/templates/indexqn.html
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pollsapp/polls/templates/indextr.html b/pollsapp/polls/templates/indextr.html
new file mode 100644
index 0000000..318f881
--- /dev/null
+++ b/pollsapp/polls/templates/indextr.html
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pollsapp/polls/templates/logo.JPG b/pollsapp/polls/templates/logo.JPG
new file mode 100644
index 0000000..e024cda
Binary files /dev/null and b/pollsapp/polls/templates/logo.JPG differ
diff --git a/pollsapp/polls/templates/showch.html b/pollsapp/polls/templates/showch.html
new file mode 100644
index 0000000..76ace26
--- /dev/null
+++ b/pollsapp/polls/templates/showch.html
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ | ID |
+ Choice |
+ Vote |
+ Action |
+
+
+
+{% for poll in polls %}
+
+ | {{ poll.id }} |
+ {{ poll.choice_text }} |
+ {{ poll.votes }} |
+
+ Edit
+ Delete
+ |
+
+{% endfor %}
+
+
+
+
+Add New Record
+
+
+
+
+
+
+
diff --git a/pollsapp/polls/templates/showqn.html b/pollsapp/polls/templates/showqn.html
new file mode 100644
index 0000000..d1780f5
--- /dev/null
+++ b/pollsapp/polls/templates/showqn.html
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ | ID |
+ Question |
+ Action |
+
+
+
+{% for poll in polls %}
+
+ | {{ poll.id }} |
+ {{ poll.question_text }} |
+
+ Edit
+ Delete
+ |
+
+{% endfor %}
+
+
+
+
+Add New Record
+
+
+
+
+
+
+
+
+
diff --git a/pollsapp/polls/templates/showqnch.html b/pollsapp/polls/templates/showqnch.html
new file mode 100644
index 0000000..75509ac
--- /dev/null
+++ b/pollsapp/polls/templates/showqnch.html
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ | Question ID |
+ Question Text |
+ Choice Text |
+
+
+
+{% for ch in choice %}
+
+
+
+ | {{ ch.id }} |
+ {{ ch.question }} |
+ {{ ch.choice_text }} |
+
+
+{% endfor %}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pollsapp/polls/templates/showqnch0.html b/pollsapp/polls/templates/showqnch0.html
new file mode 100644
index 0000000..53b46f9
--- /dev/null
+++ b/pollsapp/polls/templates/showqnch0.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+ Employee Records
+ {% load staticfiles %}
+
+
+
+
+
+
+
+ | Question ID |
+ Question Text |
+ Choice Text |
+
+
+
+{% for ch in choice %}
+
+
+
+ | {{ ch.id }} |
+ {{ ch.question }} |
+ {{ ch.choice_text }} |
+
+
+{% endfor %}
+
+
+
+
+
+
+
diff --git a/pollsapp/polls/templates/showtr.html b/pollsapp/polls/templates/showtr.html
new file mode 100644
index 0000000..92dde25
--- /dev/null
+++ b/pollsapp/polls/templates/showtr.html
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ | ID |
+ Track |
+ Action |
+
+
+
+{% for poll in polls %}
+
+ | {{ poll.id }} |
+ {{ poll.name }} |
+
+ Edit
+ Delete
+ |
+
+{% endfor %}
+
+
+
+
+Add New Record
+
+
+
+
+
+
+
diff --git a/pollsapp/polls/urls.py b/pollsapp/polls/urls.py
index 9b8863b..0bced1a 100644
--- a/pollsapp/polls/urls.py
+++ b/pollsapp/polls/urls.py
@@ -10,4 +10,22 @@
urlpatterns = [
path('', views.index, name='index'),
+ path('pollqn', views.pollqn),
+ path('pollch', views.pollch),
+ path('polltr', views.polltr),
+ path('pollqnAdd', views.pollqn),
+ path('editqn/', views.editqn),
+ path('editch/', views.editch),
+ path('edittr/', views.edittr),
+ path('viewqn', views.QuesViewSet),
+ path('viewch', views.ChoiceViewSet),
+ path('viewtr', views.TrackViewSet),
+ path('updateqn/', views.updateqn),
+ path('updatech/', views.updatech),
+ path('updatetr/', views.updatetr),
+ path('deleteqn/', views.destroyqn),
+ path('deletech/', views.destroych),
+ path('deletetr/', views.destroytr),
+
+ path('viewqnch', views.QnChViewSet),
]
diff --git a/pollsapp/polls/views.py b/pollsapp/polls/views.py
index a903ff3..169eb01 100644
--- a/pollsapp/polls/views.py
+++ b/pollsapp/polls/views.py
@@ -1,6 +1,135 @@
from django.http import HttpResponse
-
+from polls.api import QuesSerializer,ChoiceSerializer,QuesViewSet,ChoiceViewSet
+from polls.models import Question, Choice, Track
+from polls.forms import QuestionForm, ChoiceForm, TrackForm
+from django.shortcuts import render, redirect
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
-
\ No newline at end of file
+def pollqn(request):
+
+ if request.method == "POST":
+ print("POST4")
+ form = QuestionForm(request.POST)
+ #print(form.cleaned_data['question_text'])
+ print("POST3")
+ if form.is_valid():
+ print("POST1")
+ try:
+ form.save()
+ print("POST2")
+ return redirect('/polls/viewqn')
+ except:
+ pass
+ else:
+ print("GET")
+ form = QuestionForm()
+ return render(request,'indexqn.html',{'form':form})
+
+
+def pollch(request):
+
+ if request.method == "POST":
+ print("POST4")
+ form = ChoiceForm(request.POST)
+ #print(form.cleaned_data['question_text'])
+ print("POST3")
+ if form.is_valid():
+ print("POST1")
+ try:
+ form.save()
+ print("POST2")
+ return redirect('/polls/viewch')
+ except:
+ pass
+ else:
+ print("GET")
+ form = ChoiceForm()
+ return render(request,'indexch.html',{'form':form})
+
+
+def polltr(request):
+
+ if request.method == "POST":
+ print("POST4")
+ form = TrackForm(request.POST)
+ #print(form.cleaned_data['question_text'])
+ print("POST3")
+ if form.is_valid():
+ print("POST1")
+ try:
+ form.save()
+ print("POST2")
+ return redirect('/polls/viewtr')
+ except:
+ pass
+ else:
+ print("GET")
+ form = TrackForm()
+ return render(request,'indextr.html',{'form':form})
+
+
+def QuesViewSet(request):
+ polls = Question.objects.all()
+ return render(request,"showqn.html",{'polls':polls})
+
+def ChoiceViewSet(request):
+ polls = Choice.objects.all()
+ return render(request,"showch.html",{'polls':polls})
+def TrackViewSet(request):
+ polls = Track.objects.all()
+ return render(request,"showtr.html",{'polls':polls})
+def QnChViewSet(request):
+ question = Question.objects.all()
+ choice = Choice.objects.all()
+ return render(request,"showqnch.html",{'choice':choice},{'question':question})
+
+def editqn(request, id):
+ form = Question.objects.get(id=id)
+ return render(request,'editqn.html',{'form':form})
+def editch(request, id):
+ form = Choice.objects.get(id=id)
+ return render(request,'editch.html', {'form':form})
+def edittr(request, id):
+ form = Track.objects.get(id=id)
+ return render(request,'edittr.html', {'form':form})
+def updateqn(request, id):
+ polls = Question.objects.get(id=id)
+ form = QuestionForm(request.POST, instance = polls)
+ if form.is_valid():
+ form.save()
+ return redirect('/polls/viewqn')
+ return render(request, 'editqn.html', {'form': form})
+
+def updatech(request, id):
+ polls = Choice.objects.get(id=id)
+ print(polls)
+ form = ChoiceForm(request.POST, instance = polls)
+ print(form)
+ if form.is_valid():
+ print("valid")
+ form.save()
+ return redirect('/polls/viewch')
+ return render(request, 'editch.html', {'form': form})
+
+def updatetr(request, id):
+ polls = Track.objects.get(id=id)
+ form = TrackForm(request.POST, instance = polls)
+ if form.is_valid():
+ form.save()
+ return redirect('/polls/viewtr')
+ return render(request, 'edittr.html', {'form': form})
+
+def destroyqn(request, id):
+ Poll = Question.objects.get(id=id)
+ Poll.delete()
+ return redirect('/polls/viewqn')
+
+def destroych(request, id):
+ Poll = Choice.objects.get(id=id)
+ Poll.delete()
+ return redirect('/polls/viewch')
+def destroytr(request, id):
+ Poll = Track.objects.get(id=id)
+ Poll.delete()
+ return redirect('/polls/viewtr')
diff --git a/pollsapp/pollsapp/settings.py b/pollsapp/pollsapp/settings.py
index 13ca071..5443e43 100644
--- a/pollsapp/pollsapp/settings.py
+++ b/pollsapp/pollsapp/settings.py
@@ -44,7 +44,7 @@
# project apps
'polls',
-
+
]
MIDDLEWARE = [
@@ -85,7 +85,7 @@
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
- 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
+ 'NAME': os.path.join(BASE_DIR, 'Poll.sqlite3'),
}
}
@@ -139,8 +139,8 @@
# }
ALLOWED_HOSTS = [
- 'localhost',
- '127.0.0.1',
+ 'localhost',
+ '127.0.0.1',
'[::1]',
'*'
]
diff --git a/pollsapp/pollsapp/urls.py b/pollsapp/pollsapp/urls.py
index 81b9143..3743bc3 100644
--- a/pollsapp/pollsapp/urls.py
+++ b/pollsapp/pollsapp/urls.py
@@ -24,4 +24,4 @@
path('api/', include(routers.SharedAPIRootRouter.router.urls)),
path('api-auth/', include('rest_framework.urls', namespace='rest_framework')),
path('admin/', admin.site.urls),
-]
\ No newline at end of file
+]