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 @@ + + + + + + + + + + + + + +
+ {% csrf_token %} +
+
+
+ +
+

Update Details

+
+
+ +
+ +
+ + +
+
+ +
+ +
+ + +
+
+ +
+ +
+ +
+
+
+
+ + + + + + + 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 @@ + + + + + + + + + + + + + +
+ {% csrf_token %} +
+
+
+ +
+

Update Details

+
+
+ +
+ +
+ + +
+
+ +
+ +
+ +
+
+
+
+ + + + + + + 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 %} + + + +
+ {% csrf_token %} +
+
+
+ +
+

Update Details

+
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+
+
+ + 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 @@ + + + + + + + + + + + + + +
+
+ + + Please Enter a New Track +
+ + +
+ + + + + + + + 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 @@ + + + + + + + + + + + + + +
+ {% csrf_token %} +
+
+
+ +
+

Enter Details

+
+
+
+ + {{ form.as_table }} + +
+
+ +
+ +
+
+
+
+ + + + + + + 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 @@ + + + + + + + + + + + + + +
+ {% csrf_token %} +
+
+
+ +
+
Enter Question
+
+
+ +
+ +
+
{{ form.as_table }}
+
+
+ +
+ +
+ +
+
+
+
+ + + + + + + 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 @@ + + + + + + + + + + + + + + +
+ {% csrf_token %} +
+
+ + + {{ form.name }} + Please Enter a New Track +
+ + +
+ + + + + + + + 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 @@ + + + + + + + + + + + + + + + + + + + + + + + +{% for poll in polls %} + + + + + + +{% endfor %} + +
IDChoiceVoteAction
{{ poll.id }}{{ poll.choice_text }}{{ poll.votes }} + Edit + Delete +
+
+
+
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 @@ + + + + + + + + + + + + + + + + + + + + + + +{% for poll in polls %} + + + + + +{% endfor %} + +
IDQuestionAction
{{ poll.id }}{{ poll.question_text }} + Edit + Delete +
+
+
+
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 @@ + + + + + + + + + + + + + + + + + + + + + + + + +{% for ch in choice %} + + + + + + + + +{% endfor %} + +
Question IDQuestion TextChoice Text
{{ ch.id }}{{ ch.question }}{{ ch.choice_text }}
+
+
+ + + + + + + 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 %} + + + + + + + + + + + + + +{% for ch in choice %} + + + + + + + + +{% endfor %} + +
Question IDQuestion TextChoice Text
{{ ch.id }}{{ ch.question }}{{ ch.choice_text }}
+
+
+ + + 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 @@ + + + + + + + + + + + + + + + + + + + + + + +{% for poll in polls %} + + + + + +{% endfor %} + +
IDTrackAction
{{ poll.id }}{{ poll.name }} + Edit + Delete +
+
+
+
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 +]