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.
 |