diff --git a/djangoldp_polls/djangoldp_urls.py b/djangoldp_polls/djangoldp_urls.py index 583fa58163ae4abbeb35051de04c6b62a6a9a012..86ca1efb399956accccd1dbe9e51bfacab1335f3 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 0000000000000000000000000000000000000000..08dc582183e0cc699c60cabae037500aebeab9c9 --- /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 af5817dcacd3d349238088140575168ea9d6e08e..39cf542435f7ae5cedd9239c2e478eb0b6648766 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 d6cbe8a4c74eabdcd80a700a55fb41729eabe35c..38895c353c5da3164e81d21d7fce2a958e7a9c9d 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 6004dbbc0087dcf1d12681cf56df7db1aff1ae6a..5e3834c0e6a2971d539591adb11d1cc0c3482095 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 =