Commit e71c793fdda1c82f2ff4ff595c5f35ced1ed7d18

Authored by filipecmedeiros
1 parent 707b27ef

[Issue #399]

courses/templates/subject/form_view_teacher.html
@@ -21,7 +21,7 @@ @@ -21,7 +21,7 @@
21 {% professor_subject topic.subject user as dropdown_topic %} 21 {% professor_subject topic.subject user as dropdown_topic %}
22 {% if dropdown_topic %} 22 {% if dropdown_topic %}
23 <ul class="dropdown-menu pull-right" aria-labelledby="moreActions"> 23 <ul class="dropdown-menu pull-right" aria-labelledby="moreActions">
24 - <li><a href="" data-toggle="modal" data-target="#myModal4"><i class="fa fa-files-o fa-fw" aria-hidden="true"></i>&nbsp; {% trans "Replicate" %}</a></li> 24 + <li><a href="{% url 'course:replicate_topic' topic.slug %}"><i class="fa fa-files-o fa-fw" aria-hidden="true"></i>&nbsp; {% trans "Replicate" %}</a></li>
25 <li><a href="javascript:show_editation('{{topic.slug}}')"><i class="fa fa-pencil fa-fw" aria-hidden="true"></i>&nbsp; {% trans "Edit" %}</a></li> 25 <li><a href="javascript:show_editation('{{topic.slug}}')"><i class="fa fa-pencil fa-fw" aria-hidden="true"></i>&nbsp; {% trans "Edit" %}</a></li>
26 <li><a href="javascript:void(0)" data-toggle="modal" data-target="#removeTopic"><i class="fa fa-trash fa-fw" aria-hidden="true"></i>&nbsp; {% trans "Remove" %}</a></li> 26 <li><a href="javascript:void(0)" data-toggle="modal" data-target="#removeTopic"><i class="fa fa-trash fa-fw" aria-hidden="true"></i>&nbsp; {% trans "Remove" %}</a></li>
27 </ul> 27 </ul>
courses/templates/topic/replicate.html 0 → 100644
@@ -0,0 +1,38 @@ @@ -0,0 +1,38 @@
  1 +{% extends 'subject/index.html' %}
  2 +
  3 +{% load static i18n permission_tags widget_tweaks %}
  4 +
  5 +{% block content %}
  6 +
  7 + <div class="panel panel-default">
  8 + <div class="panel-body">
  9 + <form class="form-group " method="post" action="">
  10 + {% csrf_token %}
  11 +
  12 + <div class="form-group {% if topic.name.errors %} has-error{% endif %}">
  13 + <label for="id_name" class="control-label label-static"> {% trans 'Name'%}</label>
  14 + <textarea class="form-control" id="id_name" maxlength="100" rows="1" name="name" placeholder="Name" type="text" required >{{topic.name}}</textarea>
  15 +
  16 + <span class="help-block">{% trans 'Topic name'%}</span>
  17 + </div>
  18 + <div class="form-group {% if topic.description.errors %} has-error{% endif %}">
  19 + <label for="id_description" class="control-label label-static"> {% trans 'Description'%}</label>
  20 + <textarea class="form-control" id="id_description" name="description" placeholder="Description" type="text"> {{topic.description}}</textarea>
  21 +
  22 + <span class="help-block">{% trans 'Topic description'%}</span>
  23 + </div>
  24 +
  25 + <div class="col-lg-offset-4 col-lg-4">
  26 + <button type="submit" class="btn btn-raised btn-primary btn-lg btn-block">{% trans 'Create' %}</button>
  27 +
  28 + </div>
  29 + </form>
  30 + </div>
  31 + </div>
  32 +
  33 + <script type="text/javascript">
  34 + $(document).ready(function() {
  35 + $('#id_description').summernote({height: 300});
  36 + });
  37 + </script>
  38 +{% endblock content %}
courses/templates/topic/replicate_topic.html
@@ -1,38 +0,0 @@ @@ -1,38 +0,0 @@
1 -{% extends 'subject/index.html' %}  
2 -  
3 -{% load static i18n permission_tags widget_tweaks %}  
4 -  
5 -{% block content %}  
6 -  
7 - <div class="panel panel-default">  
8 - <div class="panel-body">  
9 - <form class="form-group " method="post" action="">  
10 - {% csrf_token %}  
11 -  
12 - <div class="form-group {% if topic.name.errors %} has-error{% endif %}">  
13 - <label for="id_name" class="control-label label-static"> {% trans 'Name'%}</label>  
14 - <input class="form-control" id="id_name" maxlength="100" name="name" placeholder="Name" type="text" value={{topic.name}} required />  
15 -  
16 - <span class="help-block">{% trans 'Topic name'%}</span>  
17 - </div>  
18 - <div class="form-group {% if topic.description.errors %} has-error{% endif %}">  
19 - <label for="id_description" class="control-label label-static"> {% trans 'Description'%}</label>  
20 - <textarea class="form-control" id="id_description" name="description" placeholder="Description" type="text"> {{topic.description}}</textarea>  
21 -  
22 - <span class="help-block">{% trans 'Topic description'%}</span>  
23 - </div>  
24 -  
25 - <div class="col-lg-offset-4 col-lg-4">  
26 - <button type="submit" class="btn btn-raised btn-primary btn-lg btn-block">{% trans 'Create' %}</button>  
27 -  
28 - </div>  
29 - </form>  
30 - </div>  
31 - </div>  
32 -  
33 - <script type="text/javascript">  
34 - $(document).ready(function() {  
35 - $('#id_description').summernote({height: 300});  
36 - });  
37 - </script>  
38 -{% endblock content %}  
courses/views.py
@@ -1022,8 +1022,8 @@ class ReplicateTopicView (LoginRequiredMixin, HasRoleMixin, LogMixin, Notificati @@ -1022,8 +1022,8 @@ class ReplicateTopicView (LoginRequiredMixin, HasRoleMixin, LogMixin, Notificati
1022 1022
1023 allowed_roles = ['professor', 'system_admin'] 1023 allowed_roles = ['professor', 'system_admin']
1024 login_url = reverse_lazy("core:home") 1024 login_url = reverse_lazy("core:home")
1025 - model = Topic  
1026 - template_name = 'topic/replicate_topic.html' 1025 + redirect_field_name = 'next'
  1026 + template_name = 'topic/replicate.html'
1027 form_class = TopicForm 1027 form_class = TopicForm
1028 1028
1029 def get_success_url(self): 1029 def get_success_url(self):
@@ -1032,21 +1032,23 @@ class ReplicateTopicView (LoginRequiredMixin, HasRoleMixin, LogMixin, Notificati @@ -1032,21 +1032,23 @@ class ReplicateTopicView (LoginRequiredMixin, HasRoleMixin, LogMixin, Notificati
1032 def get_context_data(self, **kwargs): 1032 def get_context_data(self, **kwargs):
1033 context = super(ReplicateTopicView, self).get_context_data(**kwargs) 1033 context = super(ReplicateTopicView, self).get_context_data(**kwargs)
1034 topic = get_object_or_404(Topic, slug = self.kwargs.get('slug')) 1034 topic = get_object_or_404(Topic, slug = self.kwargs.get('slug'))
1035 - subject = topic.subject 1035 + subject = Subject.objects.get(pk = topic.subject_id)
1036 context['course'] = subject.course 1036 context['course'] = subject.course
1037 context['subject'] = subject 1037 context['subject'] = subject
1038 context['subjects'] = subject.course.subjects.all() 1038 context['subjects'] = subject.course.subjects.all()
1039 context['topic'] = topic 1039 context['topic'] = topic
1040 return context 1040 return context
1041 1041
1042 -  
1043 def form_valid(self, form): 1042 def form_valid(self, form):
1044 - self.object.subject = self.object.subject.id 1043 + topic = get_object_or_404(Topic, slug = self.kwargs.get('slug'))
  1044 + subject = Subject.objects.get(pk = topic.subject_id)
  1045 +
1045 self.object = form.save(commit = False) 1046 self.object = form.save(commit = False)
  1047 + self.object.topic = topic
  1048 + self.object.subject = subject
1046 self.object.owner = self.request.user 1049 self.object.owner = self.request.user
1047 self.object.save() 1050 self.object.save()
1048 -  
1049 - action = super(ReplicateTopicView, self).createorRetrieveAction("replicate Topic") 1051 + action = super(ReplicateTopicView, self).createorRetrieveAction("create Topic")
1050 super(ReplicateTopicView, self).createNotification("Topic "+ self.object.name + " was created", 1052 super(ReplicateTopicView, self).createNotification("Topic "+ self.object.name + " was created",
1051 resource_name=self.object.name, resource_link= reverse('course:view_topic',args=[self.object.slug]), 1053 resource_name=self.object.name, resource_link= reverse('course:view_topic',args=[self.object.slug]),
1052 actor=self.request.user, users = self.object.subject.course.students.all() ) 1054 actor=self.request.user, users = self.object.subject.course.students.all() )
@@ -1065,4 +1067,4 @@ class ReplicateTopicView (LoginRequiredMixin, HasRoleMixin, LogMixin, Notificati @@ -1065,4 +1067,4 @@ class ReplicateTopicView (LoginRequiredMixin, HasRoleMixin, LogMixin, Notificati
1065 1067
1066 super(ReplicateTopicView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) 1068 super(ReplicateTopicView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context)
1067 1069
1068 - return super(ReplicateTopicView, self).form_valid(form) 1070 + return super(ReplicateTopicView, self).form_valid(form)
1069 \ No newline at end of file 1071 \ No newline at end of file