From ae5514861a9be8b34ff0151a7a629c22adbdae7d Mon Sep 17 00:00:00 2001 From: Jannis Portmann Date: Fri, 15 Sep 2023 13:22:56 +0200 Subject: [PATCH 1/4] Extend FAQ --- pflaenzli/pflaenzli/templates/app/faq.html | 31 +++++++++++++++------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/pflaenzli/pflaenzli/templates/app/faq.html b/pflaenzli/pflaenzli/templates/app/faq.html index 57bf1ef..c2a44c7 100644 --- a/pflaenzli/pflaenzli/templates/app/faq.html +++ b/pflaenzli/pflaenzli/templates/app/faq.html @@ -1,14 +1,25 @@ {% extends 'base.html' %} {% load i18n %} {% block title %}FAQ{% endblock %} -{% block meta %}{% endblock %} -{% block content %} -

Frequently Asked Questions

-

Is it free?

-

- Yes, pflänz.li is free to use and its source code is publically accessible. -

-

Can I help?

- Yes, feel free to contact @thisfro! -

+{% block meta %} + +{% endblock %} +{% block content %} +

{% trans "Frequently Asked Questions" %}

+

{% trans "How can I trade plants?" %}

+

+ {% trans "First you need an account, so please register if you don't have one. Then you can create an offer with your plant and add wishes in your wishlist. Find another plant someone offers and offer them a trade. The person will receive an email with your contact and indicates your interest. They can then respond to you and you can agree upon the trade details, e.g. where and when to exchange the plants." %} +

+

{% trans "Is it free?" %}

+

+ {% trans "Yes, Pflänz.li is free to use and its source code is publicly accessible." %} +

+

{% trans "Can I help?" %}

+

+ {% trans "Yes, feel free to contact @thisfro!" %} +

+

{% trans "Does Pflänz.li use tracking?" %}

+

+ {% trans "Yes Pflänz.li uses the open-source tool umami, but no cookies are needed to do that and only general anonymous data is collected." %} +

{% endblock %} From 2a92785ddfa931ac4ed00218869ac3e0212fbd89 Mon Sep 17 00:00:00 2001 From: Jannis Portmann Date: Fri, 15 Sep 2023 19:19:45 +0200 Subject: [PATCH 2/4] Update imprint --- .../pflaenzli/templates/app/imprint.html | 407 ++---------------- 1 file changed, 31 insertions(+), 376 deletions(-) diff --git a/pflaenzli/pflaenzli/templates/app/imprint.html b/pflaenzli/pflaenzli/templates/app/imprint.html index 757ef73..1563710 100644 --- a/pflaenzli/pflaenzli/templates/app/imprint.html +++ b/pflaenzli/pflaenzli/templates/app/imprint.html @@ -7,390 +7,45 @@ {% endblock %} {% block content %} -

Privacy Policy

-

- We are very delighted that you have shown interest in our enterprise. Data protection is of a particularly high priority for the management of Pflänz.li. The use of the Internet pages of Pflänz.li is possible without any indication of personal data; however, if a data subject wants to use special enterprise services via our website, processing of personal data could become necessary. If the processing of personal data is necessary and there is no statutory basis for such processing, we generally obtain consent from the data subject. +

{% trans "Imprint" %}

+

{% trans "Mailing Address" %}

+

+ Pflänz.li +
+ c/o Jannis Portmann +
+ Marbachweg 22 +
+ 8041 Zürich

-

- The processing of personal data, such as the name, address, e-mail address, or telephone number of a data subject shall always be in line with the General Data Protection Regulation (GDPR), and in accordance with the country-specific data protection regulations applicable to Pflänz.li. By means of this data protection declaration, our enterprise would like to inform the general public of the nature, scope, and purpose of the personal data we collect, use and process. Furthermore, data subjects are informed, by means of this data protection declaration, of the rights to which they are entitled. +

{% trans "Disclaimer of Liability" %}

+

+ {% trans "Pflänz.li assumes no liability for the correctness, accuracy, timeliness, reliability, and completeness of the information." %}

-

- As the controller, Pflänz.li has implemented numerous technical and organizational measures to ensure the most complete protection of personal data processed through this website. However, Internet-based data transmissions may in principle have security gaps, so absolute protection may not be guaranteed. For this reason, every data subject is free to transfer personal data to us via alternative means, e.g. by telephone. +


