Compare commits

...

4 commits

Author SHA1 Message Date
Jannis Portmann
17d672cc3b Add wishes 2023-04-16 00:43:56 +02:00
Jannis Portmann
d2792ba10e Set access log 2023-04-16 00:43:29 +02:00
Jannis Portmann
094a5ac345 Server media with nginx 2023-04-16 00:43:19 +02:00
Jannis Portmann
184233c574 Update imprint 2023-04-15 13:30:27 +02:00
7 changed files with 183 additions and 158 deletions

View file

@ -8,12 +8,17 @@ server {
alias /app/pflaenzli/static_collected;
}
location /media {
access_log off;
alias /app/media;
}
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
access_log off;
access_log /var/log/nginx/pflaenzli_access.log;
client_max_body_size 10M;
}
}

View file

@ -3,7 +3,7 @@ from django.contrib.auth.forms import UserCreationForm
from django.utils.safestring import mark_safe
from friendly_captcha.fields import FrcCaptchaField
from .models import Offer, PflaenzliUser
from .models import Offer, PflaenzliUser, Wish
class CreateOfferForm(forms.ModelForm):
@ -27,3 +27,9 @@ class FilterForm(forms.Form):
'<i class="fa-solid fa-location-dot"></i> Zipcode'))
distance = forms.IntegerField(required=False, label=mark_safe(
'<i class="fa-solid fa-signs-post"></i> Distance (km)'))
class WishForm(forms.ModelForm):
class Meta:
model = Wish
fields = ['title']

View file

