Commit 83fc54c7e59b30b8bb5d098f008827faed42990f

Authored by Matheus Lins
1 parent d41cff2f

create exercise #95

courses/views.py
... ... @@ -636,8 +636,6 @@ class TopicsView(LoginRequiredMixin, LogMixin, generic.ListView):
636 636 context['users'] = users
637 637 exercises = Exercise.objects.filter(Q(students=self.request.user)|Q(professors=self.request.user))
638 638 context['exercises'] = exercises
639   - files = File.objects.all()
640   - context['files'] = files
641 639  
642 640 context['topic'] = topic
643 641 context['subject'] = topic.subject
... ...
exercise/models.py
... ... @@ -20,16 +20,17 @@ It represents the Exercises inside topic.
20 20  
21 21  
22 22 class Exercise(models.Model):
  23 +
23 24 name_exercise = models.CharField(_('Name'), max_length=100)
24 25 description = models.TextField(_('Description'), blank=True)
25 26 init_date = models.DateField(_('Begin of Subject Date'))
26 27 end_date = models.DateField(_('End of Subject Date'))
27 28 grade = models.DecimalField(max_digits=20, decimal_places=2, default=Decimal('0.00'), null=True)
28   - topic = models.ForeignKey(Topic, verbose_name=_('Topic'), related_name='exercises')
  29 + topic = models.ForeignKey(Topic, verbose_name=_('Topic'), related_name='exercise_topic')
29 30 professors = models.ManyToManyField(User, verbose_name=_('Professors'), related_name='professors_exercise', blank=True)
30 31 students = models.ManyToManyField(User, verbose_name=_('Students'), related_name='subject_exercise', blank = True)
31   - file = models.FileField(upload_to=file_path)
32   - file_type = models.ForeignKey(MimeType, verbose_name=_('Type file'), related_name='exercise_type')
  32 + file = models.FileField(upload_to='uploads/%Y/%m/%d')
  33 + file_type = models.ForeignKey(MimeType, verbose_name=_('Type file'), related_name='exercise_type',null=True)
33 34  
34 35 def __str__(self):
35 36 return self.name_exercise
36 37 \ No newline at end of file
... ...
exercise/templates/exercise/card_list_user.html
... ... @@ -36,10 +36,9 @@
36 36 <div class="resource_inline">
37 37 <h4>{% trans 'Delivery' %}</h4>
38 38 </div>
39   - {% for file in files %}
40   - <li>{{file.exercise}}: <a href="{{file.file.url}}" target="_blank">{{file.name_file}}</a></li>
41   - {% endfor %}
42   -
  39 + {% for exercise in exercises %}
  40 + <li><a href="{{exercise.file.url}}" target="_blank">{{exercise.name_exercise}}</a></li>
  41 + {% endfor %}
43 42 </div>
44 43 <div class="col-md-4">
45 44 <div class="resource_inline">
... ...
exercise/templates/exercise/card_topic_exercises.html
... ... @@ -39,9 +39,7 @@
39 39 {% if exercise.file %}
40 40 <div class="form-group">
41 41 <label for="DelExc" class="col-md-4 control-label"> <i class="fa fa-file-archive-o fa-3x" aria-hidden="true">
42   - {% for file in exercise.file %}
43   - <a href="{{exercise.file.url}}">{% trans 'File' %}</a>
44   - {% endfor %}
  42 + <a href="{{exercise.file.url}}" target="_blank">{% trans 'File' %}</a>
45 43 </i>
46 44 </div>
47 45 {% else %}
... ...
exercise/views.py
... ... @@ -47,13 +47,9 @@ class CreateExercise(LoginRequiredMixin, HasRoleMixin, LogMixin, NotificationMix
47 47 self.object = form.save(commit = False)
48 48 topic = get_object_or_404(Topic, slug = self.kwargs.get('slug'))
49 49 self.object.topic = topic
50   - self.object.name = str(self.object)
51   - self.object.exercise = self.object
52   - self.object.professors = topic.subject.professors
53   - self.object.students = topic.subject.students
54 50  
55 51 # Set MimeType
56   - exercise = self.request.FILES['exercise_url']
  52 + exercise = self.request.FILES['file']
57 53 try:
58 54 if exercise:
59 55 exercise_type = exercise.content_type
... ... @@ -73,6 +69,9 @@ class CreateExercise(LoginRequiredMixin, HasRoleMixin, LogMixin, NotificationMix
73 69 print('Exercise not uploaded')
74 70  
75 71 self.object.save()
  72 + self.object.professors = topic.subject.professors.all()
  73 + self.object.students = topic.subject.students.all()
  74 + self.object.save()
76 75 #CREATE LOG
77 76 self.log_context['topic_id'] = topic.id
78 77 self.log_context['topic_name'] = topic.name
... ... @@ -86,12 +85,12 @@ class CreateExercise(LoginRequiredMixin, HasRoleMixin, LogMixin, NotificationMix
86 85  
87 86  
88 87 #CREATE NOTIFICATION
89   - super(CreateExercise, self).createNotification(message="uploaded a Exercise "+ self.object.name, actor=self.request.user,
90   - resource_name=self.object.name, resource_link= reverse('course:view_topic', args=[self.object.topic.slug]),
  88 + super(CreateExercise, self).createNotification(message="uploaded a Exercise "+ self.object.name_exercise, actor=self.request.user,
  89 + resource_name=self.object.name_exercise, resource_link= reverse('course:view_topic', args=[self.object.topic.slug]),
91 90 users=self.object.topic.subject.students.all())
92 91  
93 92 self.log_context['exercise_id'] = self.object.id
94   - self.log_context['exercise_name'] = self.object.name
  93 + self.log_context['exercise_name'] = self.object.name_exercise
95 94 self.log_context['topic_id'] = self.object.topic.id
96 95 self.log_context['topic_name'] = self.object.topic.name
97 96 self.log_context['topic_slug'] = self.object.topic.slug
... ... @@ -138,7 +137,7 @@ def render_exercise(request, id):
138 137  
139 138 log_context = {}
140 139 log_context['exercise_id'] = exercise.id
141   - log_context['exercise_name'] = exercise.name
  140 + log_context['exercise_name'] = exercise.name_exercise
142 141 log_context['topic_id'] = exercise.topic.id
143 142 log_context['topic_name'] = exercise.topic.name
144 143 log_context['topic_slug'] = exercise.topic.slug
... ...