+

{% trans "Privacy Policy" %}

+

+ {% trans "With this privacy policy, we inform you about the processing of personal data in connection with our website" %} + {% trans "pflaenz.li" %}.

-

- 1. Definitions -

-

- The data protection declaration of Pflänz.li is based on the terms used by the European legislator for the adoption of the General Data Protection Regulation (GDPR). Our data protection declaration should be legible and understandable for the general public, as well as our customers and business partners. To ensure this, we would like to first explain the terminology used. +

{% trans "Processing of Personal Data" %}

+

+ {% trans "We process only the personal data that we receive in the context of using Pflänz.li. This includes all input through the website and also server log data (such as IP address, device type, etc.)." %}

-

In this data protection declaration, we use, inter alia, the following terms:

- -

- 2. Name and Address of the controller -

-

- Controller for the purposes of the General Data Protection Regulation (GDPR), other data protection laws applicable in Member states of the European Union and other provisions related to data protection is: +

{% trans "Cookies / Tracking" %}

+

+ {% trans "Cookies are used exclusively to persist the session (for functions like 'Stay logged in' or language settings). To analyze user behavior, we use the open-source tracking tool umami, which is also operated by Pflänz.li, and no data is shared with third parties. Only anonymous data is used." %}

-

Pflänz.li

-

Email: contact@pflaenz.li

-

Website: pflaenz.li

-

- 3. Cookies -

+

{% trans "Retention Period" %}

- The Internet pages of Pflänz.li use cookies. Cookies are text files that are stored in a computer system via an Internet browser. + {% trans "We process and store your personal data for as long as it is necessary to fulfill our legal obligations or the purposes pursued with the processing." %}

+

{% trans "Data Security" %}

- Many Internet sites and servers use cookies. Many cookies contain a so-called cookie ID. A cookie ID is a unique identifier of the cookie. It consists of a character string through which Internet pages and servers can be assigned to the specific Internet browser in which the cookie was stored. This allows visited Internet sites and servers to differentiate the individual browser of the dats subject from other Internet browsers that contain other cookies. A specific Internet browser can be recognized and identified using the unique cookie ID. + {% trans "We take appropriate technical and organizational security measures to protect your personal data from unauthorized access and misuse." %}

+

{% trans "Changes" %}

- Through the use of cookies, Pflänz.li can provide the users of this website with more user-friendly services that would not be possible without the cookie setting. + {% trans "We may amend this privacy policy at any time without prior notice. The current version published on our website shall apply. If the privacy policy is part of an agreement with you, we will inform you by email of any changes." %}

-

- By means of a cookie, the information and offers on our website can be optimized with the user in mind. Cookies allow us, as previously mentioned, to recognize our website users. The purpose of this recognition is to make it easier for users to utilize our website. The website user that uses cookies, e.g. does not have to enter access data each time the website is accessed, because this is taken over by the website, and the cookie is thus stored on the user's computer system. Another example is the cookie of a shopping cart in an online shop. The online store remembers the articles that a customer has placed in the virtual shopping cart via a cookie. -

-

- The data subject may, at any time, prevent the setting of cookies through our website by means of a corresponding setting of the Internet browser used, and may thus permanently deny the setting of cookies. Furthermore, already set cookies may be deleted at any time via an Internet browser or other software programs. This is possible in all popular Internet browsers. If the data subject deactivates the setting of cookies in the Internet browser used, not all functions of our website may be entirely usable. -

-

- 4. Collection of general data and information -

-

- The website of Pflänz.li collects a series of general data and information when a data subject or automated system calls up the website. This general data and information are stored in the server log files. Collected may be (1) the browser types and versions used, (2) the operating system used by the accessing system, (3) the website from which an accessing system reaches our website (so-called referrers), (4) the sub-websites, (5) the date and time of access to the Internet site, (6) an Internet protocol address (IP address), (7) the Internet service provider of the accessing system, and (8) any other similar data and information that may be used in the event of attacks on our information technology systems. -

-

