Commit bf9838af2c2d0971e3d00e736fd0756e30b0ffd8

Authored by Matheus Lins
1 parent e4873697

model and tamplatetags exercises

app/migrations/0001_initial.py
1 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 3 from __future__ import unicode_literals
4 4  
5 5 from django.db import migrations, models
... ... @@ -26,8 +26,8 @@ class Migration(migrations.Migration):
26 26 ('default_from_email', models.EmailField(blank=True, max_length=254, verbose_name='Default from email')),
27 27 ],
28 28 options={
29   - 'verbose_name_plural': 'Amadeus SMTP settings',
30 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 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 3 from __future__ import unicode_literals
4 4  
5 5 import autoslug.fields
  6 +from django.conf import settings
  7 +import django.contrib.postgres.fields.jsonb
6 8 from django.db import migrations, models
7 9 import django.db.models.deletion
8 10  
... ... @@ -12,6 +14,7 @@ class Migration(migrations.Migration):
12 14 initial = True
13 15  
14 16 dependencies = [
  17 + migrations.swappable_dependency(settings.AUTH_USER_MODEL),
15 18 ]
16 19  
17 20 operations = [
... ... @@ -24,29 +27,34 @@ class Migration(migrations.Migration):
24 27 ('created_date', models.DateField(auto_now_add=True, verbose_name='Created Date')),
25 28 ],
26 29 options={
27   - 'verbose_name_plural': 'Actions',
28 30 'verbose_name': 'Action',
  31 + 'verbose_name_plural': 'Actions',
29 32 },
30 33 ),
31 34 migrations.CreateModel(
32 35 name='Action_Resource',
33 36 fields=[
34 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 40 options={
37   - 'verbose_name_plural': 'Action_Resources',
38 41 'verbose_name': 'Action_Resource',
  42 + 'verbose_name_plural': 'Action_Resources',
39 43 },
40 44 ),
41 45 migrations.CreateModel(
42 46 name='Log',
43 47 fields=[
44 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 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 55 options={
48   - 'verbose_name_plural': 'Logs',
49 56 'verbose_name': 'Log',
  57 + 'verbose_name_plural': 'Logs',
50 58 },
51 59 ),
52 60 migrations.CreateModel(
... ... @@ -57,8 +65,8 @@ class Migration(migrations.Migration):
57 65 ('icon', models.CharField(max_length=50, unique=True, verbose_name='Icon')),
58 66 ],
59 67 options={
60   - 'verbose_name_plural': 'Amadeus Mime Types',
61 68 'verbose_name': 'Amadeus Mime Type',
  69 + 'verbose_name_plural': 'Amadeus Mime Types',
62 70 },
63 71 ),
64 72 migrations.CreateModel(
... ... @@ -69,10 +77,12 @@ class Migration(migrations.Migration):
69 77 ('read', models.BooleanField(default=False, verbose_name='Read')),
70 78 ('datetime', models.DateTimeField(auto_now_add=True, verbose_name='Date and Time of action')),
71 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 83 options={
74   - 'verbose_name_plural': 'Notifications',
75 84 'verbose_name': 'Notification',
  85 + 'verbose_name_plural': 'Notifications',
76 86 },
77 87 ),
78 88 migrations.CreateModel(
... ... @@ -85,8 +95,13 @@ class Migration(migrations.Migration):
85 95 ('url', models.CharField(default='', max_length=100, verbose_name='URL')),
86 96 ],
87 97 options={
88   - 'verbose_name_plural': 'Resources',
89 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   -# -*- 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   -# -*- 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   -# -*- 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 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 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 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 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 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 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 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 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 33 admin.site.register(CourseCategory, CategoryAdmin)
34 34 admin.site.register(Course, CourseAdmin)
35 35 admin.site.register(Subject, SubjectAdmin)
36 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 39 admin.site.register(CategorySubject, CategorySubjectAdmin)
... ...
courses/migrations/0001_initial.py
1 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 3 from __future__ import unicode_literals
4 4  
5 5 import autoslug.fields
  6 +from django.conf import settings
6 7 from django.db import migrations, models
7 8 import django.db.models.deletion
8 9 import s3direct.fields
... ... @@ -14,6 +15,7 @@ class Migration(migrations.Migration):
14 15  
15 16 dependencies = [
16 17 ('core', '0001_initial'),
  18 + migrations.swappable_dependency(settings.AUTH_USER_MODEL),
17 19 ]
18 20  
19 21 operations = [
... ... @@ -23,6 +25,7 @@ class Migration(migrations.Migration):
23 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 26 ('limit_date', models.DateField(verbose_name='Deliver Date')),
25 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 30 bases=('core.resource',),
28 31 ),
... ... @@ -32,10 +35,11 @@ class Migration(migrations.Migration):
32 35 ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
33 36 ('pdf', s3direct.fields.S3DirectField()),
34 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 40 options={
37   - 'verbose_name_plural': 'Activitys Files',
38 41 'verbose_name': 'Activity File',
  42 + 'verbose_name_plural': 'Activitys Files',
39 43 },
40 44 ),
41 45 migrations.CreateModel(
... ... @@ -47,8 +51,8 @@ class Migration(migrations.Migration):
47 51 ('create_date', models.DateField(auto_now_add=True, verbose_name='Creation Date')),
48 52 ],
49 53 options={
50   - 'verbose_name_plural': 'Categories',
51 54 'verbose_name': 'Category',
  55 + 'verbose_name_plural': 'Categories',
52 56 },
53 57 ),
54 58 migrations.CreateModel(
... ... @@ -65,13 +69,12 @@ class Migration(migrations.Migration):
65 69 ('end_register_date', models.DateField(verbose_name='Register Date (End)')),
66 70 ('init_date', models.DateField(verbose_name='Begin of Course Date')),
67 71 ('end_date', models.DateField(verbose_name='End of Course Date')),
68   - ('image', models.ImageField(blank=True, upload_to='courses/', verbose_name='Image')),
69 72 ('public', models.BooleanField(default=False, verbose_name='Public')),
70 73 ],
71 74 options={
72   - 'ordering': ('create_date', 'name'),
73   - 'verbose_name_plural': 'Courses',
74 75 'verbose_name': 'Course',
  76 + 'verbose_name_plural': 'Courses',
  77 + 'ordering': ('create_date', 'name'),
75 78 },
76 79 ),
77 80 migrations.CreateModel(
... ... @@ -83,8 +86,8 @@ class Migration(migrations.Migration):
83 86 ('create_date', models.DateField(auto_now_add=True, verbose_name='Creation Date')),
84 87 ],
85 88 options={
86   - 'verbose_name_plural': 'Categories',
87 89 'verbose_name': 'Category',
  90 + 'verbose_name_plural': 'Categories',
88 91 },
89 92 ),
90 93 migrations.CreateModel(
... ... @@ -109,6 +112,7 @@ class Migration(migrations.Migration):
109 112 fields=[
110 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 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 117 bases=('core.resource',),
114 118 ),
... ... @@ -124,11 +128,15 @@ class Migration(migrations.Migration):
124 128 ('end_date', models.DateField(verbose_name='End of Subject Date')),
125 129 ('create_date', models.DateTimeField(auto_now_add=True, verbose_name='Creation Date')),
126 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 136 options={
129   - 'ordering': ('create_date', 'name'),
130   - 'verbose_name_plural': 'Subjects',
131 137 'verbose_name': 'Subject',
  138 + 'verbose_name_plural': 'Subjects',
  139 + 'ordering': ('create_date', 'name'),
132 140 },
133 141 ),
134 142 migrations.CreateModel(
... ... @@ -138,10 +146,11 @@ class Migration(migrations.Migration):
138 146 ('name', models.CharField(max_length=100, verbose_name='Name')),
139 147 ('slug', autoslug.fields.AutoSlugField(editable=False, populate_from='name', unique=True, verbose_name='Slug')),
140 148 ('description', models.TextField(blank=True, verbose_name='Description')),
  149 + ('subjects', models.ManyToManyField(to='courses.Subject')),
141 150 ],
142 151 options={
143   - 'verbose_name_plural': 'subject categories',
144 152 'verbose_name': 'subject category',
  153 + 'verbose_name_plural': 'subject categories',
145 154 },
146 155 ),
147 156 migrations.CreateModel(
... ... @@ -154,11 +163,53 @@ class Migration(migrations.Migration):
154 163 ('create_date', models.DateTimeField(auto_now_add=True, verbose_name='Creation Date')),
155 164 ('update_date', models.DateTimeField(auto_now=True, verbose_name='Date of last update')),
156 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 169 options={
159   - 'ordering': ('create_date', 'name'),
160   - 'verbose_name_plural': 'Topics',
161 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   -# -*- 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   - ]
courses/migrations/0002_exercise.py 0 → 100644
... ... @@ -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   -# -*- 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   -# -*- 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 157 name = models.CharField(max_length=100)
158 158 description = models.TextField()
159 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 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 10 <div class="cards-detail">
11 11 <div class="panel-group accordion ui-accordion ui-widget ui-helper-reset ui-sortable" role="tablist" aria-multiselectable="false">
12 12 <div class="group"><div class="panel panel-default">
... ... @@ -34,16 +34,65 @@
34 34 </div>
35 35 </div>
36 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 89 </div>
38 90  
39 91 </div>
40 92  
41   - {% professor_subject topic.subject user as professor_links %}
42   - {% if professor_links%}
  93 + {% if professor_links %}
43 94 {% include "links/create_link.html" %}
44 95 {% include "links/delete_link.html" %}
45   - {% else %}
46   - {% include "exercise/create_exercise.html" %}
47 96 {% endif %}
48 97  
49 98  
... ...
courses/templatetags/list_topic_exercises.py 0 → 100644
... ... @@ -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 11 Template tag to load all the foruns of a post
12 12 """
13 13  
  14 +
14 15 @register.inclusion_tag('topic/list_topic_foruns.html')
15 16 def list_topic_foruns(request, topic):
16 17 context = {
... ... @@ -21,6 +22,7 @@ def list_topic_foruns(request, topic):
21 22  
22 23 return context
23 24  
  25 +
24 26 @register.inclusion_tag('subject/poll_item_actions.html')
25 27 def list_topic_poll(request, topic):
26 28 context = {
... ... @@ -44,6 +46,7 @@ def list_topic_poll_teacher(request, topic):
44 46  
45 47 return context
46 48  
  49 +
47 50 @register.inclusion_tag('topic/list_file.html')
48 51 def list_topic_file(request, topic):
49 52 context = {
... ... @@ -55,6 +58,7 @@ def list_topic_file(request, topic):
55 58  
56 59 return context
57 60  
  61 +
58 62 @register.inclusion_tag('topic/list_file_edit.html')
59 63 def list_topic_file_edit(request, topic):
60 64 context = {
... ... @@ -66,6 +70,7 @@ def list_topic_file_edit(request, topic):
66 70  
67 71 return context
68 72  
  73 +
69 74 @register.inclusion_tag('topic/link_topic_list_edit.html')
70 75 def list_topic_link_edit(request,topic):
71 76 context = {
... ... @@ -75,6 +80,7 @@ def list_topic_link_edit(request,topic):
75 80 context['topic'] = topic
76 81 return context
77 82  
  83 +
78 84 @register.inclusion_tag('topic/link_topic_list.html')
79 85 def list_topic_link(request,topic):
80 86 context = {
... ...
exam/migrations/0001_initial.py
1 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 3 from __future__ import unicode_literals
4 4  
  5 +from django.conf import settings
5 6 from django.db import migrations, models
6 7 import django.db.models.deletion
7 8  
... ... @@ -12,6 +13,7 @@ class Migration(migrations.Migration):
12 13  
13 14 dependencies = [
14 15 ('courses', '0001_initial'),
  16 + migrations.swappable_dependency(settings.AUTH_USER_MODEL),
15 17 ]
16 18  
17 19 operations = [
... ... @@ -23,9 +25,9 @@ class Migration(migrations.Migration):
23 25 ('order', models.PositiveSmallIntegerField(verbose_name='Order')),
24 26 ],
25 27 options={
26   - 'ordering': ('order',),
27   - 'verbose_name_plural': 'Answers',
28 28 'verbose_name': 'Answer',
  29 + 'verbose_name_plural': 'Answers',
  30 + 'ordering': ('order',),
29 31 },
30 32 ),
31 33 migrations.CreateModel(
... ... @@ -37,8 +39,8 @@ class Migration(migrations.Migration):
37 39 ('answer', models.ManyToManyField(related_name='student_answer', to='exam.Answer', verbose_name='Answers Students')),
38 40 ],
39 41 options={
40   - 'verbose_name_plural': 'Answers Student',
41 42 'verbose_name': 'Answer Stundent',
  43 + 'verbose_name_plural': 'Answers Student',
42 44 },
43 45 ),
44 46 migrations.CreateModel(
... ... @@ -49,8 +51,8 @@ class Migration(migrations.Migration):
49 51 ('exibe', models.BooleanField(default=False, verbose_name='Exibe?')),
50 52 ],
51 53 options={
52   - 'verbose_name_plural': 'Exams',
53 54 'verbose_name': 'Exam',
  55 + 'verbose_name_plural': 'Exams',
54 56 },
55 57 bases=('courses.activity',),
56 58 ),
... ... @@ -59,4 +61,14 @@ class Migration(migrations.Migration):
59 61 name='exam',
60 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   -# -*- 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 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 3 from __future__ import unicode_literals
4 4  
  5 +from django.conf import settings
5 6 from django.db import migrations, models
6 7 import django.db.models.deletion
7 8 import files.models
... ... @@ -12,8 +13,9 @@ class Migration(migrations.Migration):
12 13 initial = True
13 14  
14 15 dependencies = [
15   - ('core', '0001_initial'),
16 16 ('courses', '0001_initial'),
  17 + ('core', '0001_initial'),
  18 + migrations.swappable_dependency(settings.AUTH_USER_MODEL),
17 19 ]
18 20  
19 21 operations = [
... ... @@ -24,11 +26,12 @@ class Migration(migrations.Migration):
24 26 ('description', models.TextField(blank=True, verbose_name='Description')),
25 27 ('file_url', models.FileField(upload_to=files.models.file_path, verbose_name='File')),
26 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 31 options={
29   - 'ordering': ('-id',),
30   - 'verbose_name_plural': 'Files',
31 32 'verbose_name': 'File',
  33 + 'verbose_name_plural': 'Files',
  34 + 'ordering': ('-id',),
32 35 },
33 36 bases=('courses.material',),
34 37 ),
... ...
files/migrations/0002_topicfile_professor.py
... ... @@ -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 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 3 from __future__ import unicode_literals
4 4  
  5 +from django.conf import settings
5 6 from django.db import migrations, models
6 7 import django.db.models.deletion
7 8  
... ... @@ -12,6 +13,7 @@ class Migration(migrations.Migration):
12 13  
13 14 dependencies = [
14 15 ('courses', '0001_initial'),
  16 + migrations.swappable_dependency(settings.AUTH_USER_MODEL),
15 17 ]
16 18  
17 19 operations = [
... ... @@ -24,8 +26,8 @@ class Migration(migrations.Migration):
24 26 ('create_date', models.DateTimeField(auto_now_add=True, verbose_name='Create Date')),
25 27 ],
26 28 options={
27   - 'verbose_name_plural': 'Foruns',
28 29 'verbose_name': 'Forum',
  30 + 'verbose_name_plural': 'Foruns',
29 31 },
30 32 bases=('courses.activity',),
31 33 ),
... ... @@ -36,10 +38,12 @@ class Migration(migrations.Migration):
36 38 ('message', models.TextField(verbose_name='Post message')),
37 39 ('modification_date', models.DateTimeField(auto_now=True, verbose_name='Modification Date')),
38 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 44 options={
41   - 'verbose_name_plural': 'Posts',
42 45 'verbose_name': 'Post',
  46 + 'verbose_name_plural': 'Posts',
43 47 },
44 48 ),
45 49 migrations.CreateModel(
... ... @@ -50,10 +54,11 @@ class Migration(migrations.Migration):
50 54 ('modification_date', models.DateTimeField(auto_now=True, verbose_name='Modification Date')),
51 55 ('answer_date', models.DateTimeField(auto_now_add=True, verbose_name='Answer Date')),
52 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 59 options={
55   - 'verbose_name_plural': 'Post Answers',
56 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   -# -*- 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 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 3 from __future__ import unicode_literals
4 4  
5 5 from django.db import migrations, models
... ... @@ -21,10 +21,11 @@ class Migration(migrations.Migration):
21 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 22 ('link_url', models.URLField()),
23 23 ('link_description', models.CharField(max_length=200)),
  24 + ('image', models.ImageField(blank=True, upload_to='links/')),
24 25 ],
25 26 options={
26   - 'verbose_name_plural': 'Links',
27 27 'verbose_name': 'Link',
  28 + 'verbose_name_plural': 'Links',
28 29 },
29 30 bases=('courses.material',),
30 31 ),
... ...
links/migrations/0002_link_image.py
... ... @@ -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 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 3 from __future__ import unicode_literals
4 4  
  5 +from django.conf import settings
5 6 from django.db import migrations, models
6 7 import django.db.models.deletion
7 8  
... ... @@ -12,6 +13,7 @@ class Migration(migrations.Migration):
12 13  
13 14 dependencies = [
14 15 ('courses', '0001_initial'),
  16 + migrations.swappable_dependency(settings.AUTH_USER_MODEL),
15 17 ]
16 18  
17 19 operations = [
... ... @@ -23,9 +25,9 @@ class Migration(migrations.Migration):
23 25 ('order', models.PositiveSmallIntegerField(verbose_name='Order')),
24 26 ],
25 27 options={
26   - 'ordering': ('order',),
27   - 'verbose_name_plural': 'Answers',
28 28 'verbose_name': 'Answer',
  29 + 'verbose_name_plural': 'Answers',
  30 + 'ordering': ('order',),
29 31 },
30 32 ),
31 33 migrations.CreateModel(
... ... @@ -37,8 +39,8 @@ class Migration(migrations.Migration):
37 39 ('answer', models.ManyToManyField(related_name='answers_stundet', to='poll.Answer', verbose_name='Answers Students')),
38 40 ],
39 41 options={
40   - 'verbose_name_plural': 'Answers Student',
41 42 'verbose_name': 'Answer Stundent',
  43 + 'verbose_name_plural': 'Answers Student',
42 44 },
43 45 ),
44 46 migrations.CreateModel(
... ... @@ -47,8 +49,8 @@ class Migration(migrations.Migration):
47 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 51 options={
50   - 'verbose_name_plural': 'Polls',
51 52 'verbose_name': 'Poll',
  53 + 'verbose_name_plural': 'Polls',
52 54 },
53 55 bases=('courses.activity',),
54 56 ),
... ... @@ -57,4 +59,14 @@ class Migration(migrations.Migration):
57 59 name='poll',
58 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   -# -*- 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 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 3 from __future__ import unicode_literals
4 4  
5 5 import django.contrib.auth.models
... ...