Commit fe8a347921f2abb937b8d559eff7f66ed37df900
1 parent
3b391774
Exists in
master
and in
5 other branches
notification for poll creation was created #207
Showing
5 changed files
with
13 additions
and
9 deletions
Show diff stats
app/templates/home_teacher_student_content.html
... | ... | @@ -11,7 +11,7 @@ |
11 | 11 | </div> |
12 | 12 | <div class="col-xs-10 col-md-11"> |
13 | 13 | <i class="fa fa-pencil-square-o" aria-hidden="true"></i> |
14 | - <h4 class="resource_inline"><b>{{ notification.actor }}</b></h4> | |
14 | + <h4 class="resource_inline"><b>{{ notification.actor.username }}</b></h4> | |
15 | 15 | <p class="resource_inline">{{notification.message}} em : <a href="{% url 'core:notification_read' notification.id %}">{{ notification.action_resource.resource.name }}</a></p> |
16 | 16 | <p class="timePost"><i> {{ notification.datetime|timesince }} {% trans "ago" %} </i></p> |
17 | 17 | </div> | ... | ... |
core/mixins.py
... | ... | @@ -44,7 +44,8 @@ class NotificationMixin(object): |
44 | 44 | action_slug = '' |
45 | 45 | resource_name = '' |
46 | 46 | |
47 | - def createNotification(self, message='', actor=None, users = User.objects.all(), resource_slug='' ,action_slug = '', resource_name='', resource_link=''): #the default will be a broadcast | |
47 | + def createNotification(self, message='', actor=None, users = User.objects.all(), resource_slug='' ,action_slug = '', | |
48 | + resource_name='', resource_link=''): #the default will be a broadcast | |
48 | 49 | action = Action.objects.filter(slug = action_slug) |
49 | 50 | resource = Resource.objects.filter(slug = resource_slug) |
50 | 51 | if action.exists(): | ... | ... |
forum/views.py
... | ... | @@ -58,7 +58,7 @@ class CreateForumView(LoginRequiredMixin, generic.edit.CreateView, NotificationM |
58 | 58 | action = super(CreateForumView, self).createorRetrieveAction("create Topic") |
59 | 59 | super(CreateForumView, self).createNotification("Forum "+ self.object.name + " was created", |
60 | 60 | resource_name=self.object.name, resource_link= 'topics/'+self.object.slug, |
61 | - actor=self.request.user, users = self.object.topic.subject.course.students.all() ) | |
61 | + actor=self.request.user, users = self.object.topic.subject.students.all() ) | |
62 | 62 | return self.success_url |
63 | 63 | |
64 | 64 | def render_forum(request, forum): |
... | ... | @@ -162,8 +162,8 @@ class CreatePostView(LoginRequiredMixin, generic.edit.CreateView, NotificationMi |
162 | 162 | self.object.user = self.request.user |
163 | 163 | |
164 | 164 | self.object.save() |
165 | - #super(CreatePostView, self).createNotification(self.object.user.username + " posted on " + self.object.forum,name, | |
166 | - #resource_slug = self.object.forum.slug, actor=self.request.user, users= self.object.forum.topic.) | |
165 | + super(CreatePostView, self).createNotification(self.object.user.username + " posted on " + self.object.forum,name, | |
166 | + resource_slug = self.object.forum.slug, actor=self.request.user, users= self.object.forum.topic.subject.students.all()) | |
167 | 167 | |
168 | 168 | return super(CreatePostView, self).form_valid(form) |
169 | 169 | ... | ... |
poll/models.py
poll/views.py
... | ... | @@ -9,7 +9,7 @@ from django.utils.translation import ugettext_lazy as _ |
9 | 9 | from rolepermissions.verifications import has_role |
10 | 10 | from rolepermissions.verifications import has_object_permission |
11 | 11 | from django.db.models import Q |
12 | -# from django.views.generic.edit import FormMixin | |
12 | +from django.urls import reverse | |
13 | 13 | |
14 | 14 | from .forms import PollForm |
15 | 15 | from .models import Poll, Answer, AnswersStudent |
... | ... | @@ -41,7 +41,7 @@ class ViewPoll(LoginRequiredMixin,generic.DetailView): |
41 | 41 | return context |
42 | 42 | |
43 | 43 | |
44 | -class CreatePoll(LoginRequiredMixin,HasRoleMixin,generic.CreateView): | |
44 | +class CreatePoll(LoginRequiredMixin,HasRoleMixin, NotificationMixin,generic.CreateView): | |
45 | 45 | |
46 | 46 | allowed_roles = ['professor', 'system_admin'] |
47 | 47 | login_url = reverse_lazy("core:home") |
... | ... | @@ -63,15 +63,19 @@ class CreatePoll(LoginRequiredMixin,HasRoleMixin,generic.CreateView): |
63 | 63 | context.context_data['keys'] = keys |
64 | 64 | context.context_data['form'] = form |
65 | 65 | context.status_code = 400 |
66 | - # return self.render_to_response(context, status = 400) | |
66 | + s | |
67 | 67 | return context |
68 | 68 | |
69 | 69 | def form_valid(self, form): |
70 | 70 | self.object = form.save(commit = False) |
71 | 71 | topic = get_object_or_404(Topic, slug = self.kwargs.get('slug')) |
72 | 72 | self.object.topic = topic |
73 | + self.object.name = str(self.object) | |
73 | 74 | self.object.save() |
74 | 75 | |
76 | + super(CreatePoll, self).createNotification(message="create 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]), | |
78 | + users=self.object.topic.subject.students.all()) | |
75 | 79 | for key in self.request.POST: |
76 | 80 | if(key != 'csrfmiddlewaretoken' and key != 'name' and key != 'limit_date' and key != 'all_students' and key != 'students'): |
77 | 81 | answer = Answer(answer=self.request.POST[key],order=key,poll=self.object) | ... | ... |