- When using these general data and information, Pflänz.li does not draw any conclusions about the data subject. Rather, this information is needed to (1) deliver the content of our website correctly, (2) optimize the content of our website as well as its advertisement, (3) ensure the long-term viability of our information technology systems and website technology, and (4) provide law enforcement authorities with the information necessary for criminal prosecution in case of a cyber-attack. Therefore, Pflänz.li analyzes anonymously collected data and information statistically, with the aim of increasing the data protection and data security of our enterprise, and to ensure an optimal level of protection for the personal data we process. The anonymous data of the server log files are stored separately from all personal data provided by a data subject. -

-

- 5. Registration on our website -

-

- The data subject has the possibility to register on the website of the controller with the indication of personal data. Which personal data are transmitted to the controller is determined by the respective input mask used for the registration. The personal data entered by the data subject are collected and stored exclusively for internal use by the controller, and for his own purposes. The controller may request transfer to one or more processors (e.g. a parcel service) that also uses personal data for an internal purpose which is attributable to the controller. -

-

- By registering on the website of the controller, the IP address—assigned by the Internet service provider (ISP) and used by the data subject—date, and time of the registration are also stored. The storage of this data takes place against the background that this is the only way to prevent the misuse of our services, and, if necessary, to make it possible to investigate committed offenses. Insofar, the storage of this data is necessary to secure the controller. This data is not passed on to third parties unless there is a statutory obligation to pass on the data, or if the transfer serves the aim of criminal prosecution. -

-

- The registration of the data subject, with the voluntary indication of personal data, is intended to enable the controller to offer the data subject contents or services that may only be offered to registered users due to the nature of the matter in question. Registered persons are free to change the personal data specified during the registration at any time, or to have them completely deleted from the data stock of the controller. -

-

- The data controller shall, at any time, provide information upon request to each data subject as to what personal data are stored about the data subject. In addition, the data controller shall correct or erase personal data at the request or indication of the data subject, insofar as there are no statutory storage obligations. The entirety of the controller’s employees are available to the data subject in this respect as contact persons. -

-

- 6. Routine erasure and blocking of personal data -

-

- The data controller shall process and store the personal data of the data subject only for the period necessary to achieve the purpose of storage, or as far as this is granted by the European legislator or other legislators in laws or regulations to which the controller is subject to. -

-

- If the storage purpose is not applicable, or if a storage period prescribed by the European legislator or another competent legislator expires, the personal data are routinely blocked or erased in accordance with legal requirements. -

-

- 7. Rights of the data subject -

- -

- 8. Legal basis for the processing -

-

- Art. 6(1) lit. a GDPR serves as the legal basis for processing operations for which we obtain consent for a specific processing purpose. If the processing of personal data is necessary for the performance of a contract to which the data subject is party, as is the case, for example, when processing operations are necessary for the supply of goods or to provide any other service, the processing is based on Article 6(1) lit. b GDPR. The same applies to such processing operations which are necessary for carrying out pre-contractual measures, for example in the case of inquiries concerning our products or services. Is our company subject to a legal obligation by which processing of personal data is required, such as for the fulfillment of tax obligations, the processing is based on Art. 6(1) lit. c GDPR. - In rare cases, the processing of personal data may be necessary to protect the vital interests of the data subject or of another natural person. This would be the case, for example, if a visitor were injured in our company and his name, age, health insurance data or other vital information would have to be passed on to a doctor, hospital or other third party. Then the processing would be based on Art. 6(1) lit. d GDPR. - Finally, processing operations could be based on Article 6(1) lit. f GDPR. This legal basis is used for processing operations which are not covered by any of the abovementioned legal grounds, if processing is necessary for the purposes of the legitimate interests pursued by our company or by a third party, except where such interests are overridden by the interests or fundamental rights and freedoms of the data subject which require protection of personal data. Such processing operations are particularly permissible because they have been specifically mentioned by the European legislator. He considered that a legitimate interest could be assumed if the data subject is a client of the controller (Recital 47 Sentence 2 GDPR). -

-

- 9. The legitimate interests pursued by the controller or by a third party -

-

- Where the processing of personal data is based on Article 6(1) lit. f GDPR our legitimate interest is to carry out our business in favor of the well-being of all our employees and the shareholders. -

-

- 10. Period for which the personal data will be stored -

-

- The criteria used to determine the period of storage of personal data is the respective statutory retention period. After expiration of that period, the corresponding data is routinely deleted, as long as it is no longer necessary for the fulfillment of the contract or the initiation of a contract. -