@ -3,124 +3,131 @@
{% block content %}
<h1>Privacy Policy</h1>
<p>
We are very delighted that you have shown interest in our enterprise. Data protection is of a particularly high priority for the management of the Pflänzl.i. The use of the Internet pages of the Pflänzl.i 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.
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.
</p>
<p>
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 the Pflänzl.i. 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.
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.
</p>
<p>
As the controller, the Pflänzl.i 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.
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.
</p>
<h4>1. Definitions</h4>
<h2 class="h4">
1. Definitions
</h4>
<p>
The data protection declaration of the Pflänzl.i 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.
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.
</p>
<p>In this data protection declaration, we use, inter alia, the following terms:</p>
<ul style="list-style: none">
<li>
<h4>a) Personal data</h4>
<h2 class="h4">
a)    Personal data
</h4>
<p>
Personal data means any information relating to an identified or identifiable natural person (“data subject”). An identifiable natural person is one who can be identified, directly or indirectly, in particular by reference to an identifier such as a name, an identification number, location data, an online identifier or to one or more factors specific to the physical, physiological, genetic, mental, economic, cultural or social identity of that natural person.
</p>
</li>
<li>
<h4>b) Data subject</h4>
<h2 class="h4">
b) Data subject
</h4>
<p>
Data subject is any identified or identifiable natural person, whose personal data is processed by the controller responsible for the processing.
</p>
</li>
<li>
<h4>c) Processing</h4>
<h2 class="h4">
c)    Processing
</h4>
<p>
Processing is any operation or set of operations which is performed on personal data or on sets of personal data, whether or not by automated means, such as collection, recording, organisation, structuring, storage, adaptation or alteration, retrieval, consultation, use, disclosure by transmission, dissemination or otherwise making available, alignment or combination, restriction, erasure or destruction.
</p>
</li>
<li>
<h4>d) Restriction of processing</h4>
<h2 class="h4">
d)    Restriction of processing
</h4>
<p>
Restriction of processing is the marking of stored personal data with the aim of limiting their processing in the future.
</p>
</li>
<li>
<h4>e) Profiling</h4>
<h2 class="h4">
e)    Profiling
</h4>
<p>
Profiling means any form of automated processing of personal data consisting of the use of personal data to evaluate certain personal aspects relating to a natural person, in particular to analyse or predict aspects concerning that natural person's performance at work, economic situation, health, personal preferences, interests, reliability, behaviour, location or movements.
</p>
</li>
<li>
<h4>f) Pseudonymisation</h4>
<h2 class="h4">
f)     Pseudonymisation
</h4>
<p>
Pseudonymisation is the processing of personal data in such a manner that the personal data can no longer be attributed to a specific data subject without the use of additional information, provided that such additional information is kept separately and is subject to technical and organisational measures to ensure that the personal data are not attributed to an identified or identifiable natural person.
</p>
</li>
<li>
<h4>g) Controller or controller responsible for the processing</h4>
<h2 class="h4">
g)    Controller or controller responsible for the processing
</h4>
<p>
Controller or controller responsible for the processing is the natural or legal person, public authority, agency or other body which, alone or jointly with others, determines the purposes and means of the processing of personal data; where the purposes and means of such processing are determined by Union or Member State law, the controller or the specific criteria for its nomination may be provided for by Union or Member State law.
</p>
</li>
<li>
<h4>h) Processor</h4>
<h2 class="h4">
h)    Processor
</h4>
<p>
Processor is a natural or legal person, public authority, agency or other body which processes personal data on behalf of the controller.
</p>
</li>
<li>
<h4>i) Recipient</h4>
<h2 class="h4">
i)      Recipient
</h4>
<p>
Recipient is a natural or legal person, public authority, agency or another body, to which the personal data are disclosed, whether a third party or not. However, public authorities which may receive personal data in the framework of a particular inquiry in accordance with Union or Member State law shall not be regarded as recipients; the processing of those data by those public authorities shall be in compliance with the applicable data protection rules according to the purposes of the processing.
</p>
</li>
<li>
<h4>j) Third party</h4>
<h2 class="h4">
j)      Third party
</h4>
<p>
Third party is a natural or legal person, public authority, agency or body other than the data subject, controller, processor and persons who, under the direct authority of the controller or processor, are authorised to process personal data.
</p>
</li>
<li>
<h4>
k) Consent
<h2 class="h4">
k)    Consent
</h4>
<p>
Consent of the data subject is any freely given, specific, informed and unambiguous indication of the data subject's wishes by which he or she, by a statement or by a clear affirmative action, signifies agreement to the processing of personal data relating to him or her.
</p>
</li>
</ul>
<h4>
<h2 class="h4">
2. Name and Address of the controller
</h4>
<p>
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:
</p>
<p>
Pflänz.li
</p>
<p>
Marbachweg 22
</p>
<p>
8041 Zürich
</p>
<p>
Switzerland
</p>
<p>
Email: contact@pflaenz.li
</p>
<p>
Website: pflänz.li
</p>
<h4>
<p>Pflänz.li</p>
<p>Email: contact@pflaenz.li</p>
<p>Website: pflaenz.li</p>
<h2 class="h4">
3. Cookies
</h4>
<p>
The Internet pages of the Pflänzl.i use cookies. Cookies are text files that are stored in a computer system via an Internet browser.
The Internet pages of Pflänz.li use cookies. Cookies are text files that are stored in a computer system via an Internet browser.
</p>
<p>
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.
</p>
<p>
Through the use of cookies, the Pflänzl.i can provide the users of this website with more user-friendly services that would not be possible without the cookie setting.
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.
</p>
<p>
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.
@ -128,16 +135,16 @@
<p>
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.
</p>
<h4>
<h2 class="h4">
4. Collection of general data and information
</h4>
<p>
The website of the Pflänzl.i 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.
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.
</p>
<p>
When using these general data and information, the Pflänzl.i 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, the Pflänzl.i 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.
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.
</p>
<h4>
<h2 class="h4">
5. Registration on our website
</h4>
<p>
@ -152,7 +159,7 @@
<p>
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 controllers employees are available to the data subject in this respect as contact persons.
</p>
<h4>
<h2 class="h4">
6. Routine erasure and blocking of personal data
</h4>
<p>
@ -161,12 +168,12 @@
<p>
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.
</p>
<h4>
<h2 class="h4">
7. Rights of the data subject
</h4>
<ul style="list-style: none;">
<li>
<h4>
<h2 class="h4">
a) Right of confirmation
</h4>
<p>
@ -174,7 +181,7 @@
</p>
</li>
<li>
<h4>
<h2 class="h4">
b) Right of access
</h4>
<p>
@ -214,7 +221,7 @@
</p>
</li>
<li>
<h4>
<h2 class="h4">
c) Right to rectification
</h4>
<p>
@ -225,7 +232,7 @@
</p>
</li>
<li>
<h4>
<h2 class="h4">
d) Right to erasure (Right to be forgotten)
</h4>
<p>
@ -252,14 +259,14 @@
</li>
</ul>
<p>
If one of the aforementioned reasons applies, and a data subject wishes to request the erasure of personal data stored by the Pflänzl.i, he or she may, at any time, contact any employee of the controller. An employee of Pflänzl.i shall promptly ensure that the erasure request is complied with immediately.
If one of the aforementioned reasons applies, and a data subject wishes to request the erasure of personal data stored by Pflänz.li, he or she may, at any time, contact any employee of the controller. An employee of Pflänz.li shall promptly ensure that the erasure request is complied with immediately.
</p>
<p>
Where the controller has made personal data public and is obliged pursuant to Article 17(1) to erase the personal data, the controller, taking account of available technology and the cost of implementation, shall take reasonable steps, including technical measures, to inform other controllers processing the personal data that the data subject has requested erasure by such controllers of any links to, or copy or replication of, those personal data, as far as processing is not required. An employees of the Pflänzl.i will arrange the necessary measures in individual cases.
Where the controller has made personal data public and is obliged pursuant to Article 17(1) to erase the personal data, the controller, taking account of available technology and the cost of implementation, shall take reasonable steps, including technical measures, to inform other controllers processing the personal data that the data subject has requested erasure by such controllers of any links to, or copy or replication of, those personal data, as far as processing is not required. An employees of Pflänz.li will arrange the necessary measures in individual cases.
</p>
</li>
<li>
<h4>
<h2 class="h4">
e) Right of restriction of processing
</h4>
<p>
@ -280,11 +287,11 @@
</li>
</ul>
<p>
If one of the aforementioned conditions is met, and a data subject wishes to request the restriction of the processing of personal data stored by the Pflänzl.i, he or she may at any time contact any employee of the controller. The employee of the Pflänzl.i will arrange the restriction of the processing.
If one of the aforementioned conditions is met, and a data subject wishes to request the restriction of the processing of personal data stored by Pflänz.li, he or she may at any time contact any employee of the controller. The employee of Pflänz.li will arrange the restriction of the processing.
</p>
</li>
<li>
<h4>
<h2 class="h4">
f) Right to data portability
</h4>
<p>
@ -294,123 +301,90 @@
Furthermore, in exercising his or her right to data portability pursuant to Article 20(1) of the GDPR, the data subject shall have the right to have personal data transmitted directly from one controller to another, where technically feasible and when doing so does not adversely affect the rights and freedoms of others.
</p>
<p>
In order to assert the right to data portability, the data subject may at any time contact any employee of the Pflänzl.i.
In order to assert the right to data portability, the data subject may at any time contact any employee of Pflänz.li.
</p>
</li>
<li>
<h4>
<h2 class="h4">
g) Right to object
</h4>
<p>
Each data subject shall have the right granted by the European legislator to object, on grounds relating to his or her particular situation, at any time, to processing of personal data concerning him or her, which is based on point (e) or (f) of Article 6(1) of the GDPR. This also applies to profiling based on these provisions.
</p>
<p>
The Pflänzl.i shall no longer process the personal data in the event of the objection, unless we can demonstrate compelling legitimate grounds for the processing which override the interests, rights and freedoms of the data subject, or for the establishment, exercise or defence of legal claims.
Pflänz.li shall no longer process the personal data in the event of the objection, unless we can demonstrate compelling legitimate grounds for the processing which override the interests, rights and freedoms of the data subject, or for the establishment, exercise or defence of legal claims.
</p>
<p>
If the Pflänzl.i processes personal data for direct marketing purposes, the data subject shall have the right to object at any time to processing of personal data concerning him or her for such marketing. This applies to profiling to the extent that it is related to such direct marketing. If the data subject objects to the Pflänzl.i to the processing for direct marketing purposes, the Pflänzl.i will no longer process the personal data for these purposes.
If Pflänz.li processes personal data for direct marketing purposes, the data subject shall have the right to object at any time to processing of personal data concerning him or her for such marketing. This applies to profiling to the extent that it is related to such direct marketing. If the data subject objects to Pflänz.li to the processing for direct marketing purposes, Pflänz.li will no longer process the personal data for these purposes.
</p>
<p>
In addition, the data subject has the right, on grounds relating to his or her particular situation, to object to processing of personal data concerning him or her by the Pflänzl.i for scientific or historical research purposes, or for statistical purposes pursuant to Article 89(1) of the GDPR, unless the processing is necessary for the performance of a task carried out for reasons of public interest.
In addition, the data subject has the right, on grounds relating to his or her particular situation, to object to processing of personal data concerning him or her by Pflänz.li for scientific or historical research purposes, or for statistical purposes pursuant to Article 89(1) of the GDPR, unless the processing is necessary for the performance of a task carried out for reasons of public interest.
</p>
<p>
In order to exercise the right to object, the data subject may contact any employee of the Pflänzl.i. In addition, the data subject is free in the context of the use of information society services, and notwithstanding Directive 2002/58/EC, to use his or her right to object by automated means using technical specifications.
In order to exercise the right to object, the data subject may contact any employee of Pflänz.li. In addition, the data subject is free in the context of the use of information society services, and notwithstanding Directive 2002/58/EC, to use his or her right to object by automated means using technical specifications.
</p>
</li>
<li>
<h4>
<h2 class="h4">
h) Automated individual decision-making, including profiling
</h4>
<p>
Each data subject shall have the right granted by the European legislator not to be subject to a decision based solely on automated processing, including profiling, which produces legal effects concerning him or her, or similarly significantly affects him or her, as long as the decision (1) is not is necessary for entering into, or the performance of, a contract between the data subject and a data controller, or (2) is not authorised by Union or Member State law to which the controller is subject and which also lays down suitable measures to safeguard the data subject's rights and freedoms and legitimate interests, or (3) is not based on the data subject's explicit consent.
</p>
<p>
If the decision (1) is necessary for entering into, or the performance of, a contract between the data subject and a data controller, or (2) it is based on the data subject's explicit consent, the Pflänzl.i shall implement suitable measures to safeguard the data subject's rights and freedoms and legitimate interests, at least the right to obtain human intervention on the part of the controller, to express his or her point of view and contest the decision.
If the decision (1) is necessary for entering into, or the performance of, a contract between the data subject and a data controller, or (2) it is based on the data subject's explicit consent, Pflänz.li shall implement suitable measures to safeguard the data subject's rights and freedoms and legitimate interests, at least the right to obtain human intervention on the part of the controller, to express his or her point of view and contest the decision.
</p>
<p>
If the data subject wishes to exercise the rights concerning automated individual decision-making, he or she may, at any time, contact any employee of the Pflänzl.i.
If the data subject wishes to exercise the rights concerning automated individual decision-making, he or she may, at any time, contact any employee of Pflänz.li.
</p>
</li>
<li>
<h4>
<h2 class="h4">
i) Right to withdraw data protection consent
</h4>
<p>
Each data subject shall have the right granted by the European legislator to withdraw his or her consent to processing of his or her personal data at any time.
</p>
<p>
If the data subject wishes to exercise the right to withdraw the consent, he or she may, at any time, contact any employee of the Pflänzl.i.
If the data subject wishes to exercise the right to withdraw the consent, he or she may, at any time, contact any employee of Pflänz.li.
</p>
</li>
</ul>
<h4>
8. Data protection provisions about the application and use of Matomo
</h4>
<p>
On this website, the controller has integrated the Matomo component. Matomo is an open-source software tool for web analysis. Web analysis is the collection, gathering and evaluation of data on the behavior of visitors from Internet sites. A web analysis tool collects, inter alia, data on the website from which a data subject came to a website (so-called referrer), which pages of the website were accessed or how often and for which period of time a sub-page was viewed. A web analysis is mainly used for the optimization of a website and the cost-benefit analysis of Internet advertising.
</p>
<p>
The software is operated on the server of the controller, the data protection-sensitive log files are stored exclusively on this server.
</p>
<p>
The purpose of the Matomo component is the analysis of the visitor flows on our website. The controller uses the obtained data and information, inter alia, to evaluate the use of this website in order to compile online reports, which show the activities on our Internet pages.
</p>
<p>
Matomo sets a cookie on the information technology system of the data subject. The definition of cookies is explained above. With the setting of the cookie, an analysis of the use of our website is enabled. With each call-up to one of the individual pages of this website, the Internet browser on the information technology system of the data subject is automatically through the Matomo component prompted to submit data for the purpose of online analysis to our server. During the course of this technical procedure, we obtain knowledge about personal information, such as the IP address of the data subject, which serves to understand the origin of visitors and clicks.
</p>
<p>
The cookie is used to store personal information, such as the access time, the location from which access was made, and the frequency of visits to our website. With each visit of our Internet pages, these personal data, including the IP address of the Internet access used by the data subject, are transferred to our server. These personal data will be stored by us. We do not forward this personal data to third parties.
</p>
<p>
The data subject may, as stated above, prevent the setting of cookies through our website at any time by means of a corresponding adjustment of the web browser used and thus permanently deny the setting of cookies. Such an adjustment to the used Internet browser would also prevent Matomo from setting a cookie on the information technology system of the data subject. In addition, cookies already in use by Matomo may be deleted at any time via a web browser or other software programs.
</p>
<p>
In addition, the data subject has the possibility of objecting to a collection of data relating to a use of this Internet site that are generated by Matomo as well as the processing of these data by Matomo and the chance to preclude any such. For this, the data subject must set a "Do Not Track" option in the browser.
</p>
<p>
With each setting of the opt-out cookie, however, there is the possibility that the websites of the controller are no longer fully usable for the data subject.
</p>
<p>
Further information and the applicable data protection provisions of Matomo may be retrieved under https://matomo.org/privacy/.
</p>
<h4>
9. Legal basis for the processing
<h2 class="h4">
8. Legal basis for the processing
</h4>
<p>
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).
</p>
<h4>
10. The legitimate interests pursued by the controller or by a third party
<h2 class="h4">
9. The legitimate interests pursued by the controller or by a third party
</h4>
<p>
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.
</p>
<h4>
11. Period for which the personal data will be stored
<h2 class="h4">
10. Period for which the personal data will be stored
</h4>
<p>
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.
</p>
<h4>
12. 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
<h2 class="h4">
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
</h4>
<p>
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.
</p>
<h4>
13. Existence of automated decision-making
<h2 class="h4">
12. Existence of automated decision-making
</h4>
<p>
As a responsible company, we do not use automatic decision-making or profiling.
</p>
<h1>
Source and acknowledgements
</h1>
<p>
Developed by the specialists for <a href="https://willing-able.com/">LegalTech</a> at Willing & Able that also developed the system for <a href="https://abletotrain.com/">gdpr staff training</a>. The legal texts contained in our privacy policy generator have been provided and published by <a href="https://dg-datenschutz.de/">Prof. Dr. h.c. Heiko Jonny Maniero</a> from the German Association for Data Protection and <a href="https://www.wbs-law.de/" rel="nofollow">Christian Solmecke</a> from WBS law.
Developed by the specialists for <a href="https://willing-able.com/">LegalTech</a> at Willing & Able that also developed the system for <a href="https://abletotrain.com/">data protection officer certification online</a>. The legal texts contained in our privacy policy generator have been provided and published by <a href="https://dg-datenschutz.de/">Prof. Dr. h.c. Heiko Jonny Maniero</a> from the German Association for Data Protection and <a href="https://www.wbs.legal/" rel="nofollow">Christian Solmecke</a> from WBS law.
</p>
{% endblock %}

