Commit 3f600124fa189781d1626685d4ec611d4c230cf1
1 parent
319477b1
Exists in
master
and in
3 other branches
started create link for website
Showing
4 changed files
with
81 additions
and
3 deletions
Show diff stats
links/forms.py
... | ... | @@ -26,11 +26,16 @@ class LinkForm(forms.ModelForm): |
26 | 26 | |
27 | 27 | tags = forms.CharField(label = _('Tags'), required = False) |
28 | 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 | 32 | class Meta: |
30 | 33 | model = Link |
31 | 34 | fields = ['name','link_url', 'initial_view','initial_view_date', 'end_view','end_view_date', 'brief_description', 'all_students', 'students', 'groups', 'visible'] |
32 | 35 | labels = { |
33 | 36 | 'name': _('Link name'), |
37 | + 'end_view' : _('End View'), | |
38 | + 'end_view_date': _('End View Date') | |
34 | 39 | } |
35 | 40 | widgets = { |
36 | 41 | 'brief_description': forms.Textarea, |
... | ... | @@ -38,6 +43,31 @@ class LinkForm(forms.ModelForm): |
38 | 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 | 71 | def clean_name(self): |
42 | 72 | name = self.cleaned_data.get('name', '') |
43 | 73 | |
... | ... | @@ -50,12 +80,13 @@ class LinkForm(forms.ModelForm): |
50 | 80 | same_name = topic.resource_topic.filter(name__unaccent__iexact = name).count() |
51 | 81 | |
52 | 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 | 85 | return ValueError |
56 | 86 | |
57 | 87 | return name |
58 | 88 | |
89 | + | |
59 | 90 | |
60 | 91 | |
61 | 92 | def save(self, commit = True): | ... | ... |
links/templates/links/_form.html
... | ... | @@ -4,6 +4,8 @@ |
4 | 4 | <form method="post" action="" enctype="multipart/form-data"> |
5 | 5 | {% csrf_token %} |
6 | 6 | |
7 | + {{form.non_field_errors}} | |
8 | + | |
7 | 9 | {% render_field form.control_subject %} |
8 | 10 | |
9 | 11 | <div class="form-group{% if form.has_error %} has-error {% endif %} is-fileinput"> |
... | ... | @@ -90,7 +92,7 @@ |
90 | 92 | <div class="form-group{% if form.has_error %} has-error {% endif %}"> |
91 | 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 | 97 | <span id="helpBlock" class="help-block">{{ form.initial_view.help_text }}</span> |
96 | 98 | |
... | ... | @@ -131,6 +133,50 @@ |
131 | 133 | {% endif %} |
132 | 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">×</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">×</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 | 181 | <div class=" form-group panel-group" id="professors_accordion" role="tablist" aria-multiselectable="true"> |
136 | 182 | <div class="panel panel-info"> | ... | ... |
links/templates/links/create.html
... | ... | @@ -17,7 +17,7 @@ |
17 | 17 | |
18 | 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 | 21 | {% breadcrumb bread 'links:create' topic.slug %} |
22 | 22 | {% endblock %} |
23 | 23 | ... | ... |
links/views.py
... | ... | @@ -12,6 +12,7 @@ from log.mixins import LogMixin |
12 | 12 | from log.decorators import log_decorator_ajax |
13 | 13 | from log.models import Log |
14 | 14 | |
15 | +from django.contrib import messages | |
15 | 16 | from pendencies.forms import PendenciesForm |
16 | 17 | |
17 | 18 | from amadeus.permissions import has_subject_permissions, has_resource_permissions | ... | ... |