Commit 3f600124fa189781d1626685d4ec611d4c230cf1

Authored by Felipe Henrique de Almeida Bormann
1 parent 319477b1

started create link for website

links/forms.py
@@ -26,11 +26,16 @@ class LinkForm(forms.ModelForm): @@ -26,11 +26,16 @@ class LinkForm(forms.ModelForm):
26 26
27 tags = forms.CharField(label = _('Tags'), required = False) 27 tags = forms.CharField(label = _('Tags'), required = False)
28 link_url = forms.URLField(label = _('Website URL'),required=True) 28 link_url = forms.URLField(label = _('Website URL'),required=True)
  29 + initial_view_date = forms.DateField(input_formats=['%Y/%m/%d', '%d/%m/%Y', '%m/%d/%Y'])
  30 + end_view_date = forms.DateField(input_formats=['%Y/%m/%d', '%d/%m/%Y', '%m/%d/%Y'])
  31 +
29 class Meta: 32 class Meta:
30 model = Link 33 model = Link
31 fields = ['name','link_url', 'initial_view','initial_view_date', 'end_view','end_view_date', 'brief_description', 'all_students', 'students', 'groups', 'visible'] 34 fields = ['name','link_url', 'initial_view','initial_view_date', 'end_view','end_view_date', 'brief_description', 'all_students', 'students', 'groups', 'visible']
32 labels = { 35 labels = {
33 'name': _('Link name'), 36 'name': _('Link name'),
  37 + 'end_view' : _('End View'),
  38 + 'end_view_date': _('End View Date')
34 } 39 }
35 widgets = { 40 widgets = {
36 'brief_description': forms.Textarea, 41 'brief_description': forms.Textarea,
@@ -38,6 +43,31 @@ class LinkForm(forms.ModelForm): @@ -38,6 +43,31 @@ class LinkForm(forms.ModelForm):
38 'groups': forms.SelectMultiple, 43 'groups': forms.SelectMultiple,
39 } 44 }
40 45
  46 + def clean(self):
  47 +
  48 + cleaned_data = self.cleaned_data
  49 +
  50 + if cleaned_data.get('end_view'):
  51 + end_view = cleaned_data.get('end_view')
  52 + if end_view:
  53 + if cleaned_data.get('end_view_date'):
  54 + end_view_date = cleaned_data.get('end_view_date')
  55 + print(end_view_date)
  56 + if not end_view_date:
  57 + raise ValidationError(_('End View Date is not set'), code='invalid' )
  58 +
  59 + if cleaned_data.get('initial_view'):
  60 + initial_view = cleaned_data.get('initial_view')
  61 + if initial_view:
  62 + if cleaned_data.get('initial_view_date'):
  63 + initial_view_date = cleaned_data.get('initial_view_date')
  64 + print(initial_view_date)
  65 + if not initial_view_date:
  66 + raise ValidationError(_('Initial View Date is not set'), code='invalid' )
  67 +
  68 + return cleaned_data
  69 +
  70 +
41 def clean_name(self): 71 def clean_name(self):
42 name = self.cleaned_data.get('name', '') 72 name = self.cleaned_data.get('name', '')
43 73
@@ -50,12 +80,13 @@ class LinkForm(forms.ModelForm): @@ -50,12 +80,13 @@ class LinkForm(forms.ModelForm):
50 same_name = topic.resource_topic.filter(name__unaccent__iexact = name).count() 80 same_name = topic.resource_topic.filter(name__unaccent__iexact = name).count()
51 81
52 if same_name > 0: 82 if same_name > 0:
53 - self._errors['name'] = [_('This subject already has a link with this name')] 83 + self._errors['name'] = [_('There is already a link with this name on this subject')]
54 84
55 return ValueError 85 return ValueError
56 86
57 return name 87 return name
58 88
  89 +
59 90
60 91
61 def save(self, commit = True): 92 def save(self, commit = True):
links/templates/links/_form.html
@@ -4,6 +4,8 @@ @@ -4,6 +4,8 @@
4 <form method="post" action="" enctype="multipart/form-data"> 4 <form method="post" action="" enctype="multipart/form-data">
5 {% csrf_token %} 5 {% csrf_token %}
6 6
  7 + {{form.non_field_errors}}
  8 +
