{"repo":"revsys/django-tos","free":true,"listed":false,"github":"https://github.com/revsys/django-tos","clone":"git clone https://github.com/revsys/django-tos.git","description":"A small app to ensure your users re-agree to Terms of Service changes","language":"Python","stars":161,"topics":["django"],"license":"BSD-3-Clause","category":"api-integrations-sdks","readme_excerpt":"django-tos This project gives the admin the ability to reset terms of agreement with the end users. It tracks when TOS are changed and when users agree to the new TOS. Summary - Keeps track of when TOS is changed - Users need to be informed and agree/re-agree when they login (custom login is provided) - Just two models (TOS and user agreement) Requirements Supports Django 4.2, 5.0, 5.1, 5.2, 6.0, and 6.1 on Python 3.10 through 3.15 (including free-threaded 3.14 and 3.15). Python 3.15 is still in beta, so it is tested but not yet promised. django-tos also relies on AUTH USER MODEL (the UserAgreement foreign key) and LOGIN REDIRECT URL (the post-agreement redirect fallback). Terms Of Service Installation 1. pip install django-tos 2. Add tos to your INSTALLED APPS setting. 3. Sync your database with python manage.py migrate Creating a Terms of Service django-tos needs an active TermsOfService to check users against. Create one in the Django admin (or via a data migration / fixture) and mark it active. Saving a new active TermsOfService automatically deactivates the previous one. If no active terms exist, django-tos warns when DEBUG is True and raises tos.models.NoActiveTermsOfService when DEBUG is False . A fresh database in development therefore will not crash, while a misconfigured production deploy fails loudly rather than silently skipping the check. Configuration Options There are two ways to configure django-tos - either enable the TOS check when users sign in, or use midd","default_branch":null,"files":null,"tree":[],"storefront":"/r/revsys","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/revsys/django-tos/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}