diff --git a/courses/templates/subject/form_view_teacher.html b/courses/templates/subject/form_view_teacher.html index cc4cb7d..12e9fa7 100644 --- a/courses/templates/subject/form_view_teacher.html +++ b/courses/templates/subject/form_view_teacher.html @@ -123,6 +123,19 @@ +
+

{% trans 'Exercises' %}

+
+
+ {# dropdown de create exercício #} + +
+ {% include "exercise/create_exercise.html" %} {# opções de cancelar e editar no modo de edição #} diff --git a/courses/templates/topic/index.html b/courses/templates/topic/index.html index edee607..05913ab 100644 --- a/courses/templates/topic/index.html +++ b/courses/templates/topic/index.html @@ -120,7 +120,7 @@
-

{% trans 'Students - Especific Exercises' %}

+

{% trans 'Students - Specific Exercises' %}


{# mostra a lista de usuários caso seja um professor ou admin #} @@ -128,8 +128,9 @@ {% for user in users %} {% include "exercise/card_list_user.html" %} {% endfor %} + {% endif %} {# caso seja um estudante, mostra a lista de exercícios proposta a ele #} - {% elif user|has_role:'student'%} + {% if user|has_role:'student'%} {% for exercise in exercises %} {% include "exercise/card_topic_exercises.html" %} {% endfor %} diff --git a/courses/views.py b/courses/views.py index 3291fe6..4ff7965 100644 --- a/courses/views.py +++ b/courses/views.py @@ -16,7 +16,7 @@ from django.shortcuts import get_object_or_404 from django.urls import reverse from django.utils.translation import ugettext_lazy as _ from django.views import generic -from exercise.models import Exercise +from exercise.models import Exercise, File from files.forms import FileForm from files.models import TopicFile from functools import reduce @@ -622,12 +622,13 @@ class TopicsView(LoginRequiredMixin, LogMixin, generic.ListView): activitys = Activity.objects.filter(topic__name = topic.name) students_activit = User.objects.filter(activities__in = Activity.objects.all()) materials = Material.objects.filter(topic = topic) - if has_role(self.request.user, 'professor'): - users = User.objects.filter(subject_student__in = Subject.objects.all()) - context['users'] = users - elif has_role(self.request.user, 'student'): - exercises = Exercise.objects.all().filter(students=self.request.user) - context['exercises'] = exercises + + users = User.objects.filter(subject_student__in = Subject.objects.all()) + context['users'] = users + exercises = Exercise.objects.filter(Q(students=self.request.user)|Q(professors=self.request.user)) + context['exercises'] = exercises + files = File.objects.all() + context['files'] = files context['topic'] = topic context['subject'] = topic.subject diff --git a/exercise/migrations/0001_initial.py b/exercise/migrations/0001_initial.py index ca9214b..9b790b9 100644 --- a/exercise/migrations/0001_initial.py +++ b/exercise/migrations/0001_initial.py @@ -1,8 +1,9 @@ # -*- coding: utf-8 -*- -# Generated by Django 1.10 on 2016-11-17 03:09 +# Generated by Django 1.10 on 2016-11-17 04:25 from __future__ import unicode_literals from decimal import Decimal +from django.conf import settings from django.db import migrations, models import django.db.models.deletion @@ -12,6 +13,9 @@ class Migration(migrations.Migration): initial = True dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('courses', '0002_auto_20161117_0009'), + ('core', '0002_auto_20161117_0009'), ] operations = [ @@ -24,6 +28,9 @@ class Migration(migrations.Migration): ('end_date', models.DateField(verbose_name='End of Subject Date')), ('grade', models.DecimalField(decimal_places=2, default=Decimal('0.00'), max_digits=20, null=True)), ('name', models.CharField(max_length=100)), + ('professors', models.ManyToManyField(blank=True, related_name='professors_exercise', to=settings.AUTH_USER_MODEL, verbose_name='Professors')), + ('students', models.ManyToManyField(blank=True, related_name='subject_exercise', to=settings.AUTH_USER_MODEL, verbose_name='Students')), + ('topic', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='exercises', to='courses.Topic', verbose_name='Topic')), ], ), migrations.CreateModel( @@ -33,6 +40,7 @@ class Migration(migrations.Migration): ('name', models.CharField(max_length=100)), ('file', models.FileField(upload_to='uploads/%Y/%m/%d')), ('exercise', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='file', to='exercise.Exercise')), + ('file_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='file_files', to='core.MimeType', verbose_name='Type file')), ], ), ] diff --git a/exercise/migrations/0002_auto_20161117_0009.py b/exercise/migrations/0002_auto_20161117_0009.py deleted file mode 100644 index 9b05f22..0000000 --- a/exercise/migrations/0002_auto_20161117_0009.py +++ /dev/null @@ -1,36 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10 on 2016-11-17 03:09 -from __future__ import unicode_literals - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - initial = True - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('exercise', '0001_initial'), - ('courses', '0002_auto_20161117_0009'), - ] - - operations = [ - migrations.AddField( - model_name='exercise', - name='professors', - field=models.ManyToManyField(blank=True, related_name='professors_exercise', to=settings.AUTH_USER_MODEL, verbose_name='Professors'), - ), - migrations.AddField( - model_name='exercise', - name='students', - field=models.ManyToManyField(blank=True, related_name='subject_exercise', to=settings.AUTH_USER_MODEL, verbose_name='Students'), - ), - migrations.AddField( - model_name='exercise', - name='topic', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='exercises', to='courses.Topic', verbose_name='Topic'), - ), - ] diff --git a/exercise/models.py b/exercise/models.py index 29e3ded..e01f620 100644 --- a/exercise/models.py +++ b/exercise/models.py @@ -3,6 +3,7 @@ from decimal import Decimal from django.db import models from django.utils.translation import ugettext_lazy as _ from users.models import User +from core.models import MimeType """ Function to return the path where the file should be saved @@ -35,6 +36,7 @@ class File(models.Model): name = models.CharField(max_length=100) file = models.FileField(upload_to='uploads/%Y/%m/%d') exercise = models.ForeignKey(Exercise, related_name='file') - + file_type = models.ForeignKey(MimeType, verbose_name=_('Type file'), related_name='file_files') + def __str__(self): return self.name \ No newline at end of file diff --git a/exercise/templates/exercise/card_list_user.html b/exercise/templates/exercise/card_list_user.html index 952e9ae..c927e63 100644 --- a/exercise/templates/exercise/card_list_user.html +++ b/exercise/templates/exercise/card_list_user.html @@ -1,33 +1,65 @@ {% load static i18n list_topic_foruns permission_tags widget_tweaks professor_access list_topic_exercises %} -
-
-
-