From 27e418176b0f7d1afd8f36a47afbfe2008df2ff3 Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Tue, 24 Nov 2020 11:17:01 +0100 Subject: [PATCH] privacy notice acceptance is simplified --- smash/web/forms/worker_form.py | 5 +++ .../acceptance_study_privacy_notice.html | 36 +++---------------- smash/web/views/privacy_notice.py | 19 +++++----- 3 files changed, 20 insertions(+), 40 deletions(-) diff --git a/smash/web/forms/worker_form.py b/smash/web/forms/worker_form.py index 1f72d374..f8236293 100644 --- a/smash/web/forms/worker_form.py +++ b/smash/web/forms/worker_form.py @@ -23,6 +23,11 @@ class WorkerAcceptPrivacyNoticeForm(ModelForm): super(WorkerAcceptPrivacyNoticeForm, self).__init__(*args, **kwargs) self.fields['privacy_notice_accepted'].label = 'Do you accept the privacy notice?' + def clean(self): + cleaned_data = super().clean() + cleaned_data['privacy_notice_accepted'] = True + return cleaned_data + class WorkerForm(ModelForm): class Meta: model = Worker diff --git a/smash/web/templates/privacy_notice/acceptance_study_privacy_notice.html b/smash/web/templates/privacy_notice/acceptance_study_privacy_notice.html index 7ed71ac3..e2c1a1d6 100644 --- a/smash/web/templates/privacy_notice/acceptance_study_privacy_notice.html +++ b/smash/web/templates/privacy_notice/acceptance_study_privacy_notice.html @@ -26,47 +26,19 @@ <div class="box-body"> <div class="form-group {% if field.errors %}has-error{% endif %}"> <label class="col-sm-4 col-lg-offset-1 col-lg-2 control-label"> - Privacy Notice Summary + <p >{{privacy_notice.summary}}. Read <a href="{{ privacy_notice.document.url }}">more</a></p> </label> - - <div class="col-sm-8 col-lg-4"> - <textarea class="form-control" readonly>{{privacy_notice.summary}}</textarea> - </div> - </div> - {% for field in form %} - <div class="form-group {% if field.errors %}has-error{% endif %}"> - <label class="col-sm-4 col-lg-offset-1 col-lg-2 control-label"> - {{ field.label }} - {% if field.help_text %} - <i class="fa fa-info-circle help_text" aria-hidden="true" data-toggle="tooltip" data-placement="top" title="{{field.help_text}}"></i> - {% endif %} - </label> - - <div class="col-sm-8 col-lg-4"> - {{ field|add_class:'form-control' }} - {% if field.errors %} - <span class="help-block">{{ field.errors }}</span> - {% endif %} - </div> - - </div> - {% endfor %} </div><!-- /.box-body --> - <div class="box-footer"> - <div class="alert alert-warning" role="alert"> - IMPORTANT: <b>If you do not accept the privacy notice, your account will be disabled.</b> - </div> - </div> <div class="box-footer"> <div class="col-sm-6"> - <a class="btn btn-block btn-info" title="Download privacy notice" href="{{ privacy_notice.document.url }}"> - Download Privacy Notice <i class="fa fa-download"></i> + <a class="btn btn-block btn-info" href="{% url 'logout' %}"> + I do not agree </a> </div> <div class="col-sm-6"> <button type="submit" class="btn btn-block btn-success">{% block save-button %} - Submit{% endblock %}</button> + I agree{% endblock %}</button> </div> </div><!-- /.box-footer --> </form> diff --git a/smash/web/views/privacy_notice.py b/smash/web/views/privacy_notice.py index 918de164..dc44ade1 100644 --- a/smash/web/views/privacy_notice.py +++ b/smash/web/views/privacy_notice.py @@ -26,6 +26,7 @@ class PrivacyNoticeListView(ListView, WrappedView): def dispatch(self, *args, **kwargs): return super(PrivacyNoticeListView, self).dispatch(*args, **kwargs) + @PermissionDecorator('change_privacynotice', 'privacynotice') def privacy_notice_add(request): if request.method == 'POST': @@ -55,7 +56,8 @@ def privacy_notice_edit(request, pk): except: messages.add_message(request, messages.ERROR, 'There was a problem when updating the privacy notice.' 'Contact system administrator.') - return wrap_response(request, 'privacy_notice/edit.html', {'form': form, 'privacy_notice': privacy_notice}) + return wrap_response(request, 'privacy_notice/edit.html', + {'form': form, 'privacy_notice': privacy_notice}) else: form = PrivacyNoticeForm(instance=privacy_notice) @@ -70,9 +72,9 @@ class PrivacyNoticeDeleteView(DeleteView, WrappedView): @PermissionDecorator('change_privacynotice', 'privacynotice') def delete(self, request, *args, **kwargs): messages.success(request, "Privacy Notice deleted") - #try: + # try: return super(PrivacyNoticeDeleteView, self).delete(request, *args, **kwargs) - #except: + # except: # messages.add_message(request, messages.ERROR, 'There was a problem when deleting privacy notice. ' # 'Contact system administrator.') return redirect('web.views.privacy_notices') @@ -84,6 +86,7 @@ def privacy_notice_accept(request, pk): if request.method == 'POST': form = WorkerAcceptPrivacyNoticeForm(request.POST, instance=worker) if form.is_valid(): + # noinspection PyBroadException try: form.save() if form.cleaned_data['privacy_notice_accepted']: @@ -92,14 +95,14 @@ def privacy_notice_accept(request, pk): return redirect(request.POST.get('next')) return redirect('web.views.appointments') else: - messages.add_message(request, messages.ERROR, 'Privacy notice not accepted. Your account has been disabled.') - worker.disable() return redirect('logout') - except: + except BaseException: messages.add_message(request, messages.ERROR, 'There was a problem when updating the privacy notice.' 'Contact system administrator.') - return wrap_response(request, 'privacy_notice/acceptance_study_privacy_notice.html', {'form': form, 'privacy_notice': privacy_notice}) + return wrap_response(request, 'privacy_notice/acceptance_study_privacy_notice.html', + {'form': form, 'privacy_notice': privacy_notice}) else: form = WorkerAcceptPrivacyNoticeForm(instance=worker) - return wrap_response(request, 'privacy_notice/acceptance_study_privacy_notice.html', {'form': form, 'privacy_notice': privacy_notice}) \ No newline at end of file + return wrap_response(request, 'privacy_notice/acceptance_study_privacy_notice.html', + {'form': form, 'privacy_notice': privacy_notice}) -- GitLab