View file

@ -0,0 +1,44 @@
{% extends 'base.html' %}
{% load crispy_forms_tags %}
{% block title %}Whishlist{% endblock %}
{% block content %}
<div class="mb-3">
<h1>{{ title }} Wishlist</h1>
</div>
<div class="mb-5">
{% if wishes %}
<ul class="list-group">
{% for wish in wishes %}
<li class="list-group-item d-flex justify-content-between align-items-center">
{{ wish.title }}
{% if own %}
<span>
<form method="post" action="{% url 'delete_wish' wish.id %}">
{% csrf_token %}
<button type="submit" class="btn btn-danger">
<i class="fas fa-trash-alt" aria-hidden="true" title="Delete"></i>
</button>
</form>
</span>
{% endif %}
</li>
{% endfor %}
</ul>
{% else %}
<div class="alert alert-warning" role="alert">There are currently no wishes!</div>
{% endif %}
</div>
{% if form %}
<hr class="mb-5"/>
<div class="mb-3">
<h3>
<i class="fas fa-star"></i> New wish
</h3>
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ form|crispy }}
<button type="submit" class="btn btn-pfl">Add</button>
</form>
</div>
{% endif %}
{% endblock %}

View file

@ -1,45 +0,0 @@
{% extends 'base.html.twig' %}
{% block title %}Whishlist{% endblock %}
{% block content %}
{% for message in app.flashes('error') %}
<div class="alert alert-error" role="alert">
{{ message }}
</div>
{% endfor %}
{% for message in app.flashes('success') %}
<div class="alert alert-success" role="alert">
{{ message }}
</div>
{% endfor %}
<div class="mb-3">
<h1>Your Wishlist</h1>
</div>
<div class="mb-3">
{% if wishes == [] %}
<div class="alert alert-warning" role="alert">
There are currently no wishes!
</div>
{% else %}
<ul class="list-group">
{% for wish in wishes %}
<li class="list-group-item d-flex justify-content-between align-items-center"> {{ wish.title }}
<span>
<a href="{{ path('delete_wish', {'urlId': wish.urlid}) }}" class="btn btn-danger" aria-label="Delete"><i class="fas fa-trash-alt" aria-hidden="true" title="Delete"></i></a>
</span>
</li>
{% endfor %}
</ul>
{% endif %}
</div>
<hr>
<div class="mb-3">
<h3><i class="fas fa-star"></i> New wish</h3>
{{ form(wish_form) }}
</div>
{% endblock %}

