From fe8a347921f2abb937b8d559eff7f66ed37df900 Mon Sep 17 00:00:00 2001 From: fbormann Date: Sun, 23 Oct 2016 16:14:14 -0300 Subject: [PATCH] notification for poll creation was created #207 --- app/templates/home_teacher_student_content.html | 2 +- core/mixins.py | 3 ++- forum/views.py | 6 +++--- poll/models.py | 1 - poll/views.py | 10 +++++++--- 5 files changed, 13 insertions(+), 9 deletions(-) diff --git a/app/templates/home_teacher_student_content.html b/app/templates/home_teacher_student_content.html index 184a6ac..9e1b810 100644 --- a/app/templates/home_teacher_student_content.html +++ b/app/templates/home_teacher_student_content.html @@ -11,7 +11,7 @@
-

{{ notification.actor }}

+

{{ notification.actor.username }}

{{notification.message}} em : {{ notification.action_resource.resource.name }}

{{ notification.datetime|timesince }} {% trans "ago" %}

diff --git a/core/mixins.py b/core/mixins.py index f5e49b8..b48dec7 100644 --- a/core/mixins.py +++ b/core/mixins.py @@ -44,7 +44,8 @@ class NotificationMixin(object): action_slug = '' resource_name = '' - def createNotification(self, message='', actor=None, users = User.objects.all(), resource_slug='' ,action_slug = '', resource_name='', resource_link=''): #the default will be a broadcast + def createNotification(self, message='', actor=None, users = User.objects.all(), resource_slug='' ,action_slug = '', + resource_name='', resource_link=''): #the default will be a broadcast action = Action.objects.filter(slug = action_slug) resource = Resource.objects.filter(slug = resource_slug) if action.exists(): diff --git a/forum/views.py b/forum/views.py index ad4501e..f154429 100644 --- a/forum/views.py +++ b/forum/views.py @@ -58,7 +58,7 @@ class CreateForumView(LoginRequiredMixin, generic.edit.CreateView, NotificationM action = super(CreateForumView, self).createorRetrieveAction("create Topic") super(CreateForumView, self).createNotification("Forum "+ self.object.name + " was created", resource_name=self.object.name, resource_link= 'topics/'+self.object.slug, - actor=self.request.user, users = self.object.topic.subject.course.students.all() ) + actor=self.request.user, users = self.object.topic.subject.students.all() ) return self.success_url def render_forum(request, forum): @@ -162,8 +162,8 @@ class CreatePostView(LoginRequiredMixin, generic.edit.CreateView, NotificationMi self.object.user = self.request.user self.object.save() - #super(CreatePostView, self).createNotification(self.object.user.username + " posted on " + self.object.forum,name, - #resource_slug = self.object.forum.slug, actor=self.request.user, users= self.object.forum.topic.) + super(CreatePostView, self).createNotification(self.object.user.username + " posted on " + self.object.forum,name, + resource_slug = self.object.forum.slug, actor=self.request.user, users= self.object.forum.topic.subject.students.all()) return super(CreatePostView, self).form_valid(form) diff --git a/poll/models.py b/poll/models.py index 3d770f7..68eac05 100644 --- a/poll/models.py +++ b/poll/models.py @@ -8,7 +8,6 @@ from courses.models import Activity class Poll(Activity): class Meta: - #ordering = ('create_date','name') verbose_name = _('Poll') verbose_name_plural = _('Polls') diff --git a/poll/views.py b/poll/views.py index 38984bb..715d4b3 100644 --- a/poll/views.py +++ b/poll/views.py @@ -9,7 +9,7 @@ from django.utils.translation import ugettext_lazy as _ from rolepermissions.verifications import has_role from rolepermissions.verifications import has_object_permission from django.db.models import Q -# from django.views.generic.edit import FormMixin +from django.urls import reverse from .forms import PollForm from .models import Poll, Answer, AnswersStudent @@ -41,7 +41,7 @@ class ViewPoll(LoginRequiredMixin,generic.DetailView): return context -class CreatePoll(LoginRequiredMixin,HasRoleMixin,generic.CreateView): +class CreatePoll(LoginRequiredMixin,HasRoleMixin, NotificationMixin,generic.CreateView): allowed_roles = ['professor', 'system_admin'] login_url = reverse_lazy("core:home") @@ -63,15 +63,19 @@ class CreatePoll(LoginRequiredMixin,HasRoleMixin,generic.CreateView): context.context_data['keys'] = keys context.context_data['form'] = form context.status_code = 400 - # return self.render_to_response(context, status = 400) + s return context def form_valid(self, form): self.object = form.save(commit = False) topic = get_object_or_404(Topic, slug = self.kwargs.get('slug')) self.object.topic = topic + self.object.name = str(self.object) self.object.save() + super(CreatePoll, self).createNotification(message="create a Poll "+ self.object.name, actor=self.request.user, + resource_name=self.object.name, resource_link= reverse('course:poll:view_poll', args=[self.object.slug]), + users=self.object.topic.subject.students.all()) for key in self.request.POST: if(key != 'csrfmiddlewaretoken' and key != 'name' and key != 'limit_date' and key != 'all_students' and key != 'students'): answer = Answer(answer=self.request.POST[key],order=key,poll=self.object) -- libgit2 0.21.2