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 %}
-