View file

@ -15,10 +15,12 @@ urlpatterns = [
path("offer/<int:offer_id>/edit/", views.offer_edit, name="offer_edit"),
path("offer/<int:offer_id>/trade/", views.offer_trade, name="offer_trade"),
path("accounts/<int:user_id>", views.user_detail, name="user_detail"),
path("accounts/<int:user_id>/wishlist/", views.wishlist, name="wishlist"),
path('accounts/login/', auth_views.LoginView.as_view(template_name='registration/login.html')),
path('accounts/profile/', auth_views.LoginView.as_view(template_name='user/detail.html'), name='user_profile'),
path('accounts/register/', views.register_user, name='register_user'),
path('accounts/', include('django.contrib.auth.urls')),
path("faq/", TemplateView.as_view(template_name='app/faq.html'), name="faq"),
path("imprint/", TemplateView.as_view(template_name='app/imprint.html'), name="imprint"),
path("wish/delete/<str:wish_id>", views.delete_wish, name='delete_wish'),
]

View file

@ -1,11 +1,13 @@
from django.shortcuts import render, get_object_or_404, redirect
from django.shortcuts import render, get_object_or_404, redirect, reverse
from django.utils import timezone
from django.contrib import messages
from django.contrib.auth import login
from django.contrib.auth.decorators import login_required
from django.views.decorators.csrf import csrf_protect
from django.views.decorators.http import require_POST
from django.http import HttpResponseForbidden
from .forms import CreateOfferForm, RegistrationForm, FilterForm
from .forms import CreateOfferForm, RegistrationForm, FilterForm, WishForm
from .models import PflaenzliUser, Offer, Wish
from .mail import send_offer_email
@ -88,6 +90,43 @@ def offer_edit(request, offer_id):
return render(request, "basic_form.html", {"form": form, "button_label": "Update", "title": "Edit Offer"})
@login_required
def wishlist(request, user_id):
wishes = Wish.objects.filter(user=user_id)
if user_id == request.user.id:
title = "Your"
if request.method == "POST":
form = WishForm(request.POST)
if form.is_valid():
wish = form.save(commit=False)
wish.user = request.user
wish.save()
messages.success(request, "Wish added successfully!")
form = WishForm()
else:
form = None
user = get_object_or_404(PflaenzliUser, id=user_id)
title = f"{user.username}'s"
return render(request, "user/wish.html", {"title": title, "form": form, "wishes": wishes, "own": user_id == request.user.id})
@csrf_protect
@require_POST
@login_required
def delete_wish(request, wish_id):
wish = get_object_or_404(Wish, id=wish_id)
if wish.user != request.user:
messages.error(request, "You don't have permission to delete this wish!")
return redirect("wishlist", request.user.id)
wish.delete()
return redirect("wishlist", request.user.id)
@login_required
def offer_trade(request, offer_id):
offer = get_object_or_404(Offer, id=offer_id)