From 2aee4eaf7eb698123c6e2e525622f4e32d051e2f Mon Sep 17 00:00:00 2001 From: Felipe Henrique de Almeida Bormann Date: Mon, 9 Jan 2017 23:35:56 -0300 Subject: [PATCH] when I create or update a subject, if the category is not visibile, the subject won't be --- subjects/forms.py | 3 +-- subjects/migrations/0010_auto_20170109_2304.py | 27 +++++++++++++++++++++++++++ subjects/migrations/0011_auto_20170109_2308.py | 26 ++++++++++++++++++++++++++ subjects/migrations/0012_auto_20170109_2312.py | 25 +++++++++++++++++++++++++ subjects/models.py | 5 ++++- subjects/static/subjects/js/subjects_card.js | 19 +++++++++++++++++++ subjects/templates/subjects/subject_card.html | 8 +++++++- subjects/templates/subjects/subscribe.html | 24 ++++++++++++++++++++++++ subjects/urls.py | 1 + subjects/views.py | 18 ++++++++++++++++-- 10 files changed, 150 insertions(+), 6 deletions(-) create mode 100644 subjects/migrations/0010_auto_20170109_2304.py create mode 100644 subjects/migrations/0011_auto_20170109_2308.py create mode 100644 subjects/migrations/0012_auto_20170109_2312.py create mode 100644 subjects/static/subjects/js/subjects_card.js create mode 100644 subjects/templates/subjects/subscribe.html diff --git a/subjects/forms.py b/subjects/forms.py index efeab0a..a4e0cfc 100644 --- a/subjects/forms.py +++ b/subjects/forms.py @@ -5,8 +5,7 @@ class CreateSubjectForm(forms.ModelForm): class Meta: model = Subject - fields = ('name', 'description_brief', 'description', 'tags', 'init_date', 'end_date', 'visible', 'professor', - 'students', ) + fields = ('name', 'description_brief', 'description', 'tags', 'init_date', 'end_date', 'visible', 'professor', 'students', ) widgets = { 'description_brief': forms.Textarea, diff --git a/subjects/migrations/0010_auto_20170109_2304.py b/subjects/migrations/0010_auto_20170109_2304.py new file mode 100644 index 0000000..9435fa2 --- /dev/null +++ b/subjects/migrations/0010_auto_20170109_2304.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.4 on 2017-01-10 02:04 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('subjects', '0009_auto_20170105_1835'), + ] + + operations = [ + migrations.AddField( + model_name='subject', + name='subscribe_begin', + field=models.DateTimeField(default=1, verbose_name='Begin Subscribe'), + preserve_default=False, + ), + migrations.AddField( + model_name='subject', + name='subscribe_end', + field=models.DateTimeField(default=1, verbose_name='End Subscribe'), + preserve_default=False, + ), + ] diff --git a/subjects/migrations/0011_auto_20170109_2308.py b/subjects/migrations/0011_auto_20170109_2308.py new file mode 100644 index 0000000..3e2609d --- /dev/null +++ b/subjects/migrations/0011_auto_20170109_2308.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.4 on 2017-01-10 02:08 +from __future__ import unicode_literals + +import datetime +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('subjects', '0010_auto_20170109_2304'), + ] + + operations = [ + migrations.AlterField( + model_name='subject', + name='subscribe_begin', + field=models.DateTimeField(default=datetime.datetime.now, verbose_name='Begin Subscribe'), + ), + migrations.AlterField( + model_name='subject', + name='subscribe_end', + field=models.DateTimeField(default=datetime.datetime.now, verbose_name='End Subscribe'), + ), + ] diff --git a/subjects/migrations/0012_auto_20170109_2312.py b/subjects/migrations/0012_auto_20170109_2312.py new file mode 100644 index 0000000..b267016 --- /dev/null +++ b/subjects/migrations/0012_auto_20170109_2312.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.4 on 2017-01-10 02:12 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('subjects', '0011_auto_20170109_2308'), + ] + + operations = [ + migrations.AlterField( + model_name='subject', + name='subscribe_begin', + field=models.DateTimeField(verbose_name='Begin Subscribe'), + ), + migrations.AlterField( + model_name='subject', + name='subscribe_end', + field=models.DateTimeField(verbose_name='End Subscribe'), + ), + ] diff --git a/subjects/models.py b/subjects/models.py index b141a01..b6bb954 100644 --- a/subjects/models.py +++ b/subjects/models.py @@ -7,7 +7,7 @@ from django.utils.translation import ugettext_lazy as _ from users.models import User from categories.models import Category - +import datetime class Tag(models.Model): name = models.CharField( _("Name"), unique = True,max_length= 200) def __str__(self): @@ -30,6 +30,9 @@ class Subject(models.Model): create_date = models.DateTimeField(_('Creation Date'), auto_now_add = True) update_date = models.DateTimeField(_('Date of last update'), auto_now=True) + #subscribe_begin = models.DateTimeField(_('Begin Subscribe')) + #subscribe_end = models.DateTimeField(_('End Subscribe')) + professor = models.ManyToManyField(User, related_name="professors", blank=True) students = models.ManyToManyField(User,verbose_name=_('Students'), related_name='subject_student', blank = True) diff --git a/subjects/static/subjects/js/subjects_card.js b/subjects/static/subjects/js/subjects_card.js new file mode 100644 index 0000000..98d3ede --- /dev/null +++ b/subjects/static/subjects/js/subjects_card.js @@ -0,0 +1,19 @@ +/* +Function to open modal for subscribing to subject +**/ + +var open_modal = { + get: function(url, id_modal, id_div_modal){ + $.get(url, function(data){ + if($(id_modal).exists()){ //So we check if does exist such modal + $(id_div_modal).empty(); + $(id_div_modal).append(data); + }else{ + $(id_div_modal).append(data); + } + $(id_modal).modal('show'); + }); + } +} + + diff --git a/subjects/templates/subjects/subject_card.html b/subjects/templates/subjects/subject_card.html index da880c1..32c3ebd 100644 --- a/subjects/templates/subjects/subject_card.html +++ b/subjects/templates/subjects/subject_card.html @@ -1,5 +1,11 @@ {% load static i18n permission_tags %} {% if subject.visible %} + + + + + +
@@ -56,7 +62,7 @@ {% if request.user in subject.students.all or request.user in subject.professor.all or request.user.is_staff or request.user in category.coordinators.all %} {% else %} - + {% endif %}
diff --git a/subjects/templates/subjects/subscribe.html b/subjects/templates/subjects/subscribe.html new file mode 100644 index 0000000..8dadf28 --- /dev/null +++ b/subjects/templates/subjects/subscribe.html @@ -0,0 +1,24 @@ +{% load static i18n permission_tags %} + + + \ No newline at end of file diff --git a/subjects/urls.py b/subjects/urls.py index 8abfc23..76356c2 100644 --- a/subjects/urls.py +++ b/subjects/urls.py @@ -8,4 +8,5 @@ urlpatterns = [ url(r'^create/(?P[\w_-]+)/$', views.SubjectCreateView.as_view(), name='create'), url(r'^replicate/(?P[\w_-]+)/$', views.SubjectCreateView.as_view(), name='replicate'), url(r'^update/(?P[\w_-]+)/$', views.SubjectUpdateView.as_view(), name='update'), + #url(r'^modal/(?P[\w_-]+)/$', views.subscribe_subject(), name='subscribe'), ] \ No newline at end of file diff --git a/subjects/views.py b/subjects/views.py index 7f99019..fb5ac34 100644 --- a/subjects/views.py +++ b/subjects/views.py @@ -169,7 +169,9 @@ class SubjectCreateView(CreateView): return super(SubjectCreateView, self).form_valid(form) def get_success_url(self): - + if not self.object.category.visible: + self.object.visible = False + self.object.save() messages.success(self.request, _('Subject "%s" was registered on "%s" successfully!')%(self.object.name, self.object.category.name )) return reverse_lazy('subjects:index') @@ -193,8 +195,20 @@ class SubjectUpdateView(LogMixin, UpdateView): return context def get_success_url(self): - + if not self.object.category.visible: + self.object.visible = False + self.object.save() messages.success(self.request, _('Subject "%s" was updated on "%s" successfully!')%(self.object.name, self.object.category.name )) return reverse_lazy('subjects:index') + +def subscribe_subject(request, subject_slug): + subject = get_object_or_404(Subject, slug= subject_slug) + subject.students.add(request.user) + subject.save() + + messages.success(self.request, _('Subcribed "%s" was updated on "%s" successfully!')%(self.object.name, self.object.category.name )) + return reverse_lazy('subjects:index') + + -- libgit2 0.21.2