From 4a67940fb70144eaeb961318249d710793117b7a Mon Sep 17 00:00:00 2001 From: Calum Mackervoy <c.mackervoy@gmail.com> Date: Wed, 23 Sep 2020 10:59:49 +0000 Subject: [PATCH] major: Django 2 upgrade --- djangoldp_polls/djangoldp_urls.py | 1 - .../migrations/0010_auto_20200923_0939.py | 50 +++++++++++++++++++ djangoldp_polls/models.py | 15 +++--- djangoldp_polls/views.py | 6 +-- setup.cfg | 4 +- 5 files changed, 61 insertions(+), 15 deletions(-) create mode 100644 djangoldp_polls/migrations/0010_auto_20200923_0939.py diff --git a/djangoldp_polls/djangoldp_urls.py b/djangoldp_polls/djangoldp_urls.py index 583fa58..86ca1ef 100644 --- a/djangoldp_polls/djangoldp_urls.py +++ b/djangoldp_polls/djangoldp_urls.py @@ -16,7 +16,6 @@ Including another URLconf """djangoldp project URL Configuration""" from django.conf.urls import url,include -from django.contrib import admin from .views import TotalVotes from djangoldp.models import Model from djangoldp_polls.models import PollOption diff --git a/djangoldp_polls/migrations/0010_auto_20200923_0939.py b/djangoldp_polls/migrations/0010_auto_20200923_0939.py new file mode 100644 index 0000000..08dc582 --- /dev/null +++ b/djangoldp_polls/migrations/0010_auto_20200923_0939.py @@ -0,0 +1,50 @@ +# Generated by Django 2.2.16 on 2020-09-23 09:39 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('djangoldp_polls', '0009_auto_20200911_1316'), + ] + + operations = [ + migrations.AlterField( + model_name='poll', + name='author', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='createdVotes', to=settings.AUTH_USER_MODEL), + ), + migrations.AlterField( + model_name='poll', + name='circle', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='polls', to='djangoldp_circle.Circle'), + ), + migrations.AlterField( + model_name='poll', + name='is_backlink', + field=models.BooleanField(default=False, help_text='set automatically to indicate the Model is a backlink'), + ), + migrations.AlterField( + model_name='polloption', + name='is_backlink', + field=models.BooleanField(default=False, help_text='set automatically to indicate the Model is a backlink'), + ), + migrations.AlterField( + model_name='tag', + name='is_backlink', + field=models.BooleanField(default=False, help_text='set automatically to indicate the Model is a backlink'), + ), + migrations.AlterField( + model_name='vote', + name='is_backlink', + field=models.BooleanField(default=False, help_text='set automatically to indicate the Model is a backlink'), + ), + migrations.AlterField( + model_name='vote', + name='user', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='votes', to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/djangoldp_polls/models.py b/djangoldp_polls/models.py index af5817d..39cf542 100644 --- a/djangoldp_polls/models.py +++ b/djangoldp_polls/models.py @@ -41,18 +41,18 @@ class PollOption (Model): class Poll (Model): created_at = models.DateTimeField(auto_now_add=True) - author = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='createdVotes', null=True,blank=True) + author = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='createdVotes', null=True, blank=True, on_delete=models.SET_NULL) title = models.CharField(max_length=250,verbose_name="Title") image = models.URLField(verbose_name="Illustration",default=settings.BASE_URL +"/media/defaultpoll.png") hostingOrganisation = models.CharField(max_length=250,verbose_name="Name of the hosting organisation") startDate = models.DateField(verbose_name="Start date", blank=True, null=True ) - endDate = models.DateField(verbose_name="End data" ) + endDate = models.DateField(verbose_name="End data" ) shortDescription = models.CharField(max_length=250,verbose_name="Short description") longDescription = models.TextField(verbose_name="Long description") tags = models.ManyToManyField(Tag, related_name='polls', blank=True) pollOptions = models.ManyToManyField(PollOption, related_name='relatedPollOptions', blank=True) debate = models.ManyToManyField(Conversation, related_name='polls', blank=True) - circle = models.ForeignKey(Circle, null=True, related_name="polls") + circle = models.ForeignKey(Circle, null=True, related_name="polls", on_delete=models.SET_NULL) class Meta : serializer_fields = ['@id','created_at','debate','pollOptions','votes','author','title','image','circle',\ @@ -67,9 +67,9 @@ class Poll (Model): class Vote (Model): - user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='votes',null=True,blank=True) - chosenOption = models.ForeignKey(PollOption, related_name='userVote') - relatedPoll = models.ForeignKey(Poll, related_name='votes') + user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='votes',null=True,blank=True, on_delete=models.SET_NULL) + chosenOption = models.ForeignKey(PollOption, related_name='userVote', on_delete=models.CASCADE) + relatedPoll = models.ForeignKey(Poll, related_name='votes', on_delete=models.CASCADE) class Meta : auto_author = "user" @@ -79,5 +79,4 @@ class Vote (Model): authenticated_perms = ['inherit','add'] def __str__(self): - return self.chosenOption - \ No newline at end of file + return self.chosenOption.__str__() \ No newline at end of file diff --git a/djangoldp_polls/views.py b/djangoldp_polls/views.py index d6cbe8a..38895c3 100644 --- a/djangoldp_polls/views.py +++ b/djangoldp_polls/views.py @@ -19,6 +19,7 @@ class FuturePollViewset(LDPViewSet): class TotalVotes(LDPViewSet): '''view to GET the total counts of votes selecting a particular option''' + serializer_class = PollOptionSerializer def _get_poll_or_404(self): pk = self.kwargs['pk'] @@ -39,8 +40,3 @@ class TotalVotes(LDPViewSet): def get_queryset(self, *args, **kwargs): poll = self._get_poll_or_404() return poll.pollOptions.all() - - def get_serializer_class(self): - # NOTE: this is required because currently DjangoLDP overrides the serializer_class during __init__ - # https://git.startinblox.com/djangoldp-packages/djangoldp/issues/241 - return PollOptionSerializer diff --git a/setup.cfg b/setup.cfg index 6004dbb..5e3834c 100644 --- a/setup.cfg +++ b/setup.cfg @@ -10,7 +10,9 @@ license = MIT [options] packages = find: install_requires = - djangoldp~=0.5 + djangoldp~=0.0 + djangoldp_conversation + djangoldp_circle [options.extras_require] dev = -- GitLab