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