202 lines
5.9 KiB
Markdown
202 lines
5.9 KiB
Markdown
# Notfellchen
|
|
|
|
[notfellchen.org](https://notfellchen.org) ist eine Sammelstelle für Tier-Vermittlungen. Die Idee entstand, da in der
|
|
deutschsprachigen Rattencommunity ein wilder Mix aus Websites, Foren und Facebookgruppen besteht die Ratten vermitteln.
|
|
Diese Website soll die bestehende Communitys NICHT ersetzten, jedoch ermöglichen, dass Menschen die Ratten aufnehmen
|
|
wollen Informationen einfach finden und nicht bereits in jeder Gruppe sein müssen.
|
|
|
|
Wir nehmen Angebote auf die
|
|
|
|
* von Rattenhilfen
|
|
* Tierheimen
|
|
* oder Privatpersonen die ihre Haltung aufgeben wollen
|
|
kommen. Letzteren empfehlen wir den Weg über eine Rattenhilfe, denn so ist die Vertrauensbasis größer.
|
|
|
|
Rattenhilfen mit denen gute Erfahrungen bestehen werden von uns als "geprüft" markiert.
|
|
|
|
Wir legen großen Wert darauf, dass hier kommerzielle Angebote keinen Platz haben, genauso nicht erlaubt ist die
|
|
Vermittlung von Ratten aus geplanten Vermehrungen oder aus Zooladenkäufen die schwanger wurden. Wir wollen Zooladenkäufe
|
|
in keinem Fall unterstützen und empfehlen hier den Weg über eine Rattenhilfe.
|
|
|
|
Auch seriöse Züchter\*innen können hier nicht vermitteln, das Angebot ist für Ratten, die sonst kein artgerechtes
|
|
Zuhause finden können.
|
|
|
|
# Commands
|
|
|
|
Clean up empty locations by re-querying them
|
|
|
|
```shell
|
|
nf clean_locations
|
|
```
|
|
|
|
Populate the database with test data **DO NOT USE IN PRODUCTION**
|
|
```shell
|
|
nf populate_db
|
|
```
|
|
|
|
Query location data to debug
|
|
```shell
|
|
nf query_location <query>
|
|
```
|
|
|
|
# Texts
|
|
|
|
There is a system for customizing texts in Notfellchen. Not every change of a tet should mean an update of the software. But this should also not become a CMS.
|
|
Therefore, a solution is used where a number of predefined texts per site are supported. These markdown texts will then be included in the site, if defined.
|
|
|
|
| Textcode | Location |
|
|
|-------------------------|-----------------------|
|
|
| `how_to` | Index |
|
|
| `introduction` | Index |
|
|
| `privacy_statement` | About |
|
|
| `terms_of_service` | About |
|
|
| `imprint` | About |
|
|
| `about_us` | About |
|
|
| `external_site_warning` | External Site Warning |
|
|
| Any rule | About |
|
|
|
|
# Developer Notes
|
|
|
|
## Getting started
|
|
|
|
### Clone the project
|
|
|
|
```
|
|
git clone https://codeberg.org/moanos/notfellchen.git
|
|
```
|
|
|
|
### Install dependencies
|
|
```
|
|
pip install -e '.[all]'
|
|
```
|
|
|
|
### Create the database
|
|
|
|
```
|
|
nf migrate
|
|
```
|
|
|
|
Because of a wired bug the initial migrations must run two times as the first time the permissions
|
|
for `create_active_adoption_notice` are created but can not yet be accessed and on the second time this permission will
|
|
be added to groups.
|
|
|
|
### Start the server
|
|
|
|
```
|
|
nf runserver
|
|
```
|
|
|
|
### Build the docs
|
|
|
|
```
|
|
sphinx-autobuild ./docs ./docs/_build/html
|
|
```
|
|
|
|
|
|
## Styling
|
|
|
|
Bulma is used for styling, including related SCSS. All styles should eventually be migrated to SCSS.
|
|
|
|
Use `npm run build-bulma` to generate the css file from SCSS.
|
|
You can use `npm start` during development so that the file is re-generated upon change.
|
|
|
|
|
|
## Docker
|
|
|
|
Build latest image
|
|
|
|
```
|
|
docker build . -t moanos/notfellchen:latest
|
|
```
|
|
|
|
```
|
|
docker push moanos/notfellchen:latest
|
|
```
|
|
|
|
```
|
|
docker run -p8000:7345 moanos/notfellchen:latest
|
|
```
|
|
|
|
|
|
## Testing
|
|
|
|
Tests can be run with
|
|
|
|
```zsh
|
|
nf test src
|
|
```
|
|
|
|
If you want to report on code coverage run
|
|
|
|
```zsh
|
|
coverage run --source='.' src/manage.py test src
|
|
```
|
|
|
|
and
|
|
|
|
```
|
|
coverage report
|
|
```
|
|
|
|
## Geocoding
|
|
|
|
Geocoding services (search map data by name, address or postcode) are provided via the
|
|
either [Nominatim](https://nominatim.org/) or [photon](https://github.com/komoot/photon) API, powered by [OpenStreetMap](https://openstreetmap.org) data.
|
|
Notfellchen uses a selfhosted Photon instance to avoid overburdening the publicly hosted instance.
|
|
|
|
## Maps
|
|
|
|
The map on the main homepage is powered by [Versatiles](https://versatiles.org), and rendered using [Maplibre](https://maplibre.org/).
|
|
The Versatiles server is self-hosted and does not send data to third parties.
|
|
|
|
## Translation
|
|
|
|
```zsh
|
|
nf makemessages -a
|
|
```
|
|
|
|
Use a program like `gtranslator` or `poedit` to start translations
|
|
|
|
## Permissions
|
|
|
|
| Action | Allowed for |
|
|
|-------------------------------------|-------------------------------------|
|
|
| Create adoption notice | logged-in |
|
|
| Edit adoption notice | User that created, Moderator, Admin |
|
|
| Edit animal | User that created, Moderator, Admin |
|
|
| Add animal/photo to adoption notice | User that created, Moderator, Admin |
|
|
|
|
# Celery and KeyDB
|
|
|
|
Start KeyDB docker container
|
|
```zsh
|
|
docker run -d --name keydb -p 6379:6379 eqalpha/keydb
|
|
```
|
|
|
|
Start worker
|
|
```zsh
|
|
celery -A notfellchen.celery worker
|
|
```
|
|
|
|
Start beat
|
|
```zsh
|
|
celery -A notfellchen.celery beat
|
|
```
|
|
|
|
# Contributing
|
|
|
|
This project is currently mainly developed by me, moanos. I'd like that to change and will be very happy for contributions
|
|
and shared responsibilities. Some ideas where you can look for contributing first
|
|
|
|
* UI improvements: Since a major redesign I'm much happier but the UI could use many, many little tweaks
|
|
* Docker: If you know how to build a docker container that is a) smaller or b) utilizes staged builds this would be amazing. Any improvement welcome
|
|
* Testing: Writing tests is always welcome, and it's likely you discover a few bugs
|
|
|
|
I'm also very happy for all other contributions. Before you do large refactoring efforts or features, best write a short
|
|
issue for it before you spend a lot of work.
|
|
|
|
Send PRs either to [codeberg](https://codeberg.org/moanos/notfellchen) (preferred) or [GitHub](https://github.com/moan0s/notfellchen).
|
|
CI (currently only for documentation) runs via [git.hyteck.de](https://git.hyteck.de), you can also ask moanos for an account there.
|
|
|
|
Also welcome are new issues with suggestions or bugs and additions to the documentation.
|