Commit bf9838af2c2d0971e3d00e736fd0756e30b0ffd8
1 parent
e4873697
Exists in
master
and in
5 other branches
model and tamplatetags exercises
Showing
26 changed files
with
285 additions
and
454 deletions
Show diff stats
app/migrations/0001_initial.py
1 | # -*- coding: utf-8 -*- | 1 | # -*- coding: utf-8 -*- |
2 | -# Generated by Django 1.10 on 2016-11-03 22:03 | 2 | +# Generated by Django 1.10 on 2016-11-13 17:47 |
3 | from __future__ import unicode_literals | 3 | from __future__ import unicode_literals |
4 | 4 | ||
5 | from django.db import migrations, models | 5 | from django.db import migrations, models |
@@ -26,8 +26,8 @@ class Migration(migrations.Migration): | @@ -26,8 +26,8 @@ class Migration(migrations.Migration): | ||
26 | ('default_from_email', models.EmailField(blank=True, max_length=254, verbose_name='Default from email')), | 26 | ('default_from_email', models.EmailField(blank=True, max_length=254, verbose_name='Default from email')), |
27 | ], | 27 | ], |
28 | options={ | 28 | options={ |
29 | - 'verbose_name_plural': 'Amadeus SMTP settings', | ||
30 | 'verbose_name': 'Amadeus SMTP setting', | 29 | 'verbose_name': 'Amadeus SMTP setting', |
30 | + 'verbose_name_plural': 'Amadeus SMTP settings', | ||
31 | }, | 31 | }, |
32 | ), | 32 | ), |
33 | ] | 33 | ] |
core/migrations/0001_initial.py
1 | # -*- coding: utf-8 -*- | 1 | # -*- coding: utf-8 -*- |
2 | -# Generated by Django 1.10 on 2016-10-24 18:59 | 2 | +# Generated by Django 1.10 on 2016-11-13 17:47 |
3 | from __future__ import unicode_literals | 3 | from __future__ import unicode_literals |
4 | 4 | ||
5 | import autoslug.fields | 5 | import autoslug.fields |
6 | +from django.conf import settings | ||
7 | +import django.contrib.postgres.fields.jsonb | ||
6 | from django.db import migrations, models | 8 | from django.db import migrations, models |
7 | import django.db.models.deletion | 9 | import django.db.models.deletion |
8 | 10 | ||
@@ -12,6 +14,7 @@ class Migration(migrations.Migration): | @@ -12,6 +14,7 @@ class Migration(migrations.Migration): | ||
12 | initial = True | 14 | initial = True |
13 | 15 | ||
14 | dependencies = [ | 16 | dependencies = [ |
17 | + migrations.swappable_dependency(settings.AUTH_USER_MODEL), | ||
15 | ] | 18 | ] |
16 | 19 | ||
17 | operations = [ | 20 | operations = [ |
@@ -24,29 +27,34 @@ class Migration(migrations.Migration): | @@ -24,29 +27,34 @@ class Migration(migrations.Migration): | ||
24 | ('created_date', models.DateField(auto_now_add=True, verbose_name='Created Date')), | 27 | ('created_date', models.DateField(auto_now_add=True, verbose_name='Created Date')), |
25 | ], | 28 | ], |
26 | options={ | 29 | options={ |
27 | - 'verbose_name_plural': 'Actions', | ||
28 | 'verbose_name': 'Action', | 30 | 'verbose_name': 'Action', |
31 | + 'verbose_name_plural': 'Actions', | ||
29 | }, | 32 | }, |
30 | ), | 33 | ), |
31 | migrations.CreateModel( | 34 | migrations.CreateModel( |
32 | name='Action_Resource', | 35 | name='Action_Resource', |
33 | fields=[ | 36 | fields=[ |
34 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), | 37 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
38 | + ('action', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.Action', verbose_name='Action_Applied')), | ||
35 | ], | 39 | ], |
36 | options={ | 40 | options={ |
37 | - 'verbose_name_plural': 'Action_Resources', | ||
38 | 'verbose_name': 'Action_Resource', | 41 | 'verbose_name': 'Action_Resource', |
42 | + 'verbose_name_plural': 'Action_Resources', | ||
39 | }, | 43 | }, |
40 | ), | 44 | ), |
41 | migrations.CreateModel( | 45 | migrations.CreateModel( |
42 | name='Log', | 46 | name='Log', |
43 | fields=[ | 47 | fields=[ |
44 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), | 48 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
49 | + ('component', models.TextField(verbose_name='Component (Module / App)')), | ||
50 | + ('context', django.contrib.postgres.fields.jsonb.JSONField(blank=True, verbose_name='Context')), | ||
45 | ('datetime', models.DateTimeField(auto_now_add=True, verbose_name='Date and Time of action')), | 51 | ('datetime', models.DateTimeField(auto_now_add=True, verbose_name='Date and Time of action')), |
52 | + ('action_resource', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.Action_Resource', verbose_name='Action_Resource')), | ||
53 | + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Actor')), | ||
46 | ], | 54 | ], |
47 | options={ | 55 | options={ |
48 | - 'verbose_name_plural': 'Logs', | ||
49 | 'verbose_name': 'Log', | 56 | 'verbose_name': 'Log', |
57 | + 'verbose_name_plural': 'Logs', | ||
50 | }, | 58 | }, |
51 | ), | 59 | ), |
52 | migrations.CreateModel( | 60 | migrations.CreateModel( |
@@ -57,8 +65,8 @@ class Migration(migrations.Migration): | @@ -57,8 +65,8 @@ class Migration(migrations.Migration): | ||
57 | ('icon', models.CharField(max_length=50, unique=True, verbose_name='Icon')), | 65 | ('icon', models.CharField(max_length=50, unique=True, verbose_name='Icon')), |
58 | ], | 66 | ], |
59 | options={ | 67 | options={ |
60 | - 'verbose_name_plural': 'Amadeus Mime Types', | ||
61 | 'verbose_name': 'Amadeus Mime Type', | 68 | 'verbose_name': 'Amadeus Mime Type', |
69 | + 'verbose_name_plural': 'Amadeus Mime Types', | ||
62 | }, | 70 | }, |
63 | ), | 71 | ), |
64 | migrations.CreateModel( | 72 | migrations.CreateModel( |
@@ -69,10 +77,12 @@ class Migration(migrations.Migration): | @@ -69,10 +77,12 @@ class Migration(migrations.Migration): | ||
69 | ('read', models.BooleanField(default=False, verbose_name='Read')), | 77 | ('read', models.BooleanField(default=False, verbose_name='Read')), |
70 | ('datetime', models.DateTimeField(auto_now_add=True, verbose_name='Date and Time of action')), | 78 | ('datetime', models.DateTimeField(auto_now_add=True, verbose_name='Date and Time of action')), |
71 | ('action_resource', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.Action_Resource', verbose_name='Action_Resource')), | 79 | ('action_resource', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.Action_Resource', verbose_name='Action_Resource')), |
80 | + ('actor', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='notification_Performer', to=settings.AUTH_USER_MODEL, verbose_name='Perfomer')), | ||
81 | + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='notification_Actor', to=settings.AUTH_USER_MODEL, verbose_name='User')), | ||
72 | ], | 82 | ], |
73 | options={ | 83 | options={ |
74 | - 'verbose_name_plural': 'Notifications', | ||
75 | 'verbose_name': 'Notification', | 84 | 'verbose_name': 'Notification', |
85 | + 'verbose_name_plural': 'Notifications', | ||
76 | }, | 86 | }, |
77 | ), | 87 | ), |
78 | migrations.CreateModel( | 88 | migrations.CreateModel( |
@@ -85,8 +95,13 @@ class Migration(migrations.Migration): | @@ -85,8 +95,13 @@ class Migration(migrations.Migration): | ||
85 | ('url', models.CharField(default='', max_length=100, verbose_name='URL')), | 95 | ('url', models.CharField(default='', max_length=100, verbose_name='URL')), |
86 | ], | 96 | ], |
87 | options={ | 97 | options={ |
88 | - 'verbose_name_plural': 'Resources', | ||
89 | 'verbose_name': 'Resource', | 98 | 'verbose_name': 'Resource', |
99 | + 'verbose_name_plural': 'Resources', | ||
90 | }, | 100 | }, |
91 | ), | 101 | ), |
102 | + migrations.AddField( | ||
103 | + model_name='action_resource', | ||
104 | + name='resource', | ||
105 | + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.Resource', verbose_name='Resource'), | ||
106 | + ), | ||
92 | ] | 107 | ] |
core/migrations/0002_auto_20161024_1559.py
@@ -1,50 +0,0 @@ | @@ -1,50 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -# Generated by Django 1.10 on 2016-10-24 18:59 | ||
3 | -from __future__ import unicode_literals | ||
4 | - | ||
5 | -from django.conf import settings | ||
6 | -from django.db import migrations, models | ||
7 | -import django.db.models.deletion | ||
8 | - | ||
9 | - | ||
10 | -class Migration(migrations.Migration): | ||
11 | - | ||
12 | - initial = True | ||
13 | - | ||
14 | - dependencies = [ | ||
15 | - migrations.swappable_dependency(settings.AUTH_USER_MODEL), | ||
16 | - ('core', '0001_initial'), | ||
17 | - ] | ||
18 | - | ||
19 | - operations = [ | ||
20 | - migrations.AddField( | ||
21 | - model_name='notification', | ||
22 | - name='actor', | ||
23 | - field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='notification_Performer', to=settings.AUTH_USER_MODEL, verbose_name='Perfomer'), | ||
24 | - ), | ||
25 | - migrations.AddField( | ||
26 | - model_name='notification', | ||
27 | - name='user', | ||
28 | - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='notification_Actor', to=settings.AUTH_USER_MODEL, verbose_name='User'), | ||
29 | - ), | ||
30 | - migrations.AddField( | ||
31 | - model_name='log', | ||
32 | - name='action_resource', | ||
33 | - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.Action_Resource', verbose_name='Action_Resource'), | ||
34 | - ), | ||
35 | - migrations.AddField( | ||
36 | - model_name='log', | ||
37 | - name='user', | ||
38 | - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Actor'), | ||
39 | - ), | ||
40 | - migrations.AddField( | ||
41 | - model_name='action_resource', | ||
42 | - name='action', | ||
43 | - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.Action', verbose_name='Action_Applied'), | ||
44 | - ), | ||
45 | - migrations.AddField( | ||
46 | - model_name='action_resource', | ||
47 | - name='resource', | ||
48 | - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.Resource', verbose_name='Resource'), | ||
49 | - ), | ||
50 | - ] |
core/migrations/0003_auto_20161101_1457.py
@@ -1,26 +0,0 @@ | @@ -1,26 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -# Generated by Django 1.10 on 2016-11-01 17:57 | ||
3 | -from __future__ import unicode_literals | ||
4 | - | ||
5 | -from django.db import migrations, models | ||
6 | - | ||
7 | - | ||
8 | -class Migration(migrations.Migration): | ||
9 | - | ||
10 | - dependencies = [ | ||
11 | - ('core', '0002_auto_20161024_1559'), | ||
12 | - ] | ||
13 | - | ||
14 | - operations = [ | ||
15 | - migrations.AddField( | ||
16 | - model_name='log', | ||
17 | - name='component', | ||
18 | - field=models.TextField(default='', verbose_name='Component (Module / App)'), | ||
19 | - preserve_default=False, | ||
20 | - ), | ||
21 | - migrations.AddField( | ||
22 | - model_name='log', | ||
23 | - name='context', | ||
24 | - field=models.TextField(blank=True, verbose_name='Context'), | ||
25 | - ), | ||
26 | - ] |
core/migrations/0004_auto_20161110_1215.py
@@ -1,21 +0,0 @@ | @@ -1,21 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -# Generated by Django 1.10 on 2016-11-10 15:15 | ||
3 | -from __future__ import unicode_literals | ||
4 | - | ||
5 | -import django.contrib.postgres.fields.jsonb | ||
6 | -from django.db import migrations | ||
7 | - | ||
8 | - | ||
9 | -class Migration(migrations.Migration): | ||
10 | - | ||
11 | - dependencies = [ | ||
12 | - ('core', '0003_auto_20161101_1457'), | ||
13 | - ] | ||
14 | - | ||
15 | - operations = [ | ||
16 | - migrations.AlterField( | ||
17 | - model_name='log', | ||
18 | - name='context', | ||
19 | - field=django.contrib.postgres.fields.jsonb.JSONField(blank=True, verbose_name='Context'), | ||
20 | - ), | ||
21 | - ] |
courses/admin.py
1 | from django.contrib import admin | 1 | from django.contrib import admin |
2 | 2 | ||
3 | -from .models import CourseCategory, Course, Subject,Topic, Activity, Material, CategorySubject | 3 | +from .models import CourseCategory, Course, Subject, Topic, Activity, Material, CategorySubject, Exercise |
4 | 4 | ||
5 | class CategoryAdmin(admin.ModelAdmin): | 5 | class CategoryAdmin(admin.ModelAdmin): |
6 | - list_display = ['name', 'slug'] | ||
7 | - search_fields = ['name', 'slug'] | 6 | + list_display = ['name', 'slug'] |
7 | + search_fields = ['name', 'slug'] | ||
8 | 8 | ||
9 | class CategorySubjectAdmin(admin.ModelAdmin): | 9 | class CategorySubjectAdmin(admin.ModelAdmin): |
10 | - list_display = ['name', 'slug'] | ||
11 | - search_fields = ['name', 'slug'] | 10 | + list_display = ['name', 'slug'] |
11 | + search_fields = ['name', 'slug'] | ||
12 | 12 | ||
13 | class CourseAdmin(admin.ModelAdmin): | 13 | class CourseAdmin(admin.ModelAdmin): |
14 | - list_display = ['name', 'slug'] | ||
15 | - search_fields = ['name', 'slug'] | 14 | + list_display = ['name', 'slug'] |
15 | + search_fields = ['name', 'slug'] | ||
16 | 16 | ||
17 | class SubjectAdmin(admin.ModelAdmin): | 17 | class SubjectAdmin(admin.ModelAdmin): |
18 | - list_display = ['name', 'slug'] | ||
19 | - search_fields = ['name', 'slug'] | 18 | + list_display = ['name', 'slug'] |
19 | + search_fields = ['name', 'slug'] | ||
20 | 20 | ||
21 | class TopicAdmin(admin.ModelAdmin): | 21 | class TopicAdmin(admin.ModelAdmin): |
22 | - list_display = ['name', 'slug'] | ||
23 | - search_fields = ['name', 'slug'] | 22 | + list_display = ['name', 'slug'] |
23 | + search_fields = ['name', 'slug'] | ||
24 | 24 | ||
25 | class ActivityAdmin(admin.ModelAdmin): | 25 | class ActivityAdmin(admin.ModelAdmin): |
26 | - list_display = ['name', 'slug'] | ||
27 | - search_fields = ['name', 'slug'] | 26 | + list_display = ['name', 'slug'] |
27 | + search_fields = ['name', 'slug'] | ||
28 | 28 | ||
29 | class MaterialAdmin(admin.ModelAdmin): | 29 | class MaterialAdmin(admin.ModelAdmin): |
30 | - list_display = ['name', 'slug'] | ||
31 | - search_fields = ['name', 'slug'] | 30 | + list_display = ['name', 'slug'] |
31 | + search_fields = ['name', 'slug'] | ||
32 | 32 | ||
33 | admin.site.register(CourseCategory, CategoryAdmin) | 33 | admin.site.register(CourseCategory, CategoryAdmin) |
34 | admin.site.register(Course, CourseAdmin) | 34 | admin.site.register(Course, CourseAdmin) |
35 | admin.site.register(Subject, SubjectAdmin) | 35 | admin.site.register(Subject, SubjectAdmin) |
36 | admin.site.register(Topic, TopicAdmin) | 36 | admin.site.register(Topic, TopicAdmin) |
37 | -admin.site.register(Activity,ActivityAdmin) | ||
38 | -admin.site.register(Material,MaterialAdmin) | 37 | +admin.site.register(Activity, ActivityAdmin) |
38 | +admin.site.register(Material, MaterialAdmin) | ||
39 | admin.site.register(CategorySubject, CategorySubjectAdmin) | 39 | admin.site.register(CategorySubject, CategorySubjectAdmin) |
courses/migrations/0001_initial.py
1 | # -*- coding: utf-8 -*- | 1 | # -*- coding: utf-8 -*- |
2 | -# Generated by Django 1.10 on 2016-10-24 18:59 | 2 | +# Generated by Django 1.10 on 2016-11-13 17:47 |
3 | from __future__ import unicode_literals | 3 | from __future__ import unicode_literals |
4 | 4 | ||
5 | import autoslug.fields | 5 | import autoslug.fields |
6 | +from django.conf import settings | ||
6 | from django.db import migrations, models | 7 | from django.db import migrations, models |
7 | import django.db.models.deletion | 8 | import django.db.models.deletion |
8 | import s3direct.fields | 9 | import s3direct.fields |
@@ -14,6 +15,7 @@ class Migration(migrations.Migration): | @@ -14,6 +15,7 @@ class Migration(migrations.Migration): | ||
14 | 15 | ||
15 | dependencies = [ | 16 | dependencies = [ |
16 | ('core', '0001_initial'), | 17 | ('core', '0001_initial'), |
18 | + migrations.swappable_dependency(settings.AUTH_USER_MODEL), | ||
17 | ] | 19 | ] |
18 | 20 | ||
19 | operations = [ | 21 | operations = [ |
@@ -23,6 +25,7 @@ class Migration(migrations.Migration): | @@ -23,6 +25,7 @@ class Migration(migrations.Migration): | ||
23 | ('resource_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='core.Resource')), | 25 | ('resource_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='core.Resource')), |
24 | ('limit_date', models.DateField(verbose_name='Deliver Date')), | 26 | ('limit_date', models.DateField(verbose_name='Deliver Date')), |
25 | ('all_students', models.BooleanField(default=False, verbose_name='All Students')), | 27 | ('all_students', models.BooleanField(default=False, verbose_name='All Students')), |
28 | + ('students', models.ManyToManyField(related_name='activities', to=settings.AUTH_USER_MODEL, verbose_name='Students')), | ||
26 | ], | 29 | ], |
27 | bases=('core.resource',), | 30 | bases=('core.resource',), |
28 | ), | 31 | ), |
@@ -32,10 +35,11 @@ class Migration(migrations.Migration): | @@ -32,10 +35,11 @@ class Migration(migrations.Migration): | ||
32 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), | 35 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
33 | ('pdf', s3direct.fields.S3DirectField()), | 36 | ('pdf', s3direct.fields.S3DirectField()), |
34 | ('name', models.CharField(max_length=100)), | 37 | ('name', models.CharField(max_length=100)), |
38 | + ('diet', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='files', to='courses.Activity')), | ||
35 | ], | 39 | ], |
36 | options={ | 40 | options={ |
37 | - 'verbose_name_plural': 'Activitys Files', | ||
38 | 'verbose_name': 'Activity File', | 41 | 'verbose_name': 'Activity File', |
42 | + 'verbose_name_plural': 'Activitys Files', | ||
39 | }, | 43 | }, |
40 | ), | 44 | ), |
41 | migrations.CreateModel( | 45 | migrations.CreateModel( |
@@ -47,8 +51,8 @@ class Migration(migrations.Migration): | @@ -47,8 +51,8 @@ class Migration(migrations.Migration): | ||
47 | ('create_date', models.DateField(auto_now_add=True, verbose_name='Creation Date')), | 51 | ('create_date', models.DateField(auto_now_add=True, verbose_name='Creation Date')), |
48 | ], | 52 | ], |
49 | options={ | 53 | options={ |
50 | - 'verbose_name_plural': 'Categories', | ||
51 | 'verbose_name': 'Category', | 54 | 'verbose_name': 'Category', |
55 | + 'verbose_name_plural': 'Categories', | ||
52 | }, | 56 | }, |
53 | ), | 57 | ), |
54 | migrations.CreateModel( | 58 | migrations.CreateModel( |
@@ -65,13 +69,12 @@ class Migration(migrations.Migration): | @@ -65,13 +69,12 @@ class Migration(migrations.Migration): | ||
65 | ('end_register_date', models.DateField(verbose_name='Register Date (End)')), | 69 | ('end_register_date', models.DateField(verbose_name='Register Date (End)')), |
66 | ('init_date', models.DateField(verbose_name='Begin of Course Date')), | 70 | ('init_date', models.DateField(verbose_name='Begin of Course Date')), |
67 | ('end_date', models.DateField(verbose_name='End of Course Date')), | 71 | ('end_date', models.DateField(verbose_name='End of Course Date')), |
68 | - ('image', models.ImageField(blank=True, upload_to='courses/', verbose_name='Image')), | ||
69 | ('public', models.BooleanField(default=False, verbose_name='Public')), | 72 | ('public', models.BooleanField(default=False, verbose_name='Public')), |
70 | ], | 73 | ], |
71 | options={ | 74 | options={ |
72 | - 'ordering': ('create_date', 'name'), | ||
73 | - 'verbose_name_plural': 'Courses', | ||
74 | 'verbose_name': 'Course', | 75 | 'verbose_name': 'Course', |
76 | + 'verbose_name_plural': 'Courses', | ||
77 | + 'ordering': ('create_date', 'name'), | ||
75 | }, | 78 | }, |
76 | ), | 79 | ), |
77 | migrations.CreateModel( | 80 | migrations.CreateModel( |
@@ -83,8 +86,8 @@ class Migration(migrations.Migration): | @@ -83,8 +86,8 @@ class Migration(migrations.Migration): | ||
83 | ('create_date', models.DateField(auto_now_add=True, verbose_name='Creation Date')), | 86 | ('create_date', models.DateField(auto_now_add=True, verbose_name='Creation Date')), |
84 | ], | 87 | ], |
85 | options={ | 88 | options={ |
86 | - 'verbose_name_plural': 'Categories', | ||
87 | 'verbose_name': 'Category', | 89 | 'verbose_name': 'Category', |
90 | + 'verbose_name_plural': 'Categories', | ||
88 | }, | 91 | }, |
89 | ), | 92 | ), |
90 | migrations.CreateModel( | 93 | migrations.CreateModel( |
@@ -109,6 +112,7 @@ class Migration(migrations.Migration): | @@ -109,6 +112,7 @@ class Migration(migrations.Migration): | ||
109 | fields=[ | 112 | fields=[ |
110 | ('resource_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='core.Resource')), | 113 | ('resource_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='core.Resource')), |
111 | ('all_students', models.BooleanField(default=False, verbose_name='All Students')), | 114 | ('all_students', models.BooleanField(default=False, verbose_name='All Students')), |
115 | + ('students', models.ManyToManyField(related_name='materials', to=settings.AUTH_USER_MODEL, verbose_name='Students')), | ||
112 | ], | 116 | ], |
113 | bases=('core.resource',), | 117 | bases=('core.resource',), |
114 | ), | 118 | ), |
@@ -124,11 +128,15 @@ class Migration(migrations.Migration): | @@ -124,11 +128,15 @@ class Migration(migrations.Migration): | ||
124 | ('end_date', models.DateField(verbose_name='End of Subject Date')), | 128 | ('end_date', models.DateField(verbose_name='End of Subject Date')), |
125 | ('create_date', models.DateTimeField(auto_now_add=True, verbose_name='Creation Date')), | 129 | ('create_date', models.DateTimeField(auto_now_add=True, verbose_name='Creation Date')), |
126 | ('update_date', models.DateTimeField(auto_now=True, verbose_name='Date of last update')), | 130 | ('update_date', models.DateTimeField(auto_now=True, verbose_name='Date of last update')), |
131 | + ('category', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='subject_category', to='courses.CategorySubject', verbose_name='Category')), | ||
132 | + ('course', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='subjects', to='courses.Course', verbose_name='Course')), | ||
133 | + ('professors', models.ManyToManyField(related_name='professors_subjects', to=settings.AUTH_USER_MODEL, verbose_name='Professors')), | ||
134 | + ('students', models.ManyToManyField(blank=True, related_name='subject_student', to=settings.AUTH_USER_MODEL, verbose_name='Students')), | ||
127 | ], | 135 | ], |
128 | options={ | 136 | options={ |
129 | - 'ordering': ('create_date', 'name'), | ||
130 | - 'verbose_name_plural': 'Subjects', | ||
131 | 'verbose_name': 'Subject', | 137 | 'verbose_name': 'Subject', |
138 | + 'verbose_name_plural': 'Subjects', | ||
139 | + 'ordering': ('create_date', 'name'), | ||
132 | }, | 140 | }, |
133 | ), | 141 | ), |
134 | migrations.CreateModel( | 142 | migrations.CreateModel( |
@@ -138,10 +146,11 @@ class Migration(migrations.Migration): | @@ -138,10 +146,11 @@ class Migration(migrations.Migration): | ||
138 | ('name', models.CharField(max_length=100, verbose_name='Name')), | 146 | ('name', models.CharField(max_length=100, verbose_name='Name')), |
139 | ('slug', autoslug.fields.AutoSlugField(editable=False, populate_from='name', unique=True, verbose_name='Slug')), | 147 | ('slug', autoslug.fields.AutoSlugField(editable=False, populate_from='name', unique=True, verbose_name='Slug')), |
140 | ('description', models.TextField(blank=True, verbose_name='Description')), | 148 | ('description', models.TextField(blank=True, verbose_name='Description')), |
149 | + ('subjects', models.ManyToManyField(to='courses.Subject')), | ||
141 | ], | 150 | ], |
142 | options={ | 151 | options={ |
143 | - 'verbose_name_plural': 'subject categories', | ||
144 | 'verbose_name': 'subject category', | 152 | 'verbose_name': 'subject category', |
153 | + 'verbose_name_plural': 'subject categories', | ||
145 | }, | 154 | }, |
146 | ), | 155 | ), |
147 | migrations.CreateModel( | 156 | migrations.CreateModel( |
@@ -154,11 +163,53 @@ class Migration(migrations.Migration): | @@ -154,11 +163,53 @@ class Migration(migrations.Migration): | ||
154 | ('create_date', models.DateTimeField(auto_now_add=True, verbose_name='Creation Date')), | 163 | ('create_date', models.DateTimeField(auto_now_add=True, verbose_name='Creation Date')), |
155 | ('update_date', models.DateTimeField(auto_now=True, verbose_name='Date of last update')), | 164 | ('update_date', models.DateTimeField(auto_now=True, verbose_name='Date of last update')), |
156 | ('visible', models.BooleanField(default=False, verbose_name='Visible')), | 165 | ('visible', models.BooleanField(default=False, verbose_name='Visible')), |
166 | + ('owner', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Owner')), | ||
167 | + ('subject', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='courses.Subject', verbose_name='Subject')), | ||
157 | ], | 168 | ], |
158 | options={ | 169 | options={ |
159 | - 'ordering': ('create_date', 'name'), | ||
160 | - 'verbose_name_plural': 'Topics', | ||
161 | 'verbose_name': 'Topic', | 170 | 'verbose_name': 'Topic', |
171 | + 'verbose_name_plural': 'Topics', | ||
172 | + 'ordering': ('create_date', 'name'), | ||
162 | }, | 173 | }, |
163 | ), | 174 | ), |
175 | + migrations.AddField( | ||
176 | + model_name='material', | ||
177 | + name='topic', | ||
178 | + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='materials', to='courses.Topic', verbose_name='Topic'), | ||
179 | + ), | ||
180 | + migrations.AddField( | ||
181 | + model_name='linkmaterial', | ||
182 | + name='material', | ||
183 | + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='material_link', to='courses.Material', verbose_name='Material'), | ||
184 | + ), | ||
185 | + migrations.AddField( | ||
186 | + model_name='filematerial', | ||
187 | + name='material', | ||
188 | + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='material_file', to='courses.Material', verbose_name='Material'), | ||
189 | + ), | ||
190 | + migrations.AddField( | ||
191 | + model_name='course', | ||
192 | + name='category', | ||
193 | + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='course_category', to='courses.CourseCategory', verbose_name='Category'), | ||
194 | + ), | ||
195 | + migrations.AddField( | ||
196 | + model_name='course', | ||
197 | + name='coordenator', | ||
198 | + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='course_coordenator', to=settings.AUTH_USER_MODEL, verbose_name='Coordenator'), | ||
199 | + ), | ||
200 | + migrations.AddField( | ||
201 | + model_name='course', | ||
202 | + name='professors', | ||
203 | + field=models.ManyToManyField(related_name='courses_professors', to=settings.AUTH_USER_MODEL, verbose_name='Professors'), | ||
204 | + ), | ||
205 | + migrations.AddField( | ||
206 | + model_name='course', | ||
207 | + name='students', | ||
208 | + field=models.ManyToManyField(blank=True, related_name='courses_student', to=settings.AUTH_USER_MODEL, verbose_name='Students'), | ||
209 | + ), | ||
210 | + migrations.AddField( | ||
211 | + model_name='activity', | ||
212 | + name='topic', | ||
213 | + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='activities', to='courses.Topic', verbose_name='Topic'), | ||
214 | + ), | ||
164 | ] | 215 | ] |
courses/migrations/0002_auto_20161024_1559.py
@@ -1,105 +0,0 @@ | @@ -1,105 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -# Generated by Django 1.10 on 2016-10-24 18:59 | ||
3 | -from __future__ import unicode_literals | ||
4 | - | ||
5 | -from django.conf import settings | ||
6 | -from django.db import migrations, models | ||
7 | -import django.db.models.deletion | ||
8 | - | ||
9 | - | ||
10 | -class Migration(migrations.Migration): | ||
11 | - | ||
12 | - initial = True | ||
13 | - | ||
14 | - dependencies = [ | ||
15 | - migrations.swappable_dependency(settings.AUTH_USER_MODEL), | ||
16 | - ('courses', '0001_initial'), | ||
17 | - ] | ||
18 | - | ||
19 | - operations = [ | ||
20 | - migrations.AddField( | ||
21 | - model_name='topic', | ||
22 | - name='owner', | ||
23 | - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Owner'), | ||
24 | - ), | ||
25 | - migrations.AddField( | ||
26 | - model_name='topic', | ||
27 | - name='subject', | ||
28 | - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='courses.Subject', verbose_name='Subject'), | ||
29 | - ), | ||
30 | - migrations.AddField( | ||
31 | - model_name='subjectcategory', | ||
32 | - name='subjects', | ||
33 | - field=models.ManyToManyField(to='courses.Subject'), | ||
34 | - ), | ||
35 | - migrations.AddField( | ||
36 | - model_name='subject', | ||
37 | - name='category', | ||
38 | - field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='subject_category', to='courses.CategorySubject', verbose_name='Category'), | ||
39 | - ), | ||
40 | - migrations.AddField( | ||
41 | - model_name='subject', | ||
42 | - name='course', | ||
43 | - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='subjects', to='courses.Course', verbose_name='Course'), | ||
44 | - ), | ||
45 | - migrations.AddField( | ||
46 | - model_name='subject', | ||
47 | - name='professors', | ||
48 | - field=models.ManyToManyField(related_name='professors_subjects', to=settings.AUTH_USER_MODEL, verbose_name='Professors'), | ||
49 | - ), | ||
50 | - migrations.AddField( | ||
51 | - model_name='subject', | ||
52 | - name='students', | ||
53 | - field=models.ManyToManyField(blank=True, related_name='subject_student', to=settings.AUTH_USER_MODEL, verbose_name='Students'), | ||
54 | - ), | ||
55 | - migrations.AddField( | ||
56 | - model_name='material', | ||
57 | - name='students', | ||
58 | - field=models.ManyToManyField(related_name='materials', to=settings.AUTH_USER_MODEL, verbose_name='Students'), | ||
59 | - ), | ||
60 | - migrations.AddField( | ||
61 | - model_name='material', | ||
62 | - name='topic', | ||
63 | - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='materials', to='courses.Topic', verbose_name='Topic'), | ||
64 | - ), | ||
65 | - migrations.AddField( | ||
66 | - model_name='linkmaterial', | ||
67 | - name='material', | ||
68 | - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='material_link', to='courses.Material', verbose_name='Material'), | ||
69 | - ), | ||
70 | - migrations.AddField( | ||
71 | - model_name='filematerial', | ||
72 | - name='material', | ||
73 | - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='material_file', to='courses.Material', verbose_name='Material'), | ||
74 | - ), | ||
75 | - migrations.AddField( | ||
76 | - model_name='course', | ||
77 | - name='category', | ||
78 | - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='course_category', to='courses.CourseCategory', verbose_name='Category'), | ||
79 | - ), | ||
80 | - migrations.AddField( | ||
81 | - model_name='course', | ||
82 | - name='professors', | ||
83 | - field=models.ManyToManyField(related_name='courses_professors', to=settings.AUTH_USER_MODEL, verbose_name='Professors'), | ||
84 | - ), | ||
85 | - migrations.AddField( | ||
86 | - model_name='course', | ||
87 | - name='students', | ||
88 | - field=models.ManyToManyField(blank=True, related_name='courses_student', to=settings.AUTH_USER_MODEL, verbose_name='Students'), | ||
89 | - ), | ||
90 | - migrations.AddField( | ||
91 | - model_name='activityfile', | ||
92 | - name='diet', | ||
93 | - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='files', to='courses.Activity'), | ||
94 | - ), | ||
95 | - migrations.AddField( | ||
96 | - model_name='activity', | ||
97 | - name='students', | ||
98 | - field=models.ManyToManyField(related_name='activities', to=settings.AUTH_USER_MODEL, verbose_name='Students'), | ||
99 | - ), | ||
100 | - migrations.AddField( | ||
101 | - model_name='activity', | ||
102 | - name='topic', | ||
103 | - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='activities', to='courses.Topic', verbose_name='Topic'), | ||
104 | - ), | ||
105 | - ] |
@@ -0,0 +1,25 @@ | @@ -0,0 +1,25 @@ | ||
1 | +# -*- coding: utf-8 -*- | ||
2 | +# Generated by Django 1.10 on 2016-11-13 19:30 | ||
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', '0001_initial'), | ||
13 | + ] | ||
14 | + | ||
15 | + operations = [ | ||
16 | + migrations.CreateModel( | ||
17 | + name='Exercise', | ||
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 | + ('exercise', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='material_exercise', to='courses.Material', verbose_name='Material')), | ||
23 | + ], | ||
24 | + ), | ||
25 | + ] |
courses/migrations/0003_remove_course_image.py
@@ -1,19 +0,0 @@ | @@ -1,19 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -# Generated by Django 1.10 on 2016-11-06 12:35 | ||
3 | -from __future__ import unicode_literals | ||
4 | - | ||
5 | -from django.db import migrations | ||
6 | - | ||
7 | - | ||
8 | -class Migration(migrations.Migration): | ||
9 | - | ||
10 | - dependencies = [ | ||
11 | - ('courses', '0002_auto_20161024_1559'), | ||
12 | - ] | ||
13 | - | ||
14 | - operations = [ | ||
15 | - migrations.RemoveField( | ||
16 | - model_name='course', | ||
17 | - name='image', | ||
18 | - ), | ||
19 | - ] |
courses/migrations/0004_course_coordenator.py
@@ -1,23 +0,0 @@ | @@ -1,23 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -# Generated by Django 1.10 on 2016-11-08 15:00 | ||
3 | -from __future__ import unicode_literals | ||
4 | - | ||
5 | -from django.conf import settings | ||
6 | -from django.db import migrations, models | ||
7 | -import django.db.models.deletion | ||
8 | - | ||
9 | - | ||
10 | -class Migration(migrations.Migration): | ||
11 | - | ||
12 | - dependencies = [ | ||
13 | - migrations.swappable_dependency(settings.AUTH_USER_MODEL), | ||
14 | - ('courses', '0003_remove_course_image'), | ||
15 | - ] | ||
16 | - | ||
17 | - operations = [ | ||
18 | - migrations.AddField( | ||
19 | - model_name='course', | ||
20 | - name='coordenator', | ||
21 | - field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='course_coordenator', to=settings.AUTH_USER_MODEL, verbose_name='Coordenator'), | ||
22 | - ), | ||
23 | - ] |
courses/models.py
@@ -157,6 +157,14 @@ class LinkMaterial(models.Model): | @@ -157,6 +157,14 @@ class LinkMaterial(models.Model): | ||
157 | name = models.CharField(max_length=100) | 157 | name = models.CharField(max_length=100) |
158 | description = models.TextField() | 158 | description = models.TextField() |
159 | url = models.URLField('Link', max_length=300) | 159 | url = models.URLField('Link', max_length=300) |
160 | +""" | ||
161 | +It represents the Exercises inside topic. | ||
162 | +""" | ||
163 | + | ||
164 | +class Exercise(models.Model): | ||
165 | + exercise = models.ForeignKey(Material, verbose_name = _('Material'), related_name='material_exercise') | ||
166 | + file = models.FileField(upload_to='uploads/%Y/%m/%d') | ||
167 | + name = models.CharField(max_length=100) | ||
160 | 168 | ||
161 | """ | 169 | """ |
162 | It is a category for each subject. | 170 | It is a category for each subject. |
courses/templates/subject/form_view_student.html
1 | - {% load static i18n list_topic_foruns permission_tags widget_tweaks professor_access%} | 1 | +{% load static i18n list_topic_foruns permission_tags widget_tweaks professor_access%} |
2 | +{% professor_subject topic.subject user as professor_links %} | ||
2 | 3 | ||
3 | - | ||
4 | - {% block javascript %} | ||
5 | - <script type="text/javascript" src="{% static 'js/forum.js' %}"></script> | ||
6 | - <script src="{% static 'js/file.js' %}"></script> | ||
7 | - <script type="text/javascript" src="{% static 'js/material.js' %}"></script> | ||
8 | - <script type = "text/javascript" src="{% static 'links.js' %}"></script> | ||
9 | - {% endblock %} | 4 | + {% block javascript %} |
5 | + <script type="text/javascript" src="{% static 'js/forum.js' %}"></script> | ||
6 | + <script src="{% static 'js/file.js' %}"></script> | ||
7 | + <script type="text/javascript" src="{% static 'js/material.js' %}"></script> | ||
8 | + <script type = "text/javascript" src="{% static 'links.js' %}"></script> | ||
9 | + {% endblock %} | ||
10 | <div class="cards-detail"> | 10 | <div class="cards-detail"> |
11 | <div class="panel-group accordion ui-accordion ui-widget ui-helper-reset ui-sortable" role="tablist" aria-multiselectable="false"> | 11 | <div class="panel-group accordion ui-accordion ui-widget ui-helper-reset ui-sortable" role="tablist" aria-multiselectable="false"> |
12 | <div class="group"><div class="panel panel-default"> | 12 | <div class="group"><div class="panel panel-default"> |
@@ -34,16 +34,65 @@ | @@ -34,16 +34,65 @@ | ||
34 | </div> | 34 | </div> |
35 | </div> | 35 | </div> |
36 | </div> | 36 | </div> |
37 | + | ||
38 | + {% if not professor_links %} | ||
39 | + <div class="row"> | ||
40 | + <div class="col-xs-4 col-md-4"> | ||
41 | + <div class="resource_inline"> | ||
42 | + <h4>{% trans 'Material' %}</h4> | ||
43 | + </div> | ||
44 | + <div class="presentation_{{topic.slug}}"> | ||
45 | + {# materiais do tópico no modo de visualização #} | ||
46 | + <ul> | ||
47 | + {% list_topic_file request topic %} | ||
48 | + {% list_topic_link request topic%} | ||
49 | + </ul> | ||
50 | + </div> | ||
51 | + </div> | ||
52 | + {# avaliações d topico #} | ||
53 | + <div class="col-xs-4 col-md-4"> | ||
54 | + <div class="resource_inline"> | ||
55 | + <h4>{% trans 'Activities' %}</h4> | ||
56 | + </div> | ||
57 | + <div class="presentation_{{topic.slug}}"> | ||
58 | + | ||
59 | + {# avaliações do tópico no modo de visualização #} | ||
60 | + <ul> | ||
61 | + {% list_topic_poll request topic %} | ||
62 | + {% list_topic_foruns request topic %} | ||
63 | + </ul> | ||
64 | + </div> | ||
65 | + </div> | ||
66 | + <div class="col-xs-4 col-md-4"> | ||
67 | + <div class="resource_inline"> | ||
68 | + <h4>{% trans 'Exercises' %}</h4> | ||
69 | + </div> | ||
70 | + <div class="presentation_{{topic.slug}}"> | ||
71 | + {# exercício do tópico no modo de visualização #} | ||
72 | + <ul> | ||
73 | + {% list_topic_poll request topic %} | ||
74 | + {% list_topic_foruns request topic %} | ||
75 | + </ul> | ||
76 | + </div> | ||
77 | + <div class="editation editation_{{topic.slug}}"> | ||
78 | + {# exercício do tópico no modo de edição #} | ||
79 | + <ul> | ||
80 | + {% list_topic_file_edit request topic %} | ||
81 | + {% list_topic_link_edit request topic%} | ||
82 | + </ul> | ||
83 | + </div> | ||
84 | + </div> | ||
85 | + {% include "exercise/create_exercise.html" %} | ||
86 | + </div> | ||
87 | + {% endif %} | ||
88 | + | ||
37 | </div> | 89 | </div> |
38 | 90 | ||
39 | </div> | 91 | </div> |
40 | 92 | ||
41 | - {% professor_subject topic.subject user as professor_links %} | ||
42 | - {% if professor_links%} | 93 | + {% if professor_links %} |
43 | {% include "links/create_link.html" %} | 94 | {% include "links/create_link.html" %} |
44 | {% include "links/delete_link.html" %} | 95 | {% include "links/delete_link.html" %} |
45 | - {% else %} | ||
46 | - {% include "exercise/create_exercise.html" %} | ||
47 | {% endif %} | 96 | {% endif %} |
48 | 97 | ||
49 | 98 |
@@ -0,0 +1,27 @@ | @@ -0,0 +1,27 @@ | ||
1 | +from django import template | ||
2 | +from .models import Exercise | ||
3 | + | ||
4 | +register = template.Library() | ||
5 | + | ||
6 | + | ||
7 | +@register.inclusion_tag('subject/form_view_student.html') | ||
8 | +def list_topic_exercise(request, exercise): | ||
9 | + context = { | ||
10 | + 'request': request, | ||
11 | + } | ||
12 | + | ||
13 | + context['exercises'] = Exercise.objects.filter(exercise = exercise) | ||
14 | + | ||
15 | + return context | ||
16 | + | ||
17 | + | ||
18 | +@register.inclusion_tag('topic/list_file_edit.html') | ||
19 | +def list_topic_exercise_edit(request, exercise): | ||
20 | + context = { | ||
21 | + 'request': request, | ||
22 | + } | ||
23 | + | ||
24 | + context['exercises'] = Exercise.objects.filter(exercise = exercise) | ||
25 | + context['exercise'] = exercise | ||
26 | + | ||
27 | + return context |
courses/templatetags/list_topic_foruns.py
@@ -11,6 +11,7 @@ register = template.Library() | @@ -11,6 +11,7 @@ register = template.Library() | ||
11 | Template tag to load all the foruns of a post | 11 | Template tag to load all the foruns of a post |
12 | """ | 12 | """ |
13 | 13 | ||
14 | + | ||
14 | @register.inclusion_tag('topic/list_topic_foruns.html') | 15 | @register.inclusion_tag('topic/list_topic_foruns.html') |
15 | def list_topic_foruns(request, topic): | 16 | def list_topic_foruns(request, topic): |
16 | context = { | 17 | context = { |
@@ -21,6 +22,7 @@ def list_topic_foruns(request, topic): | @@ -21,6 +22,7 @@ def list_topic_foruns(request, topic): | ||
21 | 22 | ||
22 | return context | 23 | return context |
23 | 24 | ||
25 | + | ||
24 | @register.inclusion_tag('subject/poll_item_actions.html') | 26 | @register.inclusion_tag('subject/poll_item_actions.html') |
25 | def list_topic_poll(request, topic): | 27 | def list_topic_poll(request, topic): |
26 | context = { | 28 | context = { |
@@ -44,6 +46,7 @@ def list_topic_poll_teacher(request, topic): | @@ -44,6 +46,7 @@ def list_topic_poll_teacher(request, topic): | ||
44 | 46 | ||
45 | return context | 47 | return context |
46 | 48 | ||
49 | + | ||
47 | @register.inclusion_tag('topic/list_file.html') | 50 | @register.inclusion_tag('topic/list_file.html') |
48 | def list_topic_file(request, topic): | 51 | def list_topic_file(request, topic): |
49 | context = { | 52 | context = { |
@@ -55,6 +58,7 @@ def list_topic_file(request, topic): | @@ -55,6 +58,7 @@ def list_topic_file(request, topic): | ||
55 | 58 | ||
56 | return context | 59 | return context |
57 | 60 | ||
61 | + | ||
58 | @register.inclusion_tag('topic/list_file_edit.html') | 62 | @register.inclusion_tag('topic/list_file_edit.html') |
59 | def list_topic_file_edit(request, topic): | 63 | def list_topic_file_edit(request, topic): |
60 | context = { | 64 | context = { |
@@ -66,6 +70,7 @@ def list_topic_file_edit(request, topic): | @@ -66,6 +70,7 @@ def list_topic_file_edit(request, topic): | ||
66 | 70 | ||
67 | return context | 71 | return context |
68 | 72 | ||
73 | + | ||
69 | @register.inclusion_tag('topic/link_topic_list_edit.html') | 74 | @register.inclusion_tag('topic/link_topic_list_edit.html') |
70 | def list_topic_link_edit(request,topic): | 75 | def list_topic_link_edit(request,topic): |
71 | context = { | 76 | context = { |
@@ -75,6 +80,7 @@ def list_topic_link_edit(request,topic): | @@ -75,6 +80,7 @@ def list_topic_link_edit(request,topic): | ||
75 | context['topic'] = topic | 80 | context['topic'] = topic |
76 | return context | 81 | return context |
77 | 82 | ||
83 | + | ||
78 | @register.inclusion_tag('topic/link_topic_list.html') | 84 | @register.inclusion_tag('topic/link_topic_list.html') |
79 | def list_topic_link(request,topic): | 85 | def list_topic_link(request,topic): |
80 | context = { | 86 | context = { |
exam/migrations/0001_initial.py
1 | # -*- coding: utf-8 -*- | 1 | # -*- coding: utf-8 -*- |
2 | -# Generated by Django 1.10 on 2016-10-24 18:59 | 2 | +# Generated by Django 1.10 on 2016-11-13 17:47 |
3 | from __future__ import unicode_literals | 3 | from __future__ import unicode_literals |
4 | 4 | ||
5 | +from django.conf import settings | ||
5 | from django.db import migrations, models | 6 | from django.db import migrations, models |
6 | import django.db.models.deletion | 7 | import django.db.models.deletion |
7 | 8 | ||
@@ -12,6 +13,7 @@ class Migration(migrations.Migration): | @@ -12,6 +13,7 @@ class Migration(migrations.Migration): | ||
12 | 13 | ||
13 | dependencies = [ | 14 | dependencies = [ |
14 | ('courses', '0001_initial'), | 15 | ('courses', '0001_initial'), |
16 | + migrations.swappable_dependency(settings.AUTH_USER_MODEL), | ||
15 | ] | 17 | ] |
16 | 18 | ||
17 | operations = [ | 19 | operations = [ |
@@ -23,9 +25,9 @@ class Migration(migrations.Migration): | @@ -23,9 +25,9 @@ class Migration(migrations.Migration): | ||
23 | ('order', models.PositiveSmallIntegerField(verbose_name='Order')), | 25 | ('order', models.PositiveSmallIntegerField(verbose_name='Order')), |
24 | ], | 26 | ], |
25 | options={ | 27 | options={ |
26 | - 'ordering': ('order',), | ||
27 | - 'verbose_name_plural': 'Answers', | ||
28 | 'verbose_name': 'Answer', | 28 | 'verbose_name': 'Answer', |
29 | + 'verbose_name_plural': 'Answers', | ||
30 | + 'ordering': ('order',), | ||
29 | }, | 31 | }, |
30 | ), | 32 | ), |
31 | migrations.CreateModel( | 33 | migrations.CreateModel( |
@@ -37,8 +39,8 @@ class Migration(migrations.Migration): | @@ -37,8 +39,8 @@ class Migration(migrations.Migration): | ||
37 | ('answer', models.ManyToManyField(related_name='student_answer', to='exam.Answer', verbose_name='Answers Students')), | 39 | ('answer', models.ManyToManyField(related_name='student_answer', to='exam.Answer', verbose_name='Answers Students')), |
38 | ], | 40 | ], |
39 | options={ | 41 | options={ |
40 | - 'verbose_name_plural': 'Answers Student', | ||
41 | 'verbose_name': 'Answer Stundent', | 42 | 'verbose_name': 'Answer Stundent', |
43 | + 'verbose_name_plural': 'Answers Student', | ||
42 | }, | 44 | }, |
43 | ), | 45 | ), |
44 | migrations.CreateModel( | 46 | migrations.CreateModel( |
@@ -49,8 +51,8 @@ class Migration(migrations.Migration): | @@ -49,8 +51,8 @@ class Migration(migrations.Migration): | ||
49 | ('exibe', models.BooleanField(default=False, verbose_name='Exibe?')), | 51 | ('exibe', models.BooleanField(default=False, verbose_name='Exibe?')), |
50 | ], | 52 | ], |
51 | options={ | 53 | options={ |
52 | - 'verbose_name_plural': 'Exams', | ||
53 | 'verbose_name': 'Exam', | 54 | 'verbose_name': 'Exam', |
55 | + 'verbose_name_plural': 'Exams', | ||
54 | }, | 56 | }, |
55 | bases=('courses.activity',), | 57 | bases=('courses.activity',), |
56 | ), | 58 | ), |
@@ -59,4 +61,14 @@ class Migration(migrations.Migration): | @@ -59,4 +61,14 @@ class Migration(migrations.Migration): | ||
59 | name='exam', | 61 | name='exam', |
60 | field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='student_exam', to='exam.Exam', verbose_name='Exam'), | 62 | field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='student_exam', to='exam.Exam', verbose_name='Exam'), |
61 | ), | 63 | ), |
64 | + migrations.AddField( | ||
65 | + model_name='answersstudent', | ||
66 | + name='student', | ||
67 | + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='student', to=settings.AUTH_USER_MODEL, verbose_name='Student'), | ||
68 | + ), | ||
69 | + migrations.AddField( | ||
70 | + model_name='answer', | ||
71 | + name='exam', | ||
72 | + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='answers', to='exam.Exam', verbose_name='Answers'), | ||
73 | + ), | ||
62 | ] | 74 | ] |
exam/migrations/0002_auto_20161024_1559.py
@@ -1,30 +0,0 @@ | @@ -1,30 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -# Generated by Django 1.10 on 2016-10-24 18:59 | ||
3 | -from __future__ import unicode_literals | ||
4 | - | ||
5 | -from django.conf import settings | ||
6 | -from django.db import migrations, models | ||
7 | -import django.db.models.deletion | ||
8 | - | ||
9 | - | ||
10 | -class Migration(migrations.Migration): | ||
11 | - | ||
12 | - initial = True | ||
13 | - | ||
14 | - dependencies = [ | ||
15 | - migrations.swappable_dependency(settings.AUTH_USER_MODEL), | ||
16 | - ('exam', '0001_initial'), | ||
17 | - ] | ||
18 | - | ||
19 | - operations = [ | ||
20 | - migrations.AddField( | ||
21 | - model_name='answersstudent', | ||
22 | - name='student', | ||
23 | - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='student', to=settings.AUTH_USER_MODEL, verbose_name='Student'), | ||
24 | - ), | ||
25 | - migrations.AddField( | ||
26 | - model_name='answer', | ||
27 | - name='exam', | ||
28 | - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='answers', to='exam.Exam', verbose_name='Answers'), | ||
29 | - ), | ||
30 | - ] |
files/migrations/0001_initial.py
1 | # -*- coding: utf-8 -*- | 1 | # -*- coding: utf-8 -*- |
2 | -# Generated by Django 1.10 on 2016-10-24 18:59 | 2 | +# Generated by Django 1.10 on 2016-11-13 17:47 |
3 | from __future__ import unicode_literals | 3 | from __future__ import unicode_literals |
4 | 4 | ||
5 | +from django.conf import settings | ||
5 | from django.db import migrations, models | 6 | from django.db import migrations, models |
6 | import django.db.models.deletion | 7 | import django.db.models.deletion |
7 | import files.models | 8 | import files.models |
@@ -12,8 +13,9 @@ class Migration(migrations.Migration): | @@ -12,8 +13,9 @@ class Migration(migrations.Migration): | ||
12 | initial = True | 13 | initial = True |
13 | 14 | ||
14 | dependencies = [ | 15 | dependencies = [ |
15 | - ('core', '0001_initial'), | ||
16 | ('courses', '0001_initial'), | 16 | ('courses', '0001_initial'), |
17 | + ('core', '0001_initial'), | ||
18 | + migrations.swappable_dependency(settings.AUTH_USER_MODEL), | ||
17 | ] | 19 | ] |
18 | 20 | ||
19 | operations = [ | 21 | operations = [ |
@@ -24,11 +26,12 @@ class Migration(migrations.Migration): | @@ -24,11 +26,12 @@ class Migration(migrations.Migration): | ||
24 | ('description', models.TextField(blank=True, verbose_name='Description')), | 26 | ('description', models.TextField(blank=True, verbose_name='Description')), |
25 | ('file_url', models.FileField(upload_to=files.models.file_path, verbose_name='File')), | 27 | ('file_url', models.FileField(upload_to=files.models.file_path, verbose_name='File')), |
26 | ('file_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='topic_files', to='core.MimeType', verbose_name='Type file')), | 28 | ('file_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='topic_files', to='core.MimeType', verbose_name='Type file')), |
29 | + ('professor', models.ManyToManyField(related_name='file_professors', to=settings.AUTH_USER_MODEL, verbose_name='Professors')), | ||
27 | ], | 30 | ], |
28 | options={ | 31 | options={ |
29 | - 'ordering': ('-id',), | ||
30 | - 'verbose_name_plural': 'Files', | ||
31 | 'verbose_name': 'File', | 32 | 'verbose_name': 'File', |
33 | + 'verbose_name_plural': 'Files', | ||
34 | + 'ordering': ('-id',), | ||
32 | }, | 35 | }, |
33 | bases=('courses.material',), | 36 | bases=('courses.material',), |
34 | ), | 37 | ), |
files/migrations/0002_topicfile_professor.py
@@ -1,24 +0,0 @@ | @@ -1,24 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -# Generated by Django 1.10 on 2016-10-24 18:59 | ||
3 | -from __future__ import unicode_literals | ||
4 | - | ||
5 | -from django.conf import settings | ||
6 | -from django.db import migrations, models | ||
7 | - | ||
8 | - | ||
9 | -class Migration(migrations.Migration): | ||
10 | - | ||
11 | - initial = True | ||
12 | - | ||
13 | - dependencies = [ | ||
14 | - migrations.swappable_dependency(settings.AUTH_USER_MODEL), | ||
15 | - ('files', '0001_initial'), | ||
16 | - ] | ||
17 | - | ||
18 | - operations = [ | ||
19 | - migrations.AddField( | ||
20 | - model_name='topicfile', | ||
21 | - name='professor', | ||
22 | - field=models.ManyToManyField(related_name='file_professors', to=settings.AUTH_USER_MODEL, verbose_name='Professors'), | ||
23 | - ), | ||
24 | - ] |
forum/migrations/0001_initial.py
1 | # -*- coding: utf-8 -*- | 1 | # -*- coding: utf-8 -*- |
2 | -# Generated by Django 1.10 on 2016-10-24 18:59 | 2 | +# Generated by Django 1.10 on 2016-11-13 17:47 |
3 | from __future__ import unicode_literals | 3 | from __future__ import unicode_literals |
4 | 4 | ||
5 | +from django.conf import settings | ||
5 | from django.db import migrations, models | 6 | from django.db import migrations, models |
6 | import django.db.models.deletion | 7 | import django.db.models.deletion |
7 | 8 | ||
@@ -12,6 +13,7 @@ class Migration(migrations.Migration): | @@ -12,6 +13,7 @@ class Migration(migrations.Migration): | ||
12 | 13 | ||
13 | dependencies = [ | 14 | dependencies = [ |
14 | ('courses', '0001_initial'), | 15 | ('courses', '0001_initial'), |
16 | + migrations.swappable_dependency(settings.AUTH_USER_MODEL), | ||
15 | ] | 17 | ] |
16 | 18 | ||
17 | operations = [ | 19 | operations = [ |
@@ -24,8 +26,8 @@ class Migration(migrations.Migration): | @@ -24,8 +26,8 @@ class Migration(migrations.Migration): | ||
24 | ('create_date', models.DateTimeField(auto_now_add=True, verbose_name='Create Date')), | 26 | ('create_date', models.DateTimeField(auto_now_add=True, verbose_name='Create Date')), |
25 | ], | 27 | ], |
26 | options={ | 28 | options={ |
27 | - 'verbose_name_plural': 'Foruns', | ||
28 | 'verbose_name': 'Forum', | 29 | 'verbose_name': 'Forum', |
30 | + 'verbose_name_plural': 'Foruns', | ||
29 | }, | 31 | }, |
30 | bases=('courses.activity',), | 32 | bases=('courses.activity',), |
31 | ), | 33 | ), |
@@ -36,10 +38,12 @@ class Migration(migrations.Migration): | @@ -36,10 +38,12 @@ class Migration(migrations.Migration): | ||
36 | ('message', models.TextField(verbose_name='Post message')), | 38 | ('message', models.TextField(verbose_name='Post message')), |
37 | ('modification_date', models.DateTimeField(auto_now=True, verbose_name='Modification Date')), | 39 | ('modification_date', models.DateTimeField(auto_now=True, verbose_name='Modification Date')), |
38 | ('post_date', models.DateTimeField(auto_now_add=True, verbose_name='Post Date')), | 40 | ('post_date', models.DateTimeField(auto_now_add=True, verbose_name='Post Date')), |
41 | + ('forum', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='forum.Forum', verbose_name='Forum')), | ||
42 | + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Autor')), | ||
39 | ], | 43 | ], |
40 | options={ | 44 | options={ |
41 | - 'verbose_name_plural': 'Posts', | ||
42 | 'verbose_name': 'Post', | 45 | 'verbose_name': 'Post', |
46 | + 'verbose_name_plural': 'Posts', | ||
43 | }, | 47 | }, |
44 | ), | 48 | ), |
45 | migrations.CreateModel( | 49 | migrations.CreateModel( |
@@ -50,10 +54,11 @@ class Migration(migrations.Migration): | @@ -50,10 +54,11 @@ class Migration(migrations.Migration): | ||
50 | ('modification_date', models.DateTimeField(auto_now=True, verbose_name='Modification Date')), | 54 | ('modification_date', models.DateTimeField(auto_now=True, verbose_name='Modification Date')), |
51 | ('answer_date', models.DateTimeField(auto_now_add=True, verbose_name='Answer Date')), | 55 | ('answer_date', models.DateTimeField(auto_now_add=True, verbose_name='Answer Date')), |
52 | ('post', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='forum.Post', verbose_name='Post')), | 56 | ('post', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='forum.Post', verbose_name='Post')), |
57 | + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Autor')), | ||
53 | ], | 58 | ], |
54 | options={ | 59 | options={ |
55 | - 'verbose_name_plural': 'Post Answers', | ||
56 | 'verbose_name': 'Post Answer', | 60 | 'verbose_name': 'Post Answer', |
61 | + 'verbose_name_plural': 'Post Answers', | ||
57 | }, | 62 | }, |
58 | ), | 63 | ), |
59 | ] | 64 | ] |
forum/migrations/0002_auto_20161024_1559.py
@@ -1,35 +0,0 @@ | @@ -1,35 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -# Generated by Django 1.10 on 2016-10-24 18:59 | ||
3 | -from __future__ import unicode_literals | ||
4 | - | ||
5 | -from django.conf import settings | ||
6 | -from django.db import migrations, models | ||
7 | -import django.db.models.deletion | ||
8 | - | ||
9 | - | ||
10 | -class Migration(migrations.Migration): | ||
11 | - | ||
12 | - initial = True | ||
13 | - | ||
14 | - dependencies = [ | ||
15 | - migrations.swappable_dependency(settings.AUTH_USER_MODEL), | ||
16 | - ('forum', '0001_initial'), | ||
17 | - ] | ||
18 | - | ||
19 | - operations = [ | ||
20 | - migrations.AddField( | ||
21 | - model_name='postanswer', | ||
22 | - name='user', | ||
23 | - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Autor'), | ||
24 | - ), | ||
25 | - migrations.AddField( | ||
26 | - model_name='post', | ||
27 | - name='forum', | ||
28 | - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='forum.Forum', verbose_name='Forum'), | ||
29 | - ), | ||
30 | - migrations.AddField( | ||
31 | - model_name='post', | ||
32 | - name='user', | ||
33 | - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Autor'), | ||
34 | - ), | ||
35 | - ] |
links/migrations/0001_initial.py
1 | # -*- coding: utf-8 -*- | 1 | # -*- coding: utf-8 -*- |
2 | -# Generated by Django 1.10 on 2016-10-24 18:59 | 2 | +# Generated by Django 1.10 on 2016-11-13 17:47 |
3 | from __future__ import unicode_literals | 3 | from __future__ import unicode_literals |
4 | 4 | ||
5 | from django.db import migrations, models | 5 | from django.db import migrations, models |
@@ -21,10 +21,11 @@ class Migration(migrations.Migration): | @@ -21,10 +21,11 @@ class Migration(migrations.Migration): | ||
21 | ('material_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='courses.Material')), | 21 | ('material_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='courses.Material')), |
22 | ('link_url', models.URLField()), | 22 | ('link_url', models.URLField()), |
23 | ('link_description', models.CharField(max_length=200)), | 23 | ('link_description', models.CharField(max_length=200)), |
24 | + ('image', models.ImageField(blank=True, upload_to='links/')), | ||
24 | ], | 25 | ], |
25 | options={ | 26 | options={ |
26 | - 'verbose_name_plural': 'Links', | ||
27 | 'verbose_name': 'Link', | 27 | 'verbose_name': 'Link', |
28 | + 'verbose_name_plural': 'Links', | ||
28 | }, | 29 | }, |
29 | bases=('courses.material',), | 30 | bases=('courses.material',), |
30 | ), | 31 | ), |
links/migrations/0002_link_image.py
@@ -1,20 +0,0 @@ | @@ -1,20 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -# Generated by Django 1.10 on 2016-10-28 18:34 | ||
3 | -from __future__ import unicode_literals | ||
4 | - | ||
5 | -from django.db import migrations, models | ||
6 | - | ||
7 | - | ||
8 | -class Migration(migrations.Migration): | ||
9 | - | ||
10 | - dependencies = [ | ||
11 | - ('links', '0001_initial'), | ||
12 | - ] | ||
13 | - | ||
14 | - operations = [ | ||
15 | - migrations.AddField( | ||
16 | - model_name='link', | ||
17 | - name='image', | ||
18 | - field=models.ImageField(blank=True, upload_to='links/'), | ||
19 | - ), | ||
20 | - ] |
poll/migrations/0001_initial.py
1 | # -*- coding: utf-8 -*- | 1 | # -*- coding: utf-8 -*- |
2 | -# Generated by Django 1.10 on 2016-10-24 18:59 | 2 | +# Generated by Django 1.10 on 2016-11-13 17:47 |
3 | from __future__ import unicode_literals | 3 | from __future__ import unicode_literals |
4 | 4 | ||
5 | +from django.conf import settings | ||
5 | from django.db import migrations, models | 6 | from django.db import migrations, models |
6 | import django.db.models.deletion | 7 | import django.db.models.deletion |
7 | 8 | ||
@@ -12,6 +13,7 @@ class Migration(migrations.Migration): | @@ -12,6 +13,7 @@ class Migration(migrations.Migration): | ||
12 | 13 | ||
13 | dependencies = [ | 14 | dependencies = [ |
14 | ('courses', '0001_initial'), | 15 | ('courses', '0001_initial'), |
16 | + migrations.swappable_dependency(settings.AUTH_USER_MODEL), | ||
15 | ] | 17 | ] |
16 | 18 | ||
17 | operations = [ | 19 | operations = [ |
@@ -23,9 +25,9 @@ class Migration(migrations.Migration): | @@ -23,9 +25,9 @@ class Migration(migrations.Migration): | ||
23 | ('order', models.PositiveSmallIntegerField(verbose_name='Order')), | 25 | ('order', models.PositiveSmallIntegerField(verbose_name='Order')), |
24 | ], | 26 | ], |
25 | options={ | 27 | options={ |
26 | - 'ordering': ('order',), | ||
27 | - 'verbose_name_plural': 'Answers', | ||
28 | 'verbose_name': 'Answer', | 28 | 'verbose_name': 'Answer', |
29 | + 'verbose_name_plural': 'Answers', | ||
30 | + 'ordering': ('order',), | ||
29 | }, | 31 | }, |
30 | ), | 32 | ), |
31 | migrations.CreateModel( | 33 | migrations.CreateModel( |
@@ -37,8 +39,8 @@ class Migration(migrations.Migration): | @@ -37,8 +39,8 @@ class Migration(migrations.Migration): | ||
37 | ('answer', models.ManyToManyField(related_name='answers_stundet', to='poll.Answer', verbose_name='Answers Students')), | 39 | ('answer', models.ManyToManyField(related_name='answers_stundet', to='poll.Answer', verbose_name='Answers Students')), |
38 | ], | 40 | ], |
39 | options={ | 41 | options={ |
40 | - 'verbose_name_plural': 'Answers Student', | ||
41 | 'verbose_name': 'Answer Stundent', | 42 | 'verbose_name': 'Answer Stundent', |
43 | + 'verbose_name_plural': 'Answers Student', | ||
42 | }, | 44 | }, |
43 | ), | 45 | ), |
44 | migrations.CreateModel( | 46 | migrations.CreateModel( |
@@ -47,8 +49,8 @@ class Migration(migrations.Migration): | @@ -47,8 +49,8 @@ class Migration(migrations.Migration): | ||
47 | ('activity_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='courses.Activity')), | 49 | ('activity_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='courses.Activity')), |
48 | ], | 50 | ], |
49 | options={ | 51 | options={ |
50 | - 'verbose_name_plural': 'Polls', | ||
51 | 'verbose_name': 'Poll', | 52 | 'verbose_name': 'Poll', |
53 | + 'verbose_name_plural': 'Polls', | ||
52 | }, | 54 | }, |
53 | bases=('courses.activity',), | 55 | bases=('courses.activity',), |
54 | ), | 56 | ), |
@@ -57,4 +59,14 @@ class Migration(migrations.Migration): | @@ -57,4 +59,14 @@ class Migration(migrations.Migration): | ||
57 | name='poll', | 59 | name='poll', |
58 | field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='answers_stundet', to='poll.Poll', verbose_name='Poll'), | 60 | field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='answers_stundet', to='poll.Poll', verbose_name='Poll'), |
59 | ), | 61 | ), |
62 | + migrations.AddField( | ||
63 | + model_name='answersstudent', | ||
64 | + name='student', | ||
65 | + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='answers_stundent', to=settings.AUTH_USER_MODEL, verbose_name='Student'), | ||
66 | + ), | ||
67 | + migrations.AddField( | ||
68 | + model_name='answer', | ||
69 | + name='poll', | ||
70 | + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='answers', to='poll.Poll', verbose_name='Answers'), | ||
71 | + ), | ||
60 | ] | 72 | ] |
poll/migrations/0002_auto_20161024_1559.py
@@ -1,30 +0,0 @@ | @@ -1,30 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -# Generated by Django 1.10 on 2016-10-24 18:59 | ||
3 | -from __future__ import unicode_literals | ||
4 | - | ||
5 | -from django.conf import settings | ||
6 | -from django.db import migrations, models | ||
7 | -import django.db.models.deletion | ||
8 | - | ||
9 | - | ||
10 | -class Migration(migrations.Migration): | ||
11 | - | ||
12 | - initial = True | ||
13 | - | ||
14 | - dependencies = [ | ||
15 | - migrations.swappable_dependency(settings.AUTH_USER_MODEL), | ||
16 | - ('poll', '0001_initial'), | ||
17 | - ] | ||
18 | - | ||
19 | - operations = [ | ||
20 | - migrations.AddField( | ||
21 | - model_name='answersstudent', | ||
22 | - name='student', | ||
23 | - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='answers_stundent', to=settings.AUTH_USER_MODEL, verbose_name='Student'), | ||
24 | - ), | ||
25 | - migrations.AddField( | ||
26 | - model_name='answer', | ||
27 | - name='poll', | ||
28 | - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='answers', to='poll.Poll', verbose_name='Answers'), | ||
29 | - ), | ||
30 | - ] |
users/migrations/0001_initial.py
1 | # -*- coding: utf-8 -*- | 1 | # -*- coding: utf-8 -*- |
2 | -# Generated by Django 1.10 on 2016-10-24 18:59 | 2 | +# Generated by Django 1.10 on 2016-11-13 17:42 |
3 | from __future__ import unicode_literals | 3 | from __future__ import unicode_literals |
4 | 4 | ||
5 | import django.contrib.auth.models | 5 | import django.contrib.auth.models |