From 2d4f41617310a5e26325eaebb608903817611c7c Mon Sep 17 00:00:00 2001 From: fbormann Date: Sun, 23 Oct 2016 18:40:36 -0300 Subject: [PATCH] added functional notifications for poll, links and forum #207 --- core/mixins.py | 4 ++-- courses/views.py | 4 +++- forum/views.py | 3 ++- links/views.py | 13 +++++++++---- poll/views.py | 4 ++-- 5 files changed, 18 insertions(+), 10 deletions(-) diff --git a/core/mixins.py b/core/mixins.py index b48dec7..d2dedd8 100644 --- a/core/mixins.py +++ b/core/mixins.py @@ -51,13 +51,13 @@ class NotificationMixin(object): if action.exists(): action = action[0] else: - action = Action(name = self.action_slug) + action = Action(name = action_slug) action.save() if resource.exists(): resource = resource[0] else: - resource = Resource(name = self.resource_name, url= resource_link) + resource = Resource(name = resource_name, url= resource_link) resource.save() action_resource = Action_Resource.objects.filter(action = action, resource = resource) diff --git a/courses/views.py b/courses/views.py index e6531ec..abd8ef0 100644 --- a/courses/views.py +++ b/courses/views.py @@ -19,6 +19,8 @@ from users.models import User from files.forms import FileForm from files.models import TopicFile +from django.urls import reverse + from datetime import date class IndexView(LoginRequiredMixin, NotificationMixin, generic.ListView): @@ -430,7 +432,7 @@ class CreateTopicView(LoginRequiredMixin, HasRoleMixin, NotificationMixin, gener self.object.save() action = super(CreateTopicView, self).createorRetrieveAction("create Topic") super(CreateTopicView, self).createNotification("Topic "+ self.object.name + " was created", - resource_name=self.object.name, resource_link= 'topics/'+self.object.slug, + resource_name=self.object.name, resource_link= reverse('course:view_topic',args=[self.object.slug]), actor=self.request.user, users = self.object.subject.course.students.all() ) return super(CreateTopicView, self).form_valid(form) diff --git a/forum/views.py b/forum/views.py index f154429..3683b19 100644 --- a/forum/views.py +++ b/forum/views.py @@ -13,6 +13,7 @@ from core.mixins import NotificationMixin from core.models import Action, Resource from .forms import ForumForm, PostForm, PostAnswerForm +from django.urls import reverse """ Forum Section @@ -57,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, + resource_name=self.object.name, resource_link= reverse('course:forum:view', args=[self.object.slug]), actor=self.request.user, users = self.object.topic.subject.students.all() ) return self.success_url diff --git a/links/views.py b/links/views.py index c889f75..ac44846 100644 --- a/links/views.py +++ b/links/views.py @@ -10,9 +10,11 @@ from rolepermissions.mixins import HasRoleMixin from courses.models import Topic from .models import Link from .forms import * +from core.mixins import NotificationMixin +from django.urls import reverse # Create your views here. -class CreateLink(LoginRequiredMixin, HasRoleMixin, generic.CreateView): +class CreateLink(LoginRequiredMixin, HasRoleMixin, NotificationMixin, generic.CreateView): allowed_roles = ['professor', 'system_admin'] template_name = 'links/create_link.html' form_class = CreateLinkForm @@ -24,9 +26,12 @@ class CreateLink(LoginRequiredMixin, HasRoleMixin, generic.CreateView): topic = get_object_or_404(Topic, slug = self.kwargs.get('slug')) self.object.topic = topic messages.success(self.request, _('Link created successfully!')) - #messages.error(self.request, _("An error occurred when trying to create the link")) + self.object.save() - #return self.success_url + super(CreateLink, self).createNotification(message="created a Link at "+ self.object.topic.name, actor=self.request.user, + resource_name=self.object.name, resource_link= reverse('course:view_topic', args=[self.object.topic.slug]), + users=self.object.topic.subject.students.all()) + return self.get_success_url() def get_context_data(self,**kwargs): context = {} @@ -43,7 +48,7 @@ def deleteLink(request,linkname): link.delete() template_name = 'links/delete_link.html' messages.success(request,_("Link deleted Successfully!")) - #messages.error(request, _("An error occurred when trying to delete the link")) + return redirect('course:manage') def render_link(request, id): diff --git a/poll/views.py b/poll/views.py index 85f479e..3d9d414 100644 --- a/poll/views.py +++ b/poll/views.py @@ -73,8 +73,8 @@ class CreatePoll(LoginRequiredMixin,HasRoleMixin, NotificationMixin,generic.Crea self.object.name = str(self.object) self.object.save() - super(CreatePoll, self).createNotification(message="created 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]), + super(CreatePoll, self).createNotification(message="created a Poll at "+ self.object.topic.name, actor=self.request.user, + resource_name=self.object.name, resource_link= reverse('course:view_topic', args=[self.object.topic.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'): -- libgit2 0.21.2