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 | 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'): | ... | ... |