-

- 11. Provision of personal data as statutory or contractual requirement; Requirement necessary to enter into a contract; Obligation of the data subject to provide the personal data; possible consequences of failure to provide such data -

-

- We clarify that the provision of personal data is partly required by law (e.g. tax regulations) or can also result from contractual provisions (e.g. information on the contractual partner). - Sometimes it may be necessary to conclude a contract that the data subject provides us with personal data, which must subsequently be processed by us. The data subject is, for example, obliged to provide us with personal data when our company signs a contract with him or her. The non-provision of the personal data would have the consequence that the contract with the data subject could not be concluded. - Before personal data is provided by the data subject, the data subject must contact any employee. The employee clarifies to the data subject whether the provision of the personal data is required by law or contract or is necessary for the conclusion of the contract, whether there is an obligation to provide the personal data and the consequences of non-provision of the personal data. -

-

- 12. Existence of automated decision-making -

-

- As a responsible company, we do not use automatic decision-making or profiling. -

-

- Developed by the specialists for LegalTech at Willing & Able that also developed the system for data protection officer certification online. The legal texts contained in our privacy policy generator have been provided and published by Prof. Dr. h.c. Heiko Jonny Maniero from the German Association for Data Protection and Christian Solmecke from WBS law. -

-{% endblock %} +{% endblock content %} From fd02ffbe4e933861b60a0724475d91c804d8d591 Mon Sep 17 00:00:00 2001 From: Jannis Portmann Date: Sat, 16 Sep 2023 14:20:49 +0200 Subject: [PATCH 3/4] Remove unneeded translation --- pflaenzli/pflaenzli/templates/app/imprint.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pflaenzli/pflaenzli/templates/app/imprint.html b/pflaenzli/pflaenzli/templates/app/imprint.html index 1563710..c0afa6f 100644 --- a/pflaenzli/pflaenzli/templates/app/imprint.html +++ b/pflaenzli/pflaenzli/templates/app/imprint.html @@ -26,7 +26,7 @@

{% trans "Privacy Policy" %}

{% trans "With this privacy policy, we inform you about the processing of personal data in connection with our website" %} - {% trans "pflaenz.li" %}. + pflaenz.li.

{% trans "Processing of Personal Data" %}

From c31fd8ff9a1953bc162cd6c8051943462ce5eff5 Mon Sep 17 00:00:00 2001 From: Jannis Portmann Date: Sat, 16 Sep 2023 14:21:59 +0200 Subject: [PATCH 4/4] Add privacy notice to registration --- pflaenzli/pflaenzli/templates/basic_form.html | 1 + pflaenzli/pflaenzli/views.py | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/pflaenzli/pflaenzli/templates/basic_form.html b/pflaenzli/pflaenzli/templates/basic_form.html index 2c8f0e2..c66db84 100644 --- a/pflaenzli/pflaenzli/templates/basic_form.html +++ b/pflaenzli/pflaenzli/templates/basic_form.html @@ -7,6 +7,7 @@

{% csrf_token %} {{ form|crispy }} + {% if form_note %}
{{ form_note }}
{% endif %} diff --git a/pflaenzli/pflaenzli/views.py b/pflaenzli/pflaenzli/views.py index 028df6b..cb0ce9e 100644 --- a/pflaenzli/pflaenzli/views.py +++ b/pflaenzli/pflaenzli/views.py @@ -4,6 +4,7 @@ from django.contrib.auth import login from django.contrib.auth.decorators import login_required from django.http import HttpResponseForbidden from django.shortcuts import get_object_or_404, redirect, render +from django.utils.safestring import mark_safe from django.utils.translation import gettext_lazy as _ from django.utils.translation import activate, get_language from django.views.decorators.csrf import csrf_protect @@ -189,7 +190,7 @@ def register_user(request): else: form = RegistrationForm() - return render(request, "basic_form.html", {"form": form, "button_label": _("Register"), "title": _("Registeration"), "umami_event": "User registration"}) + return render(request, "basic_form.html", {"form": form, "button_label": _("Register"), "title": _("Registeration"), "umami_event": "User registration", "form_note": mark_safe(_('Please note the privacy policy'))}) def save_language(request):