Commit 2d4f41617310a5e26325eaebb608903817611c7c

Authored by fbormann
1 parent f31dfec9

added functional notifications for poll, links and forum #207

core/mixins.py
... ... @@ -51,13 +51,13 @@ class NotificationMixin(object):
51 51 if action.exists():
52 52 action = action[0]
53 53 else:
54   - action = Action(name = self.action_slug)
  54 + action = Action(name = action_slug)
55 55 action.save()
56 56  
57 57 if resource.exists():
58 58 resource = resource[0]
59 59 else:
60   - resource = Resource(name = self.resource_name, url= resource_link)
  60 + resource = Resource(name = resource_name, url= resource_link)
61 61 resource.save()
62 62  
63 63 action_resource = Action_Resource.objects.filter(action = action, resource = resource)
... ...
courses/views.py
... ... @@ -19,6 +19,8 @@ from users.models import User
19 19 from files.forms import FileForm
20 20 from files.models import TopicFile
21 21  
  22 +from django.urls import reverse
  23 +
22 24 from datetime import date
23 25  
24 26 class IndexView(LoginRequiredMixin, NotificationMixin, generic.ListView):
... ... @@ -430,7 +432,7 @@ class CreateTopicView(LoginRequiredMixin, HasRoleMixin, NotificationMixin, gener
430 432 self.object.save()
431 433 action = super(CreateTopicView, self).createorRetrieveAction("create Topic")
432 434 super(CreateTopicView, self).createNotification("Topic "+ self.object.name + " was created",
433   - resource_name=self.object.name, resource_link= 'topics/'+self.object.slug,
  435 + resource_name=self.object.name, resource_link= reverse('course:view_topic',args=[self.object.slug]),
434 436 actor=self.request.user, users = self.object.subject.course.students.all() )
435 437  
436 438 return super(CreateTopicView, self).form_valid(form)
... ...
forum/views.py
... ... @@ -13,6 +13,7 @@ from core.mixins import NotificationMixin
13 13 from core.models import Action, Resource
14 14  
15 15 from .forms import ForumForm, PostForm, PostAnswerForm
  16 +from django.urls import reverse
16 17  
17 18 """
18 19 Forum Section
... ... @@ -57,7 +58,7 @@ class CreateForumView(LoginRequiredMixin, generic.edit.CreateView, NotificationM
57 58  
58 59 action = super(CreateForumView, self).createorRetrieveAction("create Topic")
59 60 super(CreateForumView, self).createNotification("Forum "+ self.object.name + " was created",
60   - resource_name=self.object.name, resource_link= 'topics/'+self.object.slug,
  61 + resource_name=self.object.name, resource_link= reverse('course:forum:view', args=[self.object.slug]),
61 62 actor=self.request.user, users = self.object.topic.subject.students.all() )
62 63 return self.success_url
63 64  
... ...
links/views.py
... ... @@ -10,9 +10,11 @@ from rolepermissions.mixins import HasRoleMixin
10 10 from courses.models import Topic
11 11 from .models import Link
12 12 from .forms import *
  13 +from core.mixins import NotificationMixin
  14 +from django.urls import reverse
13 15  
14 16 # Create your views here.
15   -class CreateLink(LoginRequiredMixin, HasRoleMixin, generic.CreateView):
  17 +class CreateLink(LoginRequiredMixin, HasRoleMixin, NotificationMixin, generic.CreateView):
16 18 allowed_roles = ['professor', 'system_admin']
17 19 template_name = 'links/create_link.html'
18 20 form_class = CreateLinkForm
... ... @@ -24,9 +26,12 @@ class CreateLink(LoginRequiredMixin, HasRoleMixin, generic.CreateView):
24 26 topic = get_object_or_404(Topic, slug = self.kwargs.get('slug'))
25 27 self.object.topic = topic
26 28 messages.success(self.request, _('Link created successfully!'))
27   - #messages.error(self.request, _("An error occurred when trying to create the link"))
  29 +
28 30 self.object.save()
29   - #return self.success_url
  31 + super(CreateLink, self).createNotification(message="created a Link at "+ self.object.topic.name, actor=self.request.user,
  32 + resource_name=self.object.name, resource_link= reverse('course:view_topic', args=[self.object.topic.slug]),
  33 + users=self.object.topic.subject.students.all())
  34 +
30 35 return self.get_success_url()
31 36 def get_context_data(self,**kwargs):
32 37 context = {}
... ... @@ -43,7 +48,7 @@ def deleteLink(request,linkname):
43 48 link.delete()
44 49 template_name = 'links/delete_link.html'
45 50 messages.success(request,_("Link deleted Successfully!"))
46   - #messages.error(request, _("An error occurred when trying to delete the link"))
  51 +
47 52 return redirect('course:manage')
48 53  
49 54 def render_link(request, id):
... ...
poll/views.py
... ... @@ -73,8 +73,8 @@ class CreatePoll(LoginRequiredMixin,HasRoleMixin, NotificationMixin,generic.Crea
73 73 self.object.name = str(self.object)
74 74 self.object.save()
75 75  
76   - super(CreatePoll, self).createNotification(message="created a Poll "+ self.object.name, actor=self.request.user,
77   - resource_name=self.object.name, resource_link= reverse('course:poll:view_poll', args=[self.object.slug]),
  76 + super(CreatePoll, self).createNotification(message="created a Poll at "+ self.object.topic.name, actor=self.request.user,
  77 + resource_name=self.object.name, resource_link= reverse('course:view_topic', args=[self.object.topic.slug]),
78 78 users=self.object.topic.subject.students.all())
79 79 for key in self.request.POST:
80 80 if(key != 'csrfmiddlewaretoken' and key != 'name' and key != 'limit_date' and key != 'all_students' and key != 'students'):
... ...