diff --git a/core/migrations/0001_initial.py b/core/migrations/0001_initial.py index 8f7e2c6..f9e6c58 100644 --- a/core/migrations/0001_initial.py +++ b/core/migrations/0001_initial.py @@ -1,9 +1,8 @@ # -*- coding: utf-8 -*- -# Generated by Django 1.10 on 2016-10-01 16:02 +# Generated by Django 1.10 on 2016-10-02 00:17 from __future__ import unicode_literals import autoslug.fields -from django.conf import settings from django.db import migrations, models import django.db.models.deletion @@ -13,7 +12,6 @@ class Migration(migrations.Migration): initial = True dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ @@ -33,7 +31,6 @@ class Migration(migrations.Migration): name='Action_Resource', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('action', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.Action', verbose_name='Action_Applied')), ], options={ 'verbose_name': 'Action_Resource', @@ -45,8 +42,6 @@ class Migration(migrations.Migration): fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('datetime', models.DateTimeField(auto_now_add=True, verbose_name='Date and Time of action')), - ('action_resource', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.Action_Resource', verbose_name='Action_Resource')), - ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Actor')), ], options={ 'verbose_name': 'Log', @@ -61,8 +56,6 @@ class Migration(migrations.Migration): ('read', models.BooleanField(default=False, verbose_name='Read')), ('datetime', models.DateTimeField(auto_now_add=True, verbose_name='Date and Time of action')), ('action_resource', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.Action_Resource', verbose_name='Action_Resource')), - ('actor', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='notification_Performer', to=settings.AUTH_USER_MODEL, verbose_name='Perfomer')), - ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='notification_Actor', to=settings.AUTH_USER_MODEL, verbose_name='User')), ], options={ 'verbose_name': 'Notification', @@ -83,9 +76,4 @@ class Migration(migrations.Migration): 'verbose_name_plural': 'Resources', }, ), - migrations.AddField( - model_name='action_resource', - name='resource', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.Resource', verbose_name='Resource'), - ), ] diff --git a/core/migrations/0002_auto_20161001_2117.py b/core/migrations/0002_auto_20161001_2117.py new file mode 100644 index 0000000..c370bcb --- /dev/null +++ b/core/migrations/0002_auto_20161001_2117.py @@ -0,0 +1,50 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10 on 2016-10-02 00:17 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('core', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='notification', + name='actor', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='notification_Performer', to=settings.AUTH_USER_MODEL, verbose_name='Perfomer'), + ), + migrations.AddField( + model_name='notification', + name='user', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='notification_Actor', to=settings.AUTH_USER_MODEL, verbose_name='User'), + ), + migrations.AddField( + model_name='log', + name='action_resource', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.Action_Resource', verbose_name='Action_Resource'), + ), + migrations.AddField( + model_name='log', + name='user', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Actor'), + ), + migrations.AddField( + model_name='action_resource', + name='action', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.Action', verbose_name='Action_Applied'), + ), + migrations.AddField( + model_name='action_resource', + name='resource', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.Resource', verbose_name='Resource'), + ), + ] diff --git a/courses/migrations/0001_initial.py b/courses/migrations/0001_initial.py index dd64828..f103f81 100644 --- a/courses/migrations/0001_initial.py +++ b/courses/migrations/0001_initial.py @@ -1,9 +1,8 @@ # -*- coding: utf-8 -*- -# Generated by Django 1.10 on 2016-10-01 16:02 +# Generated by Django 1.10 on 2016-10-02 00:17 from __future__ import unicode_literals import autoslug.fields -from django.conf import settings from django.db import migrations, models import django.db.models.deletion @@ -13,7 +12,6 @@ class Migration(migrations.Migration): initial = True dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), ('core', '0001_initial'), ] @@ -24,7 +22,6 @@ class Migration(migrations.Migration): ('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')), ('limit_date', models.DateTimeField(verbose_name='Deliver Date')), ('all_students', models.BooleanField(default=False, verbose_name='All Students')), - ('students', models.ManyToManyField(related_name='activities', to=settings.AUTH_USER_MODEL, verbose_name='Students')), ], bases=('core.resource',), ), @@ -56,9 +53,6 @@ class Migration(migrations.Migration): ('init_date', models.DateField(verbose_name='Begin of Course Date')), ('end_date', models.DateField(verbose_name='End of Course Date')), ('image', models.ImageField(blank=True, upload_to='courses/', verbose_name='Image')), - ('category', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='courses.Category', verbose_name='Category')), - ('professors', models.ManyToManyField(related_name='courses_professors', to=settings.AUTH_USER_MODEL, verbose_name='Professors')), - ('students', models.ManyToManyField(related_name='courses_student', to=settings.AUTH_USER_MODEL, verbose_name='Students')), ], options={ 'ordering': ('create_date', 'name'), @@ -71,7 +65,6 @@ class Migration(migrations.Migration): fields=[ ('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')), ('all_students', models.BooleanField(default=False, verbose_name='All Students')), - ('students', models.ManyToManyField(related_name='materials', to=settings.AUTH_USER_MODEL, verbose_name='Students')), ], bases=('core.resource',), ), @@ -87,8 +80,6 @@ class Migration(migrations.Migration): ('end_date', models.DateField(verbose_name='End of Subject Date')), ('create_date', models.DateTimeField(auto_now_add=True, verbose_name='Creation Date')), ('update_date', models.DateTimeField(auto_now=True, verbose_name='Date of last update')), - ('course', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='subjects', to='courses.Course', verbose_name='Course')), - ('professors', models.ManyToManyField(related_name='subjects', to=settings.AUTH_USER_MODEL, verbose_name='Professors')), ], options={ 'ordering': ('create_date', 'name'), @@ -103,7 +94,6 @@ class Migration(migrations.Migration): ('name', models.CharField(max_length=100, verbose_name='Name')), ('slug', autoslug.fields.AutoSlugField(editable=False, populate_from='name', unique=True, verbose_name='Slug')), ('description', models.TextField(blank=True, verbose_name='Description')), - ('subjects', models.ManyToManyField(to='courses.Subject')), ], options={ 'verbose_name': 'subject category', @@ -120,8 +110,6 @@ class Migration(migrations.Migration): ('create_date', models.DateTimeField(auto_now_add=True, verbose_name='Creation Date')), ('update_date', models.DateTimeField(auto_now=True, verbose_name='Date of last update')), ('visible', models.BooleanField(default=False, verbose_name='Visible')), - ('owner', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Owner')), - ('subject', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='courses.Subject', verbose_name='Subject')), ], options={ 'ordering': ('create_date', 'name'), @@ -129,14 +117,4 @@ class Migration(migrations.Migration): 'verbose_name_plural': 'Topics', }, ), - migrations.AddField( - model_name='material', - name='topic', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='materials', to='courses.Topic', verbose_name='Topic'), - ), - migrations.AddField( - model_name='activity', - name='topic', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='activities', to='courses.Topic', verbose_name='Topic'), - ), ] diff --git a/courses/migrations/0002_auto_20161001_2117.py b/courses/migrations/0002_auto_20161001_2117.py new file mode 100644 index 0000000..40f3582 --- /dev/null +++ b/courses/migrations/0002_auto_20161001_2117.py @@ -0,0 +1,80 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10 on 2016-10-02 00:17 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('courses', '0001_initial'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.AddField( + model_name='topic', + name='owner', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Owner'), + ), + migrations.AddField( + model_name='topic', + name='subject', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='courses.Subject', verbose_name='Subject'), + ), + migrations.AddField( + model_name='subjectcategory', + name='subjects', + field=models.ManyToManyField(to='courses.Subject'), + ), + migrations.AddField( + model_name='subject', + name='course', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='subjects', to='courses.Course', verbose_name='Course'), + ), + migrations.AddField( + model_name='subject', + name='professors', + field=models.ManyToManyField(related_name='subjects', to=settings.AUTH_USER_MODEL, verbose_name='Professors'), + ), + migrations.AddField( + model_name='material', + name='students', + field=models.ManyToManyField(related_name='materials', to=settings.AUTH_USER_MODEL, verbose_name='Students'), + ), + migrations.AddField( + model_name='material', + name='topic', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='materials', to='courses.Topic', verbose_name='Topic'), + ), + migrations.AddField( + model_name='course', + name='category', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='courses.Category', verbose_name='Category'), + ), + migrations.AddField( + model_name='course', + name='professors', + field=models.ManyToManyField(related_name='courses_professors', to=settings.AUTH_USER_MODEL, verbose_name='Professors'), + ), + migrations.AddField( + model_name='course', + name='students', + field=models.ManyToManyField(related_name='courses_student', to=settings.AUTH_USER_MODEL, verbose_name='Students'), + ), + migrations.AddField( + model_name='activity', + name='students', + field=models.ManyToManyField(related_name='activities', to=settings.AUTH_USER_MODEL, verbose_name='Students'), + ), + migrations.AddField( + model_name='activity', + name='topic', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='activities', to='courses.Topic', verbose_name='Topic'), + ), + ] diff --git a/forum/migrations/0001_initial.py b/forum/migrations/0001_initial.py index 31b3458..8a003ad 100644 --- a/forum/migrations/0001_initial.py +++ b/forum/migrations/0001_initial.py @@ -1,8 +1,7 @@ # -*- coding: utf-8 -*- -# Generated by Django 1.10 on 2016-10-01 16:02 +# Generated by Django 1.10 on 2016-10-02 00:17 from __future__ import unicode_literals -from django.conf import settings from django.db import migrations, models import django.db.models.deletion @@ -13,7 +12,6 @@ class Migration(migrations.Migration): dependencies = [ ('courses', '0001_initial'), - migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ @@ -38,8 +36,6 @@ class Migration(migrations.Migration): ('message', models.TextField(verbose_name='Post message')), ('modification_date', models.DateTimeField(auto_now=True, verbose_name='Modification Date')), ('post_date', models.DateTimeField(auto_now_add=True, verbose_name='Post Date')), - ('forum', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='forum.Forum', verbose_name='Forum')), - ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Autor')), ], options={ 'verbose_name': 'Post', @@ -54,7 +50,6 @@ class Migration(migrations.Migration): ('modification_date', models.DateTimeField(auto_now=True, verbose_name='Modification Date')), ('answer_date', models.DateTimeField(auto_now_add=True, verbose_name='Answer Date')), ('post', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='forum.Post', verbose_name='Post')), - ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Autor')), ], options={ 'verbose_name': 'Post Answer', diff --git a/forum/migrations/0002_auto_20161001_2117.py b/forum/migrations/0002_auto_20161001_2117.py new file mode 100644 index 0000000..1761dca --- /dev/null +++ b/forum/migrations/0002_auto_20161001_2117.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10 on 2016-10-02 00:17 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('forum', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='postanswer', + name='user', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Autor'), + ), + migrations.AddField( + model_name='post', + name='forum', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='forum.Forum', verbose_name='Forum'), + ), + migrations.AddField( + model_name='post', + name='user', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Autor'), + ), + ] diff --git a/forum/static/js/forum.js b/forum/static/js/forum.js index 5a54c88..f422557 100644 --- a/forum/static/js/forum.js +++ b/forum/static/js/forum.js @@ -14,6 +14,46 @@ function getCookie(name) { return cookieValue; } +function createForum(url, topic) { + $.ajax({ + url: url, + data: {'topic': topic}, + success: function(data) { + $(".forum_form").html(data); + $("#id_topic").val(topic); + + $('.date-picker').datepicker({ + orientation: 'auto' + }); + + + var frm = $('#forum_create'); + frm.submit(function () { + $.ajax({ + type: frm.attr('method'), + url: frm.attr('action'), + data: frm.serialize(), + success: function (data) { + data = data.split('-'); + + $('.foruns_list').append(""+data[2]+"
"); + + $("#createForum").modal('hide'); + + showForum(data[0], data[1]); + }, + error: function(data) { + console.log('Error'); + } + }); + return false; + }); + } + }); + + $("#createForum").modal(); +} + /* * diff --git a/forum/urls.py b/forum/urls.py index 1416a48..37d7dd8 100644 --- a/forum/urls.py +++ b/forum/urls.py @@ -5,12 +5,13 @@ from . import views urlpatterns = [ url(r'^$', views.ForumIndex.as_view(), name='index'), - url(r'^create$', views.CreateForumView.as_view(), name='create'), - url(r'^create_post$', views.CreatePostView.as_view(), name='create_post'), + url(r'^create/$', views.CreateForumView.as_view(), name='create'), + url(r'^render_forum/([\w_-]+)/$', views.render_forum, name='render_forum'), + url(r'^create_post/$', views.CreatePostView.as_view(), name='create_post'), url(r'^update_post/(?P[\w_-]+)/$', views.PostUpdateView.as_view(), name='update_post'), url(r'^delete_post/(?P[\w_-]+)/$', views.PostDeleteView.as_view(), name='delete_post'), url(r'^render_post/([\w_-]+)/$', views.render_post, name='render_post'), url(r'^post_deleted/$', views.post_deleted, name='deleted_post'), - url(r'^post_answers$', views.PostAnswerIndex.as_view(), name='post_answers'), - url(r'^reply_post$', views.CreatePostAnswerView.as_view(), name='reply_post'), + url(r'^post_answers/$', views.PostAnswerIndex.as_view(), name='post_answers'), + url(r'^reply_post/$', views.CreatePostAnswerView.as_view(), name='reply_post'), ] diff --git a/forum/views.py b/forum/views.py index d9d0664..9698f7b 100644 --- a/forum/views.py +++ b/forum/views.py @@ -31,10 +31,21 @@ class ForumIndex(LoginRequiredMixin, generic.ListView): return context class CreateForumView(LoginRequiredMixin, generic.edit.CreateView): + login_url = reverse_lazy("core:home") + redirect_field_name = 'next' template_name = 'forum/forum_form.html' form_class = ForumForm - success_url = reverse_lazy('forum:index') + + def get_success_url(self): + self.success_url = reverse('forum:render_forum', args = (self.object.id, )) + + return self.success_url + +def render_forum(request, forum): + last_forum = get_object_or_404(Forum, id = forum) + + return HttpResponse(str(reverse_lazy('forum:index')) + '-' + str(forum) + '-' + str(last_forum.name)) class CreatePostView(LoginRequiredMixin, generic.edit.CreateView): login_url = reverse_lazy("core:home") diff --git a/poll/migrations/0001_initial.py b/poll/migrations/0001_initial.py index f140052..3678e2f 100644 --- a/poll/migrations/0001_initial.py +++ b/poll/migrations/0001_initial.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Generated by Django 1.10 on 2016-10-01 16:02 +# Generated by Django 1.10 on 2016-10-02 00:17 from __future__ import unicode_literals from django.db import migrations, models diff --git a/users/migrations/0001_initial.py b/users/migrations/0001_initial.py index 1678f61..050f332 100644 --- a/users/migrations/0001_initial.py +++ b/users/migrations/0001_initial.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Generated by Django 1.10 on 2016-10-01 16:01 +# Generated by Django 1.10 on 2016-10-02 00:17 from __future__ import unicode_literals import django.contrib.auth.models -- libgit2 0.21.2