7 {% render_field form.control_subject %} 9 {% render_field form.control_subject %}
8 10
9 <div class="form-group{% if form.has_error %} has-error {% endif %} is-fileinput"> 11 <div class="form-group{% if form.has_error %} has-error {% endif %} is-fileinput">
@@ -90,7 +92,7 @@ @@ -90,7 +92,7 @@
90 <div class="form-group{% if form.has_error %} has-error {% endif %}"> 92 <div class="form-group{% if form.has_error %} has-error {% endif %}">
91 <label for="{{ form.initial_view_date.auto_id }}">{{ form.initial_view_date.label }}</label> 93 <label for="{{ form.initial_view_date.auto_id }}">{{ form.initial_view_date.label }}</label>
92 94
93 - {% render_field form.initial_view_date class='form-control datetime-picker' %} 95 + {% render_field form.initial_view_date class='form-control date-picker' %}
94 96
95 <span id="helpBlock" class="help-block">{{ form.initial_view.help_text }}</span> 97 <span id="helpBlock" class="help-block">{{ form.initial_view.help_text }}</span>
96 98
@@ -131,6 +133,50 @@ @@ -131,6 +133,50 @@
131 {% endif %} 133 {% endif %}
132 </div> 134 </div>
133 135
  136 + <div class="form-group{% if form.has_error %} has-error {% endif %}">
  137 + <label for="{{ form.end_view_date.auto_id }}">{{ form.end_view_date.label }}</label>
  138 +
  139 + {% render_field form.end_view_date class='form-control date-picker' %}
  140 +
  141 + <span id="helpBlock" class="help-block">{{ form.end_view.help_text }}</span>
  142 +
  143 + {% if form.end_view_date.errors %}
  144 + <div class="alert alert-danger alert-dismissible" role="alert">
  145 + <button type="button" class="close" data-dismiss="alert" aria-label="Close">
  146 + <span aria-hidden="true">&times;</span>
  147 + </button>
  148 + <ul>
  149 + {% for error in form.end_view_date.errors %}
  150 + <li>{{ error }}</li>
  151 + {% endfor %}
  152 + </ul>
  153 + </div>
  154 + {% endif %}
  155 + </div>
  156 +
  157 + <div class="form-group{% if form.has_error %} has-error {% endif %}">
  158 + <div class=" checkbox">
  159 + <label for="{{ form.end_view.auto_id }}">
  160 + {% render_field form.end_view %} {{ form.end_view.label }}
  161 + </label>
  162 + </div>
  163 +
  164 + <span id="helpBlock" class="help-block">{{ form.end_view.help_text }}</span>
  165 +
  166 + {% if form.end_view.errors %}
  167 + <div class="alert alert-danger alert-dismissible" role="alert">
  168 + <button type="button" class="close" data-dismiss="alert" aria-label="Close">
  169 + <span aria-hidden="true">&times;</span>
  170 + </button>
  171 + <ul>
  172 + {% for error in form.end_view.errors %}
  173 + <li>{{ error }}</li>
  174 + {% endfor %}
  175 + </ul>
  176 + </div>
  177 + {% endif %}
  178 + </div>
  179 +
134 180
135 <div class=" form-group panel-group" id="professors_accordion" role="tablist" aria-multiselectable="true"> 181 <div class=" form-group panel-group" id="professors_accordion" role="tablist" aria-multiselectable="true">
136 <div class="panel panel-info"> 182 <div class="panel panel-info">
links/templates/links/create.html
@@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
17 17
18 {% breadcrumb topic 'subjects:topic_view' topic.subject.slug topic.slug %} 18 {% breadcrumb topic 'subjects:topic_view' topic.subject.slug topic.slug %}
19 19
20 - {% trans 'Create File Link' as bread %} 20 + {% trans 'Create Website Link' as bread %}
21 {% breadcrumb bread 'links:create' topic.slug %} 21 {% breadcrumb bread 'links:create' topic.slug %}
22 {% endblock %} 22 {% endblock %}
23 23
links/views.py
@@ -12,6 +12,7 @@ from log.mixins import LogMixin @@ -12,6 +12,7 @@ from log.mixins import LogMixin
12 from log.decorators import log_decorator_ajax 12 from log.decorators import log_decorator_ajax
13 from log.models import Log 13 from log.models import Log
14 14
  15 +from django.contrib import messages
15 from pendencies.forms import PendenciesForm 16 from pendencies.forms import PendenciesForm
16 17
17 from amadeus.permissions import has_subject_permissions, has_resource_permissions 18 from amadeus.permissions import has_subject_permissions, has_resource_permissions