aboutsummaryrefslogtreecommitdiffstats
path: root/templates
diff options
context:
space:
mode:
authorJan Tuomi <jan@jantuomi.fi>2026-04-19 09:56:07 +0300
committerJan Tuomi <jan@jantuomi.fi>2026-04-19 09:56:07 +0300
commit5b69dbd41103de917837b06a60944319f4b66cb9 (patch)
treefdbfd3f4d54cdab0560cd1b4580123cfc57ffc49 /templates
parentedca58096cb86ece1fddcfff47ec006ce742f9a8 (diff)
Add policy page, format code
Diffstat (limited to 'templates')
-rw-r--r--templates/index.html.j241
-rw-r--r--templates/policy_sample.html.j2137
2 files changed, 162 insertions, 16 deletions
diff --git a/templates/index.html.j2 b/templates/index.html.j2
index ea2e225..9daee75 100644
--- a/templates/index.html.j2
+++ b/templates/index.html.j2
@@ -1,32 +1,41 @@
-{% extends "base.html.j2" %}
-
-{% block content %}
+{% extends "base.html.j2" %} {% block content %}
<h2>Create new diddle</h2>
<form class="poll-form" action="/poll/create" method="post">
- {% include "poll_info_table.html.j2" %}
+ {% include "poll_info_table.html.j2" %}
- <p>You can add time options as well as modify all settings after submitting.</p>
- <input class="blue" type="submit" value="Create">
+ <p>
+ You can add time options as well as modify all settings after
+ submitting.
+ </p>
+ <input class="blue" type="submit" value="Create" />
</form>
{% if created_polls | length != 0 %}
-<br>
+<br />
<h2>My diddles</h2>
<ul>
- {% for poll in created_polls %}
- <li><a href="/manage/{{ poll.manage_code }}">{{ poll.title }}</a></li>
- {% endfor %}
+ {% for poll in created_polls %}
+ <li><a href="/manage/{{ poll.manage_code }}">{{ poll.title }}</a></li>
+ {% endfor %}
</ul>
{% endif %}
-<br>
-<br>
+<br />
+<br />
<h2>About diddle</h2>
-<p><i>diddle</i> is a minimalist, mobile friendly, fast and self-hosted scheduling tool,
- licensed under <a href="https://github.com/jantuomi/diddle/blob/main/LICENSE">Apache 2.0.</a>
+<p>
+ <i>diddle</i> is a minimalist, mobile friendly, fast and self-hosted scheduling tool, licensed under
+ <a href="https://github.com/jantuomi/diddle/blob/main/LICENSE">Apache 2.0.</a><br />
+ Find <i>diddle</i> on <a href="https://github.com/jantuomi/diddle">GitHub</a>.<br />
+ This site uses the <a href="https://fonts.google.com/specimen/Inclusive+Sans">Inclusive Sans</a> typeface.
</p>
<p>
- Find <i>diddle</i> on <a href="https://github.com/jantuomi/diddle">GitHub</a>. © {{ now.year }} Jan Tuomi. All rights reserved.<br>
- This site uses the <a href="https://fonts.google.com/specimen/Inclusive+Sans">Inclusive Sans</a> typeface.
+ © {{ now.year }} Jan Tuomi. All rights reserved.
+ {% if has_policy %}
+ <a href="/policy">Privacy and terms</a>.
+ {% endif %}
+ {% if app_version %}
+ <br />Version: <span style="font-family: monospace">{{ app_version }}</span>.
+ {% endif %}
</p>
{% endblock %}
diff --git a/templates/policy_sample.html.j2 b/templates/policy_sample.html.j2
new file mode 100644
index 0000000..92b88a5
--- /dev/null
+++ b/templates/policy_sample.html.j2
@@ -0,0 +1,137 @@
+{% extends "base.html.j2" %}
+
+{% block head_meta %}
+<title>Privacy and terms – {{ instance_domain }} 👉👈</title>
+<meta
+ name="description"
+ content="Privacy policy and terms of use for {{ instance_domain }}"
+/>
+{% endblock %}
+
+{% block content %}
+
+<h2 style="color: red">This is a sample privacy policy and terms of use document. You must replace this with your own when deploying.</h2>
+
+<p>Last updated: 19 April 2026</p>
+
+<hr />
+
+<h2>Terms of use</h2>
+
+<h3>Acceptance of terms</h3>
+<p>
+ By using <i>diddle</i> on <a href="/">{{ instance_domain }}</a>, you agree to these terms. If you do not agree, please do not use the service.
+</p>
+
+<h3>Description of service</h3>
+<p>
+ <i>diddle</i> is a self-hosted scheduling tool that allows users to create polls and vote on time options. The service is provided as-is and free-of-charge.
+</p>
+
+<h3>User responsibilities</h3>
+<p>You agree not to:</p>
+<ul>
+ <li>Use the service for any unlawful purpose.</li>
+ <li>Submit content that is offensive, harmful, or infringes on the rights of others.</li>
+ <li>Attempt to disrupt or compromise the service or its infrastructure.</li>
+</ul>
+
+<h3>Disclaimer of warranties</h3>
+<p>
+ The service is provided "as is" and "as available" without warranties of any
+ kind, whether express or implied. We do not guarantee that the service will
+ be uninterrupted, error-free, or that any data will be retained or preserved.
+</p>
+
+<h3>Limitation of liability</h3>
+<p>
+ To the fullest extent permitted by law, the operator of this diddle instance
+ shall not be liable for any indirect, incidental, or consequential damages
+ arising from your use of the service, including but not limited to loss of data.
+</p>
+
+<h3>Changes to these terms</h3>
+<p>
+ We may update these terms at any time. Continued use of the service after
+ changes constitutes acceptance of the updated terms.
+</p>
+
+<hr />
+
+<h2>Privacy policy</h2>
+
+<h3>What data do we collect?</h3>
+<p>When you use <a href="/">{{ instance_domain }}</a>, we collect the data you provide directly:</p>
+<ul>
+ <li>Poll: title, description, author name, author email address, poll settings.</li>
+ <li>Votes: voter name and selected time choices.</li>
+</ul>
+<p>
+ Additionally, connection information such as your IP address may be stored in server logs for administrative purposes.
+</p>
+<p>
+ We do not collect any other kinds of data.
+</p>
+
+<h3>How do we use your data?</h3>
+<p>
+ Your data is used solely to provide the scheduling functionality of diddle.
+ Your email address maybe used to send you notifications about polls you manage.
+ We do not use your data for any other purpose.
+</p>
+
+<h3>Cookies</h3>
+<p>
+ Diddle uses only strictly necessary functional cookies to remember which
+ polls you have created or voted in, and your display mode preference. These
+ cookies do not track you across websites and are not used for analytics,
+ advertising, or any other purpose.
+</p>
+
+<h3>Data storage and transfers</h3>
+<p>
+ All data is stored within the European Union.
+ Your data is not transferred outside the EU and is not shared with any third parties.
+ Your data is stored encrypted at rest and in flight.
+</p>
+
+<h3>Data retention</h3>
+<p>
+ No specific data retention period is guaranteed.
+ No data durability or backup guarantees are provided.
+ Data may be lost due to technical failures.
+</p>
+
+<h3>Data deletion</h3>
+<p>
+ By using the <i>Delete poll</i> functionality, poll data and any related data is deleted from the database.
+</p>
+<p>
+ By using the <i>Delete voter</i> functionality, voter name and selected time choices are deleted from the database.
+</p>
+
+<h3>Your rights</h3>
+<p>
+ Under the General Data Protection Regulation (GDPR), you have the right to:
+</p>
+<ul>
+ <li>Access the personal data we hold about you.</li>
+ <li>Request correction of inaccurate data.</li>
+ <li>Request erasure of your data.</li>
+ <li>Restrict or object to processing of your data.</li>
+ <li>Request portability of your data.</li>
+</ul>
+<p>
+ To exercise any of these rights, please contact us using the details below.
+ Data is removed from the database upon request. If we are unable to verify
+ your identity, we may not be able to act on your request.
+</p>
+
+<hr />
+
+<h3>Contact</h3>
+<p>
+ Email: {{ contact_email }}
+</p>
+<br />
+{% endblock %}