Commit d3f36b6ce82d7c09828f5576daf6819dea0f22a8
1 parent
4bb42027
Exists in
master
and in
5 other branches
Adding Forum creation [Issues: #88 and #74]
Showing
11 changed files
with
227 additions
and
49 deletions
Show diff stats
core/migrations/0001_initial.py
1 | # -*- coding: utf-8 -*- | 1 | # -*- coding: utf-8 -*- |
2 | -# Generated by Django 1.10 on 2016-10-01 16:02 | 2 | +# Generated by Django 1.10 on 2016-10-02 00:17 |
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 | from django.db import migrations, models | 6 | from django.db import migrations, models |
8 | import django.db.models.deletion | 7 | import django.db.models.deletion |
9 | 8 | ||
@@ -13,7 +12,6 @@ class Migration(migrations.Migration): | @@ -13,7 +12,6 @@ class Migration(migrations.Migration): | ||
13 | initial = True | 12 | initial = True |
14 | 13 | ||
15 | dependencies = [ | 14 | dependencies = [ |
16 | - migrations.swappable_dependency(settings.AUTH_USER_MODEL), | ||
17 | ] | 15 | ] |
18 | 16 | ||
19 | operations = [ | 17 | operations = [ |
@@ -33,7 +31,6 @@ class Migration(migrations.Migration): | @@ -33,7 +31,6 @@ class Migration(migrations.Migration): | ||
33 | name='Action_Resource', | 31 | name='Action_Resource', |
34 | fields=[ | 32 | fields=[ |
35 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), | 33 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
36 | - ('action', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.Action', verbose_name='Action_Applied')), | ||
37 | ], | 34 | ], |
38 | options={ | 35 | options={ |
39 | 'verbose_name': 'Action_Resource', | 36 | 'verbose_name': 'Action_Resource', |
@@ -45,8 +42,6 @@ class Migration(migrations.Migration): | @@ -45,8 +42,6 @@ class Migration(migrations.Migration): | ||
45 | fields=[ | 42 | fields=[ |
46 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), | 43 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
47 | ('datetime', models.DateTimeField(auto_now_add=True, verbose_name='Date and Time of action')), | 44 | ('datetime', models.DateTimeField(auto_now_add=True, verbose_name='Date and Time of action')), |
48 | - ('action_resource', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.Action_Resource', verbose_name='Action_Resource')), | ||
49 | - ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Actor')), | ||
50 | ], | 45 | ], |
51 | options={ | 46 | options={ |
52 | 'verbose_name': 'Log', | 47 | 'verbose_name': 'Log', |
@@ -61,8 +56,6 @@ class Migration(migrations.Migration): | @@ -61,8 +56,6 @@ class Migration(migrations.Migration): | ||
61 | ('read', models.BooleanField(default=False, verbose_name='Read')), | 56 | ('read', models.BooleanField(default=False, verbose_name='Read')), |
62 | ('datetime', models.DateTimeField(auto_now_add=True, verbose_name='Date and Time of action')), | 57 | ('datetime', models.DateTimeField(auto_now_add=True, verbose_name='Date and Time of action')), |
63 | ('action_resource', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.Action_Resource', verbose_name='Action_Resource')), | 58 | ('action_resource', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.Action_Resource', verbose_name='Action_Resource')), |
64 | - ('actor', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='notification_Performer', to=settings.AUTH_USER_MODEL, verbose_name='Perfomer')), | ||
65 | - ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='notification_Actor', to=settings.AUTH_USER_MODEL, verbose_name='User')), | ||
66 | ], | 59 | ], |
67 | options={ | 60 | options={ |
68 | 'verbose_name': 'Notification', | 61 | 'verbose_name': 'Notification', |
@@ -83,9 +76,4 @@ class Migration(migrations.Migration): | @@ -83,9 +76,4 @@ class Migration(migrations.Migration): | ||
83 | 'verbose_name_plural': 'Resources', | 76 | 'verbose_name_plural': 'Resources', |
84 | }, | 77 | }, |
85 | ), | 78 | ), |
86 | - migrations.AddField( | ||
87 | - model_name='action_resource', | ||
88 | - name='resource', | ||
89 | - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.Resource', verbose_name='Resource'), | ||
90 | - ), | ||
91 | ] | 79 | ] |
@@ -0,0 +1,50 @@ | @@ -0,0 +1,50 @@ | ||
1 | +# -*- coding: utf-8 -*- | ||
2 | +# Generated by Django 1.10 on 2016-10-02 00:17 | ||
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 | + ] |
courses/migrations/0001_initial.py
1 | # -*- coding: utf-8 -*- | 1 | # -*- coding: utf-8 -*- |
2 | -# Generated by Django 1.10 on 2016-10-01 16:02 | 2 | +# Generated by Django 1.10 on 2016-10-02 00:17 |
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 | from django.db import migrations, models | 6 | from django.db import migrations, models |
8 | import django.db.models.deletion | 7 | import django.db.models.deletion |
9 | 8 | ||
@@ -13,7 +12,6 @@ class Migration(migrations.Migration): | @@ -13,7 +12,6 @@ class Migration(migrations.Migration): | ||
13 | initial = True | 12 | initial = True |
14 | 13 | ||
15 | dependencies = [ | 14 | dependencies = [ |
16 | - migrations.swappable_dependency(settings.AUTH_USER_MODEL), | ||
17 | ('core', '0001_initial'), | 15 | ('core', '0001_initial'), |
18 | ] | 16 | ] |
19 | 17 | ||
@@ -24,7 +22,6 @@ class Migration(migrations.Migration): | @@ -24,7 +22,6 @@ class Migration(migrations.Migration): | ||
24 | ('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')), | 22 | ('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 | ('limit_date', models.DateTimeField(verbose_name='Deliver Date')), | 23 | ('limit_date', models.DateTimeField(verbose_name='Deliver Date')), |
26 | ('all_students', models.BooleanField(default=False, verbose_name='All Students')), | 24 | ('all_students', models.BooleanField(default=False, verbose_name='All Students')), |
27 | - ('students', models.ManyToManyField(related_name='activities', to=settings.AUTH_USER_MODEL, verbose_name='Students')), | ||
28 | ], | 25 | ], |
29 | bases=('core.resource',), | 26 | bases=('core.resource',), |
30 | ), | 27 | ), |
@@ -56,9 +53,6 @@ class Migration(migrations.Migration): | @@ -56,9 +53,6 @@ class Migration(migrations.Migration): | ||
56 | ('init_date', models.DateField(verbose_name='Begin of Course Date')), | 53 | ('init_date', models.DateField(verbose_name='Begin of Course Date')), |
57 | ('end_date', models.DateField(verbose_name='End of Course Date')), | 54 | ('end_date', models.DateField(verbose_name='End of Course Date')), |
58 | ('image', models.ImageField(blank=True, upload_to='courses/', verbose_name='Image')), | 55 | ('image', models.ImageField(blank=True, upload_to='courses/', verbose_name='Image')), |
59 | - ('category', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='courses.Category', verbose_name='Category')), | ||
60 | - ('professors', models.ManyToManyField(related_name='courses_professors', to=settings.AUTH_USER_MODEL, verbose_name='Professors')), | ||
61 | - ('students', models.ManyToManyField(related_name='courses_student', to=settings.AUTH_USER_MODEL, verbose_name='Students')), | ||
62 | ], | 56 | ], |
63 | options={ | 57 | options={ |
64 | 'ordering': ('create_date', 'name'), | 58 | 'ordering': ('create_date', 'name'), |
@@ -71,7 +65,6 @@ class Migration(migrations.Migration): | @@ -71,7 +65,6 @@ class Migration(migrations.Migration): | ||
71 | fields=[ | 65 | fields=[ |
72 | ('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')), | 66 | ('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')), |
73 | ('all_students', models.BooleanField(default=False, verbose_name='All Students')), | 67 | ('all_students', models.BooleanField(default=False, verbose_name='All Students')), |
74 | - ('students', models.ManyToManyField(related_name='materials', to=settings.AUTH_USER_MODEL, verbose_name='Students')), | ||
75 | ], | 68 | ], |
76 | bases=('core.resource',), | 69 | bases=('core.resource',), |
77 | ), | 70 | ), |
@@ -87,8 +80,6 @@ class Migration(migrations.Migration): | @@ -87,8 +80,6 @@ class Migration(migrations.Migration): | ||
87 | ('end_date', models.DateField(verbose_name='End of Subject Date')), | 80 | ('end_date', models.DateField(verbose_name='End of Subject Date')), |
88 | ('create_date', models.DateTimeField(auto_now_add=True, verbose_name='Creation Date')), | 81 | ('create_date', models.DateTimeField(auto_now_add=True, verbose_name='Creation Date')), |
89 | ('update_date', models.DateTimeField(auto_now=True, verbose_name='Date of last update')), | 82 | ('update_date', models.DateTimeField(auto_now=True, verbose_name='Date of last update')), |
90 | - ('course', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='subjects', to='courses.Course', verbose_name='Course')), | ||
91 | - ('professors', models.ManyToManyField(related_name='subjects', to=settings.AUTH_USER_MODEL, verbose_name='Professors')), | ||
92 | ], | 83 | ], |
93 | options={ | 84 | options={ |
94 | 'ordering': ('create_date', 'name'), | 85 | 'ordering': ('create_date', 'name'), |
@@ -103,7 +94,6 @@ class Migration(migrations.Migration): | @@ -103,7 +94,6 @@ class Migration(migrations.Migration): | ||
103 | ('name', models.CharField(max_length=100, verbose_name='Name')), | 94 | ('name', models.CharField(max_length=100, verbose_name='Name')), |
104 | ('slug', autoslug.fields.AutoSlugField(editable=False, populate_from='name', unique=True, verbose_name='Slug')), | 95 | ('slug', autoslug.fields.AutoSlugField(editable=False, populate_from='name', unique=True, verbose_name='Slug')), |
105 | ('description', models.TextField(blank=True, verbose_name='Description')), | 96 | ('description', models.TextField(blank=True, verbose_name='Description')), |
106 | - ('subjects', models.ManyToManyField(to='courses.Subject')), | ||
107 | ], | 97 | ], |
108 | options={ | 98 | options={ |
109 | 'verbose_name': 'subject category', | 99 | 'verbose_name': 'subject category', |
@@ -120,8 +110,6 @@ class Migration(migrations.Migration): | @@ -120,8 +110,6 @@ class Migration(migrations.Migration): | ||
120 | ('create_date', models.DateTimeField(auto_now_add=True, verbose_name='Creation Date')), | 110 | ('create_date', models.DateTimeField(auto_now_add=True, verbose_name='Creation Date')), |
121 | ('update_date', models.DateTimeField(auto_now=True, verbose_name='Date of last update')), | 111 | ('update_date', models.DateTimeField(auto_now=True, verbose_name='Date of last update')), |
122 | ('visible', models.BooleanField(default=False, verbose_name='Visible')), | 112 | ('visible', models.BooleanField(default=False, verbose_name='Visible')), |
123 | - ('owner', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Owner')), | ||
124 | - ('subject', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='courses.Subject', verbose_name='Subject')), | ||
125 | ], | 113 | ], |
126 | options={ | 114 | options={ |
127 | 'ordering': ('create_date', 'name'), | 115 | 'ordering': ('create_date', 'name'), |
@@ -129,14 +117,4 @@ class Migration(migrations.Migration): | @@ -129,14 +117,4 @@ class Migration(migrations.Migration): | ||
129 | 'verbose_name_plural': 'Topics', | 117 | 'verbose_name_plural': 'Topics', |
130 | }, | 118 | }, |
131 | ), | 119 | ), |
132 | - migrations.AddField( | ||
133 | - model_name='material', | ||
134 | - name='topic', | ||
135 | - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='materials', to='courses.Topic', verbose_name='Topic'), | ||
136 | - ), | ||
137 | - migrations.AddField( | ||
138 | - model_name='activity', | ||
139 | - name='topic', | ||
140 | - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='activities', to='courses.Topic', verbose_name='Topic'), | ||
141 | - ), | ||
142 | ] | 120 | ] |
@@ -0,0 +1,80 @@ | @@ -0,0 +1,80 @@ | ||
1 | +# -*- coding: utf-8 -*- | ||
2 | +# Generated by Django 1.10 on 2016-10-02 00:17 | ||
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 | + ('courses', '0001_initial'), | ||
16 | + migrations.swappable_dependency(settings.AUTH_USER_MODEL), | ||
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='course', | ||
38 | + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='subjects', to='courses.Course', verbose_name='Course'), | ||
39 | + ), | ||
40 | + migrations.AddField( | ||
41 | + model_name='subject', | ||
42 | + name='professors', | ||
43 | + field=models.ManyToManyField(related_name='subjects', to=settings.AUTH_USER_MODEL, verbose_name='Professors'), | ||
44 | + ), | ||
45 | + migrations.AddField( | ||
46 | + model_name='material', | ||
47 | + name='students', | ||
48 | + field=models.ManyToManyField(related_name='materials', to=settings.AUTH_USER_MODEL, verbose_name='Students'), | ||
49 | + ), | ||
50 | + migrations.AddField( | ||
51 | + model_name='material', | ||
52 | + name='topic', | ||
53 | + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='materials', to='courses.Topic', verbose_name='Topic'), | ||
54 | + ), | ||
55 | + migrations.AddField( | ||
56 | + model_name='course', | ||
57 | + name='category', | ||
58 | + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='courses.Category', verbose_name='Category'), | ||
59 | + ), | ||
60 | + migrations.AddField( | ||
61 | + model_name='course', | ||
62 | + name='professors', | ||
63 | + field=models.ManyToManyField(related_name='courses_professors', to=settings.AUTH_USER_MODEL, verbose_name='Professors'), | ||
64 | + ), | ||
65 | + migrations.AddField( | ||
66 | + model_name='course', | ||
67 | + name='students', | ||
68 | + field=models.ManyToManyField(related_name='courses_student', to=settings.AUTH_USER_MODEL, verbose_name='Students'), | ||
69 | + ), | ||
70 | + migrations.AddField( | ||
71 | + model_name='activity', | ||
72 | + name='students', | ||
73 | + field=models.ManyToManyField(related_name='activities', to=settings.AUTH_USER_MODEL, verbose_name='Students'), | ||
74 | + ), | ||
75 | + migrations.AddField( | ||
76 | + model_name='activity', | ||
77 | + name='topic', | ||
78 | + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='activities', to='courses.Topic', verbose_name='Topic'), | ||
79 | + ), | ||
80 | + ] |
forum/migrations/0001_initial.py
1 | # -*- coding: utf-8 -*- | 1 | # -*- coding: utf-8 -*- |
2 | -# Generated by Django 1.10 on 2016-10-01 16:02 | 2 | +# Generated by Django 1.10 on 2016-10-02 00:17 |
3 | from __future__ import unicode_literals | 3 | from __future__ import unicode_literals |
4 | 4 | ||
5 | -from django.conf import settings | ||
6 | from django.db import migrations, models | 5 | from django.db import migrations, models |
7 | import django.db.models.deletion | 6 | import django.db.models.deletion |
8 | 7 | ||
@@ -13,7 +12,6 @@ class Migration(migrations.Migration): | @@ -13,7 +12,6 @@ class Migration(migrations.Migration): | ||
13 | 12 | ||
14 | dependencies = [ | 13 | dependencies = [ |
15 | ('courses', '0001_initial'), | 14 | ('courses', '0001_initial'), |
16 | - migrations.swappable_dependency(settings.AUTH_USER_MODEL), | ||
17 | ] | 15 | ] |
18 | 16 | ||
19 | operations = [ | 17 | operations = [ |
@@ -38,8 +36,6 @@ class Migration(migrations.Migration): | @@ -38,8 +36,6 @@ class Migration(migrations.Migration): | ||
38 | ('message', models.TextField(verbose_name='Post message')), | 36 | ('message', models.TextField(verbose_name='Post message')), |
39 | ('modification_date', models.DateTimeField(auto_now=True, verbose_name='Modification Date')), | 37 | ('modification_date', models.DateTimeField(auto_now=True, verbose_name='Modification Date')), |
40 | ('post_date', models.DateTimeField(auto_now_add=True, verbose_name='Post Date')), | 38 | ('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')), | ||
43 | ], | 39 | ], |
44 | options={ | 40 | options={ |
45 | 'verbose_name': 'Post', | 41 | 'verbose_name': 'Post', |
@@ -54,7 +50,6 @@ class Migration(migrations.Migration): | @@ -54,7 +50,6 @@ class Migration(migrations.Migration): | ||
54 | ('modification_date', models.DateTimeField(auto_now=True, verbose_name='Modification Date')), | 50 | ('modification_date', models.DateTimeField(auto_now=True, verbose_name='Modification Date')), |
55 | ('answer_date', models.DateTimeField(auto_now_add=True, verbose_name='Answer Date')), | 51 | ('answer_date', models.DateTimeField(auto_now_add=True, verbose_name='Answer Date')), |
56 | ('post', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='forum.Post', verbose_name='Post')), | 52 | ('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')), | ||
58 | ], | 53 | ], |
59 | options={ | 54 | options={ |
60 | 'verbose_name': 'Post Answer', | 55 | 'verbose_name': 'Post Answer', |
@@ -0,0 +1,35 @@ | @@ -0,0 +1,35 @@ | ||
1 | +# -*- coding: utf-8 -*- | ||
2 | +# Generated by Django 1.10 on 2016-10-02 00:17 | ||
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 | + ] |
forum/static/js/forum.js
@@ -14,6 +14,46 @@ function getCookie(name) { | @@ -14,6 +14,46 @@ function getCookie(name) { | ||
14 | return cookieValue; | 14 | return cookieValue; |
15 | } | 15 | } |
16 | 16 | ||
17 | +function createForum(url, topic) { | ||
18 | + $.ajax({ | ||
19 | + url: url, | ||
20 | + data: {'topic': topic}, | ||
21 | + success: function(data) { | ||
22 | + $(".forum_form").html(data); | ||
23 | + $("#id_topic").val(topic); | ||
24 | + | ||
25 | + $('.date-picker').datepicker({ | ||
26 | + orientation: 'auto' | ||
27 | + }); | ||
28 | + | ||
29 | + | ||
30 | + var frm = $('#forum_create'); | ||
31 | + frm.submit(function () { | ||
32 | + $.ajax({ | ||
33 | + type: frm.attr('method'), | ||
34 | + url: frm.attr('action'), | ||
35 | + data: frm.serialize(), | ||
36 | + success: function (data) { | ||
37 | + data = data.split('-'); | ||
38 | + | ||
39 | + $('.foruns_list').append("<a href='javascript:"+showForum(data[0], data[1])+"'>"+data[2]+"</a><br />"); | ||
40 | + | ||
41 | + $("#createForum").modal('hide'); | ||
42 | + | ||
43 | + showForum(data[0], data[1]); | ||
44 | + }, | ||
45 | + error: function(data) { | ||
46 | + console.log('Error'); | ||
47 | + } | ||
48 | + }); | ||
49 | + return false; | ||
50 | + }); | ||
51 | + } | ||
52 | + }); | ||
53 | + | ||
54 | + $("#createForum").modal(); | ||
55 | +} | ||
56 | + | ||
17 | 57 | ||
18 | /* | 58 | /* |
19 | * | 59 | * |
forum/urls.py
@@ -5,12 +5,13 @@ from . import views | @@ -5,12 +5,13 @@ from . import views | ||
5 | 5 | ||
6 | urlpatterns = [ | 6 | urlpatterns = [ |
7 | url(r'^$', views.ForumIndex.as_view(), name='index'), | 7 | url(r'^$', views.ForumIndex.as_view(), name='index'), |
8 | - url(r'^create$', views.CreateForumView.as_view(), name='create'), | ||
9 | - url(r'^create_post$', views.CreatePostView.as_view(), name='create_post'), | 8 | + url(r'^create/$', views.CreateForumView.as_view(), name='create'), |
9 | + url(r'^render_forum/([\w_-]+)/$', views.render_forum, name='render_forum'), | ||
10 | + url(r'^create_post/$', views.CreatePostView.as_view(), name='create_post'), | ||
10 | url(r'^update_post/(?P<pk>[\w_-]+)/$', views.PostUpdateView.as_view(), name='update_post'), | 11 | url(r'^update_post/(?P<pk>[\w_-]+)/$', views.PostUpdateView.as_view(), name='update_post'), |
11 | url(r'^delete_post/(?P<pk>[\w_-]+)/$', views.PostDeleteView.as_view(), name='delete_post'), | 12 | url(r'^delete_post/(?P<pk>[\w_-]+)/$', views.PostDeleteView.as_view(), name='delete_post'), |
12 | url(r'^render_post/([\w_-]+)/$', views.render_post, name='render_post'), | 13 | url(r'^render_post/([\w_-]+)/$', views.render_post, name='render_post'), |
13 | url(r'^post_deleted/$', views.post_deleted, name='deleted_post'), | 14 | url(r'^post_deleted/$', views.post_deleted, name='deleted_post'), |
14 | - url(r'^post_answers$', views.PostAnswerIndex.as_view(), name='post_answers'), | ||
15 | - url(r'^reply_post$', views.CreatePostAnswerView.as_view(), name='reply_post'), | 15 | + url(r'^post_answers/$', views.PostAnswerIndex.as_view(), name='post_answers'), |
16 | + url(r'^reply_post/$', views.CreatePostAnswerView.as_view(), name='reply_post'), | ||
16 | ] | 17 | ] |
forum/views.py
@@ -31,10 +31,21 @@ class ForumIndex(LoginRequiredMixin, generic.ListView): | @@ -31,10 +31,21 @@ class ForumIndex(LoginRequiredMixin, generic.ListView): | ||
31 | return context | 31 | return context |
32 | 32 | ||
33 | class CreateForumView(LoginRequiredMixin, generic.edit.CreateView): | 33 | class CreateForumView(LoginRequiredMixin, generic.edit.CreateView): |
34 | + login_url = reverse_lazy("core:home") | ||
35 | + redirect_field_name = 'next' | ||
34 | 36 | ||
35 | template_name = 'forum/forum_form.html' | 37 | template_name = 'forum/forum_form.html' |
36 | form_class = ForumForm | 38 | form_class = ForumForm |
37 | - success_url = reverse_lazy('forum:index') | 39 | + |
40 | + def get_success_url(self): | ||
41 | + self.success_url = reverse('forum:render_forum', args = (self.object.id, )) | ||
42 | + | ||
43 | + return self.success_url | ||
44 | + | ||
45 | +def render_forum(request, forum): | ||
46 | + last_forum = get_object_or_404(Forum, id = forum) | ||
47 | + | ||
48 | + return HttpResponse(str(reverse_lazy('forum:index')) + '-' + str(forum) + '-' + str(last_forum.name)) | ||
38 | 49 | ||
39 | class CreatePostView(LoginRequiredMixin, generic.edit.CreateView): | 50 | class CreatePostView(LoginRequiredMixin, generic.edit.CreateView): |
40 | login_url = reverse_lazy("core:home") | 51 | login_url = reverse_lazy("core:home") |
poll/migrations/0001_initial.py
1 | # -*- coding: utf-8 -*- | 1 | # -*- coding: utf-8 -*- |
2 | -# Generated by Django 1.10 on 2016-10-01 16:02 | 2 | +# Generated by Django 1.10 on 2016-10-02 00:17 |
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 |
users/migrations/0001_initial.py
1 | # -*- coding: utf-8 -*- | 1 | # -*- coding: utf-8 -*- |
2 | -# Generated by Django 1.10 on 2016-10-01 16:01 | 2 | +# Generated by Django 1.10 on 2016-10-02 00:17 |
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 |