From 1905b483b32fd81fbb8d7fc9e7979c621222142e Mon Sep 17 00:00:00 2001 From: Matheus Lins Date: Thu, 17 Nov 2016 05:26:08 -0300 Subject: [PATCH] improviment the exercise's create model --- courses/views.py | 2 +- exercise/admin.py | 7 +------ exercise/forms.py | 4 ++-- exercise/migrations/0001_initial.py | 27 +++++++++++++-------------- exercise/migrations/0002_auto_20161117_0217.py | 36 ------------------------------------ exercise/migrations/0003_auto_20161117_0351.py | 20 -------------------- exercise/migrations/0004_auto_20161117_0357.py | 32 -------------------------------- exercise/models.py | 22 +++++++--------------- exercise/templates/exercise/create_exercise.html | 148 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------- exercise/views.py | 6 +++--- 10 files changed, 116 insertions(+), 188 deletions(-) delete mode 100644 exercise/migrations/0002_auto_20161117_0217.py delete mode 100644 exercise/migrations/0003_auto_20161117_0351.py delete mode 100644 exercise/migrations/0004_auto_20161117_0357.py diff --git a/courses/views.py b/courses/views.py index 1b5bc7d..7df623e 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, File +from exercise.models import Exercise from files.forms import FileForm from files.models import TopicFile from functools import reduce diff --git a/exercise/admin.py b/exercise/admin.py index 5148c5e..0c0deb5 100644 --- a/exercise/admin.py +++ b/exercise/admin.py @@ -1,13 +1,8 @@ from django.contrib import admin -from .models import Exercise, File +from .models import Exercise class ExerciseAdmin(admin.ModelAdmin): list_display = ['name_exercise'] search_fields = ['name_exercise'] -class FileAdmin(admin.ModelAdmin): - list_display = ['name_file'] - search_fields = ['name_file'] - admin.site.register(Exercise, ExerciseAdmin) -admin.site.register(File, FileAdmin) diff --git a/exercise/forms.py b/exercise/forms.py index b73c74c..e620862 100644 --- a/exercise/forms.py +++ b/exercise/forms.py @@ -10,7 +10,7 @@ class ExerciseForm(forms.ModelForm): class Meta: model = Exercise fields = ['name_exercise', 'description', 'init_date', - 'end_date', 'name_exercise'] + 'end_date', 'file'] class UpdateExerciseForm(forms.ModelForm): @@ -18,4 +18,4 @@ class UpdateExerciseForm(forms.ModelForm): class Meta: model = Exercise fields = ['name_exercise', 'description', 'init_date', - 'end_date', 'grade', 'name_exercise'] + 'end_date', 'grade', 'file'] diff --git a/exercise/migrations/0001_initial.py b/exercise/migrations/0001_initial.py index fe48abc..afe5e54 100644 --- a/exercise/migrations/0001_initial.py +++ b/exercise/migrations/0001_initial.py @@ -1,10 +1,12 @@ # -*- coding: utf-8 -*- -# Generated by Django 1.10 on 2016-11-17 05:17 +# Generated by Django 1.10 on 2016-11-17 08:09 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 +import exercise.models class Migration(migrations.Migration): @@ -12,7 +14,9 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ('core', '0001_initial'), + ('courses', '0002_auto_20161117_0217'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('core', '0002_auto_20161117_0217'), ] operations = [ @@ -20,21 +24,16 @@ class Migration(migrations.Migration): name='Exercise', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('description', models.TextField(blank=True, verbose_name='Descrição')), + ('name_exercise', models.CharField(max_length=100, verbose_name='Exercise Name')), + ('description', models.TextField(blank=True, verbose_name='Description')), ('init_date', models.DateField(verbose_name='Begin of Subject Date')), ('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)), - ], - ), - migrations.CreateModel( - name='File', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('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')), + ('file', models.FileField(upload_to=exercise.models.file_path)), + ('file_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='exercise_type', to='core.MimeType', verbose_name='Type file')), + ('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')), ], ), ] diff --git a/exercise/migrations/0002_auto_20161117_0217.py b/exercise/migrations/0002_auto_20161117_0217.py deleted file mode 100644 index 1a5b96c..0000000 --- a/exercise/migrations/0002_auto_20161117_0217.py +++ /dev/null @@ -1,36 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10 on 2016-11-17 05:17 -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 = [ - ('courses', '0002_auto_20161117_0217'), - ('exercise', '0001_initial'), - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - 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/migrations/0003_auto_20161117_0351.py b/exercise/migrations/0003_auto_20161117_0351.py deleted file mode 100644 index f30dc21..0000000 --- a/exercise/migrations/0003_auto_20161117_0351.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10 on 2016-11-17 06:51 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('exercise', '0002_auto_20161117_0217'), - ] - - operations = [ - migrations.AlterField( - model_name='file', - name='name', - field=models.CharField(blank=True, max_length=100, null=True, verbose_name='Nome do arquivo'), - ), - ] diff --git a/exercise/migrations/0004_auto_20161117_0357.py b/exercise/migrations/0004_auto_20161117_0357.py deleted file mode 100644 index 6e8e6c1..0000000 --- a/exercise/migrations/0004_auto_20161117_0357.py +++ /dev/null @@ -1,32 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10 on 2016-11-17 06:57 -from __future__ import unicode_literals - -import datetime -from django.db import migrations, models -from django.utils.timezone import utc - - -class Migration(migrations.Migration): - - dependencies = [ - ('exercise', '0003_auto_20161117_0351'), - ] - - operations = [ - migrations.RenameField( - model_name='file', - old_name='name', - new_name='name_file', - ), - migrations.RemoveField( - model_name='exercise', - name='name', - ), - migrations.AddField( - model_name='exercise', - name='name_exercise', - field=models.CharField(default=datetime.datetime(2016, 11, 17, 6, 57, 41, 28915, tzinfo=utc), max_length=100, verbose_name='Nome do Exercício'), - preserve_default=False, - ), - ] diff --git a/exercise/models.py b/exercise/models.py index e4a26a3..9ecd5ae 100644 --- a/exercise/models.py +++ b/exercise/models.py @@ -20,24 +20,16 @@ It represents the Exercises inside topic. class Exercise(models.Model): - topic = models.ForeignKey(Topic, verbose_name=_('Topic'), related_name='exercises') - professors = models.ManyToManyField(User, verbose_name=_('Professors'), related_name='professors_exercise', blank=True) - students = models.ManyToManyField(User, verbose_name=_('Students'), related_name='subject_exercise', blank = True) - description = models.TextField(_('Descrição'), blank=True) + name_exercise = models.CharField(_('Name'), max_length=100) + description = models.TextField(_('Description'), blank=True) init_date = models.DateField(_('Begin of Subject Date')) end_date = models.DateField(_('End of Subject Date')) grade = models.DecimalField(max_digits=20, decimal_places=2, default=Decimal('0.00'), null=True) - name_exercise = models.CharField(_('Nome do Exercício'), max_length=100) - - def __str__(self): - return self.name_exercise - - -class File(models.Model): - name_file = models.CharField(_('Nome do arquivo'), max_length=100, blank=True, null=True) - file = models.FileField(upload_to='uploads/%Y/%m/%d') - exercise = models.ForeignKey(Exercise, related_name='file_exercise') + topic = models.ForeignKey(Topic, verbose_name=_('Topic'), related_name='exercises') + professors = models.ManyToManyField(User, verbose_name=_('Professors'), related_name='professors_exercise', blank=True) + students = models.ManyToManyField(User, verbose_name=_('Students'), related_name='subject_exercise', blank = True) + file = models.FileField(upload_to=file_path) file_type = models.ForeignKey(MimeType, verbose_name=_('Type file'), related_name='exercise_type') def __str__(self): - return self.name_file \ No newline at end of file + return self.name_exercise \ No newline at end of file diff --git a/exercise/templates/exercise/create_exercise.html b/exercise/templates/exercise/create_exercise.html index 4a376f7..93d52c1 100644 --- a/exercise/templates/exercise/create_exercise.html +++ b/exercise/templates/exercise/create_exercise.html @@ -9,74 +9,104 @@ - + {% endfor %} + +
+
+

{% trans 'The file size shouldnt exceed 10MB' %}

+
+
+ +
+
+ + +
+
+ + + + + + diff --git a/exercise/views.py b/exercise/views.py index 727a5e4..542d375 100644 --- a/exercise/views.py +++ b/exercise/views.py @@ -48,19 +48,19 @@ class CreateExercise(LoginRequiredMixin, HasRoleMixin, LogMixin, NotificationMix topic = get_object_or_404(Topic, slug = self.kwargs.get('slug')) self.object.topic = topic self.object.name = str(self.object) + self.object.exercise = self.object self.object.professors = topic.subject.professors self.object.students = topic.subject.students # Set MimeType exercise = self.request.FILES['exercise_url'] - self.object.file_exercise.file = exercise try: if exercise: exercise_type = exercise.content_type # Check if exist a mimetype in database try: - self.object.file_exercise.file_type = MimeType.objects.get(typ = exercise_type) + self.object.file_type = MimeType.objects.get(typ = exercise_type) # Create if not except: mtype = MimeType.objects.create( @@ -68,7 +68,7 @@ class CreateExercise(LoginRequiredMixin, HasRoleMixin, LogMixin, NotificationMix icon = mime_type_to_material_icons[exercise_type] ) mtype.save() - self.object.file_exercise.file_type = mtype + self.object.file_type = mtype except: print('Exercise not uploaded') -- libgit2 0.21.2