Commit 8efbd63d0ee9e569f56533fe2a07e9857ce67f7a
1 parent
ee830676
Exists in
master
and in
5 other branches
create forms delivery material
Showing
4 changed files
with
84 additions
and
1 deletions
Show diff stats
courses/forms.py
1 | from django import forms | 1 | from django import forms |
2 | from django.utils.translation import ugettext_lazy as _ | 2 | from django.utils.translation import ugettext_lazy as _ |
3 | -from .models import CourseCategory, Course, Subject, Topic, ActivityFile, Activity | 3 | +from .models import CourseCategory, Course, Subject, Topic, ActivityFile, Activity, FileMaterial, LinkMaterial |
4 | from s3direct.widgets import S3DirectWidget | 4 | from s3direct.widgets import S3DirectWidget |
5 | 5 | ||
6 | 6 | ||
@@ -188,3 +188,13 @@ class ActivityForm(forms.ModelForm): | @@ -188,3 +188,13 @@ class ActivityForm(forms.ModelForm): | ||
188 | class Meta: | 188 | class Meta: |
189 | model = Activity | 189 | model = Activity |
190 | fields = ['topic', 'limit_date', 'students','all_students'] | 190 | fields = ['topic', 'limit_date', 'students','all_students'] |
191 | + | ||
192 | +class FileMaterialForm(forms.ModelForm): | ||
193 | + class Meta: | ||
194 | + model = FileMaterial | ||
195 | + fields = ['material', 'file', 'name'] | ||
196 | + | ||
197 | +class LinkMaterialForm(forms.ModelForm): | ||
198 | + class Meta: | ||
199 | + model = LinkMaterial | ||
200 | + fields = ['material', 'name', 'description','url'] |
@@ -0,0 +1,27 @@ | @@ -0,0 +1,27 @@ | ||
1 | +# -*- coding: utf-8 -*- | ||
2 | +# Generated by Django 1.10 on 2016-10-17 04:17 | ||
3 | +from __future__ import unicode_literals | ||
4 | + | ||
5 | +from django.db import migrations | ||
6 | + | ||
7 | + | ||
8 | +class Migration(migrations.Migration): | ||
9 | + | ||
10 | + dependencies = [ | ||
11 | + ('core', '0002_mymetype'), | ||
12 | + ('courses', '0005_file'), | ||
13 | + ] | ||
14 | + | ||
15 | + operations = [ | ||
16 | + migrations.RemoveField( | ||
17 | + model_name='file', | ||
18 | + name='material_ptr', | ||
19 | + ), | ||
20 | + migrations.RemoveField( | ||
21 | + model_name='file', | ||
22 | + name='typ', | ||
23 | + ), | ||
24 | + migrations.DeleteModel( | ||
25 | + name='File', | ||
26 | + ), | ||
27 | + ] |
@@ -0,0 +1,35 @@ | @@ -0,0 +1,35 @@ | ||
1 | +# -*- coding: utf-8 -*- | ||
2 | +# Generated by Django 1.10 on 2016-10-17 04:55 | ||
3 | +from __future__ import unicode_literals | ||
4 | + | ||
5 | +from django.db import migrations, models | ||
6 | +import django.db.models.deletion | ||
7 | + | ||
8 | + | ||
9 | +class Migration(migrations.Migration): | ||
10 | + | ||
11 | + dependencies = [ | ||
12 | + ('courses', '0006_auto_20161017_0117'), | ||
13 | + ] | ||
14 | + | ||
15 | + operations = [ | ||
16 | + migrations.CreateModel( | ||
17 | + name='FileMaterial', | ||
18 | + fields=[ | ||
19 | + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), | ||
20 | + ('file', models.FileField(upload_to='uploads/%Y/%m/%d')), | ||
21 | + ('name', models.CharField(max_length=100)), | ||
22 | + ('material', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='material_file', to='courses.Material', verbose_name='Material')), | ||
23 | + ], | ||
24 | + ), | ||
25 | + migrations.CreateModel( | ||
26 | + name='LinkMaterial', | ||
27 | + fields=[ | ||
28 | + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), | ||
29 | + ('name', models.CharField(max_length=100)), | ||
30 | + ('description', models.TextField()), | ||
31 | + ('url', models.URLField(max_length=300, verbose_name='Link')), | ||
32 | + ('material', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='material_link', to='courses.Material', verbose_name='Material')), | ||
33 | + ], | ||
34 | + ), | ||
35 | + ] |
courses/models.py
@@ -114,6 +114,17 @@ class Material(Resource): | @@ -114,6 +114,17 @@ class Material(Resource): | ||
114 | topic = models.ForeignKey(Topic, verbose_name = _('Topic'), related_name='materials') | 114 | topic = models.ForeignKey(Topic, verbose_name = _('Topic'), related_name='materials') |
115 | students = models.ManyToManyField(User, verbose_name = _('Students'), related_name='materials') | 115 | students = models.ManyToManyField(User, verbose_name = _('Students'), related_name='materials') |
116 | all_students = models.BooleanField(_('All Students'), default=False) | 116 | all_students = models.BooleanField(_('All Students'), default=False) |
117 | + | ||
118 | +class FileMaterial(models.Model): | ||
119 | + material = models.ForeignKey(Material, verbose_name = _('Material'), related_name='material_file') | ||
120 | + file = models.FileField(upload_to='uploads/%Y/%m/%d') | ||
121 | + name = models.CharField(max_length=100) | ||
122 | + | ||
123 | +class LinkMaterial(models.Model): | ||
124 | + material = models.ForeignKey(Material, verbose_name = _('Material'), related_name='material_link') | ||
125 | + name = models.CharField(max_length=100) | ||
126 | + description = models.TextField() | ||
127 | + url = models.URLField('Link', max_length=300) | ||
117 | 128 | ||
118 | """ | 129 | """ |
119 | It is a category for each subject. | 130 | It is a category for each subject. |