Compare commits

...

7 Commits
0.2.0 ... 0.2.1

Author SHA1 Message Date
vabene1111
51fc05dda2 fixed and added german translations 2020-01-13 12:14:05 +01:00
vabene1111
3d695e3d0f added support for ingredients with 0 amout 2020-01-13 11:51:22 +01:00
vabene1111
22b8a4ac18 added help texts to storage form 2020-01-13 11:44:27 +01:00
vabene1111
2e26f9c84b Merge branch 'develop' of https://github.com/vabene1111/recipes into develop
merge
2020-01-13 11:31:03 +01:00
vabene1111
78105e28c8 improved ingredient table 2020-01-13 11:30:59 +01:00
vabene1111
202b92b156 readme 2020-01-01 22:15:14 +01:00
vabene1111
f11f6b7ed1 increased session lifetime 2020-01-01 21:57:21 +01:00
10 changed files with 200 additions and 242 deletions

View File

@@ -5,12 +5,12 @@ Recipes is a django application to manage, tag and search recipes using either b
### Features
- :package: Sync files with Dropbox and Nextcloud (more can easily be added)
- :mag: Powerful search with djangos [TrigramSimilarity](https://docs.djangoproject.com/en/3.0/ref/contrib/postgres/search/#trigram-similarity)
- :label: Create and search for tags, assign them in batch to all files matching certain filters
- :page_facing_up: Create recipes locally within a nice, standardized webinterface
- :person_with_blond_hair: Share recipes with friends and comment on them to suggest or remember changes you made
- :whale: Easy setup with Docker
- :package: **Sync** files with Dropbox and Nextcloud (more can easily be added)
- :mag: Powerful **search** with djangos [TrigramSimilarity](https://docs.djangoproject.com/en/3.0/ref/contrib/postgres/search/#trigram-similarity)
- :label: Create and search for **tags**, assign them in batch to all files matching certain filters
- :page_facing_up: **Create recipes** locally within a nice, standardized web interface
- :person_with_blond_hair: **Share** recipes with friends and comment on them to suggest or remember changes you made
- :whale: Easy setup with **Docker**
This application is meant for people with a collection of recipes they want to share with family and friends or simply store them in a nicely organized way. A basic permission system exists but this application is not meant to be run as a public page.
@@ -62,6 +62,7 @@ To start developing:
5. Start development server with `manage.py runserver`
## Contributing
Pull Requests and ideas are welcome, feel free to contribute in any way.
## License

View File

@@ -71,14 +71,21 @@ class KeywordForm(forms.ModelForm):
class StorageForm(forms.ModelForm):
username = forms.CharField(widget=forms.TextInput(attrs={'autocomplete': 'new-password'}), required=False)
password = forms.CharField(widget=forms.TextInput(attrs={'autocomplete': 'new-password', 'type': 'password'}),
required=False)
required=False,
help_text=_('Leave empty for dropbox and enter app password for nextcloud.'))
token = forms.CharField(widget=forms.TextInput(attrs={'autocomplete': 'new-password', 'type': 'password'}),
required=False)
required=False,
help_text=_('Leave empty for nextcloud and enter api token for dropbox.'))
class Meta:
model = Storage
fields = ('name', 'method', 'username', 'password', 'token', 'url')
help_texts = {
'url': _(
'Leave empty for dropbox and enter only base url for nextcloud (<code>/remote.php/webdav/</code> is added automatically)'),
}
class RecipeBookForm(forms.ModelForm):
class Meta:

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-01-01 20:59+0100\n"
"POT-Creation-Date: 2020-01-13 12:08+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,174 +18,173 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: .\cookbook\forms.py:24 .\cookbook\forms.py:40 .\cookbook\forms.py:115
#: cookbook/forms.py:24 cookbook/forms.py:40 cookbook/forms.py:122
msgid "Name"
msgstr "Name"
#: .\cookbook\forms.py:25 .\cookbook\forms.py:41 .\cookbook\forms.py:116
#: .\cookbook\templates\stats.html:22
#: cookbook/forms.py:25 cookbook/forms.py:41 cookbook/forms.py:123
#: cookbook/templates/stats.html:22
msgid "Keywords"
msgstr "Schlagwörter"
#: .\cookbook\forms.py:26 .\cookbook\forms.py:43
#: cookbook/forms.py:26 cookbook/forms.py:43
msgid "Preparation time in minutes"
msgstr "Zubereitungszeit in Minuten"
#: .\cookbook\forms.py:27 .\cookbook\forms.py:44
#: cookbook/forms.py:27 cookbook/forms.py:44
msgid "Waiting time (cooking/baking) in minutes"
msgstr "Wartezeit (kochen/backen) in Minuten"
#: .\cookbook\forms.py:28 .\cookbook\forms.py:117
#: cookbook/forms.py:28 cookbook/forms.py:124
msgid "Path"
msgstr "Pfad"
#: .\cookbook\forms.py:29
#: cookbook/forms.py:29
msgid "Storage UID"
msgstr "Speicher ID"
#: .\cookbook\forms.py:42
#: cookbook/forms.py:42
msgid "Instructions"
msgstr "Anleitung"
#: .\cookbook\forms.py:57
#: cookbook/forms.py:57
msgid "Add your comment: "
msgstr "Schreibe einen Kommentar:"
#: .\cookbook\forms.py:104
#: cookbook/forms.py:75
msgid "Leave empty for dropbox and enter app password for nextcloud."
msgstr "Für Dropbox leer lassen, bei Nextcloud App-Passwort eingeben."
#: cookbook/forms.py:78
msgid "Leave empty for nextcloud and enter api token for dropbox."
msgstr "Bei Nextcloud leer lassen, bei Dropbox API Token eingeben"
#: cookbook/forms.py:86
msgid ""
"Leave empty for dropbox and enter only base url for nextcloud (<code>/remote."
"php/webdav/</code> is added automatically)"
msgstr "Bei Dropbox leer lassen, bei Nextcloud Server URL angeben (<code>/remote."
"php/webdav/</code> wird automatisch hinzugefügt)"
#: cookbook/forms.py:111
msgid "Search String"
msgstr "Such Wort"
#: .\cookbook\forms.py:118
#: cookbook/forms.py:125
msgid "File ID"
msgstr "Datei ID"
#: .\cookbook\tables.py:75
#: .\cookbook\templates\forms\edit_internal_recipe.html:39
#: .\cookbook\templates\forms\edit_internal_recipe.html:97
#: .\cookbook\templates\generic\delete_template.html:5
#: .\cookbook\templates\generic\delete_template.html:13
#: .\cookbook\templates\generic\edit_template.html:25
#: cookbook/tables.py:75 cookbook/templates/forms/edit_internal_recipe.html:39
#: cookbook/templates/forms/edit_internal_recipe.html:98
#: cookbook/templates/generic/delete_template.html:5
#: cookbook/templates/generic/delete_template.html:13
#: cookbook/templates/generic/edit_template.html:25
msgid "Delete"
msgstr "Löschen"
#: .\cookbook\templates\base.html:64 .\cookbook\templates\base.html:72
#: .\cookbook\templates\index.html:7
#: cookbook/templates/base.html:64 cookbook/templates/base.html:72
#: cookbook/templates/index.html:7
msgid "Cookbook"
msgstr "Kochbuch"
#: .\cookbook\templates\base.html:76
#: cookbook/templates/base.html:76
msgid "Books"
msgstr "Bücher"
#: .\cookbook\templates\base.html:81
#: cookbook/templates/base.html:81
msgid "Tags"
msgstr "Schlagwörter"
#: .\cookbook\templates\base.html:85 .\cookbook\views\edit.py:130
#: .\cookbook\views\edit.py:331 .\cookbook\views\lists.py:17
#: .\cookbook\views\new.py:44
#: cookbook/templates/base.html:85 cookbook/views/edit.py:130
#: cookbook/views/edit.py:331 cookbook/views/lists.py:17
#: cookbook/views/new.py:44
msgid "Keyword"
msgstr "Schlagwort"
#: .\cookbook\templates\base.html:87
#: cookbook/templates/base.html:87
msgid "Batch Edit"
msgstr "Massenbearbeitung"
#: .\cookbook\templates\base.html:92
#, fuzzy
#| msgid "Manage Data"
#: cookbook/templates/base.html:92
msgid "Storage Data"
msgstr "Daten Verwalten"
msgstr "Datenquellen"
#: .\cookbook\templates\base.html:96
#: cookbook/templates/base.html:96
msgid "Storage Backends"
msgstr "Speicher Quellen"
#: .\cookbook\templates\base.html:98
#: cookbook/templates/base.html:98
msgid "Configure Sync"
msgstr "Sync Einstellen"
#: .\cookbook\templates\base.html:100
#, fuzzy
#| msgid "Import Recipe"
#: cookbook/templates/base.html:100
msgid "Import Recipes"
msgstr "Rezept Importieren"
msgstr "Importierte Rezepte"
#: .\cookbook\templates\base.html:102 .\cookbook\views\lists.py:25
#, fuzzy
#| msgid "Import Recipe"
#: cookbook/templates/base.html:102 cookbook/views/lists.py:25
msgid "Import Log"
msgstr "Rezept Importieren"
msgstr "Import Log"
#: .\cookbook\templates\base.html:104 .\cookbook\templates\stats.html:10
#: cookbook/templates/base.html:104 cookbook/templates/stats.html:10
msgid "Statistics"
msgstr "Statistiken"
#: .\cookbook\templates\base.html:112
#: cookbook/templates/base.html:112
msgid "Admin"
msgstr "Admin"
#: .\cookbook\templates\base.html:116
#: cookbook/templates/base.html:116
msgid "Logout"
msgstr "Ausloggen"
#: .\cookbook\templates\base.html:119
#: cookbook/templates/base.html:119
msgid "Login"
msgstr "Einloggen"
#: .\cookbook\templates\batch\edit.html:6
#: cookbook/templates/batch/edit.html:6
msgid "Batch edit Category"
msgstr "Kategorie massenbearbeitung"
#: .\cookbook\templates\batch\edit.html:15
#: cookbook/templates/batch/edit.html:15
msgid "Batch edit Recipes"
msgstr "Rezept massenbearbeitung"
#: .\cookbook\templates\batch\edit.html:20
#, fuzzy
#| msgid ""
#| "Add the specified category and keywords to all recipes containing a word"
#: cookbook/templates/batch/edit.html:20
msgid "Add the specified keywords to all recipes containing a word"
msgstr ""
"Ausgewählte Kategorie und Schlagwörtern zu allen Rezepten die das Suchwort "
"enthalten hinzufügen"
"Ausgewählte Schlagwörter zu allen Rezepten die das Suchwort enthalten "
"hinzufügen"
#: .\cookbook\templates\batch\monitor.html:6 .\cookbook\views\edit.py:114
#: cookbook/templates/batch/monitor.html:6 cookbook/views/edit.py:114
msgid "Sync"
msgstr "Synchronisieren"
#: .\cookbook\templates\batch\monitor.html:10
#: cookbook/templates/batch/monitor.html:10
msgid "Manage watched Folders"
msgstr "Überwachte Ordner verwalten"
#: .\cookbook\templates\batch\monitor.html:14
#, fuzzy
#| msgid ""
#| "On this Page you can manage all DropBox folder locations that should be "
#| "monitored and synced"
#: cookbook/templates/batch/monitor.html:14
msgid ""
"On this Page you can manage all storage folder locations that should be "
"monitored and synced"
msgstr ""
"Auf dieser Seite kannst du alle Dropbox Ordner verwalten die überwacht und "
"Auf dieser Seite kannst du alle Ordner verwalten die überwacht und "
"synchronisiert werden sollen"
#: .\cookbook\templates\batch\monitor.html:16
#: cookbook/templates/batch/monitor.html:16
msgid "The path must be in the following format"
msgstr "Der Pfad muss in folgendem Format sein"
#: .\cookbook\templates\batch\monitor.html:27
#: cookbook/templates/batch/monitor.html:27
msgid "Sync Now!"
msgstr "Jetzt Synchronisieren!"
#: .\cookbook\templates\batch\waiting.html:4
#: .\cookbook\templates\batch\waiting.html:10
#, fuzzy
#| msgid "Import Recipe"
#: cookbook/templates/batch/waiting.html:4
#: cookbook/templates/batch/waiting.html:10
msgid "Importing Recipes"
msgstr "Rezept Importieren"
msgstr "Rezept werden importiert"
#: .\cookbook\templates\batch\waiting.html:23
#: cookbook/templates/batch/waiting.html:23
msgid ""
"This can take a few minutes, depending on the number of recipes in sync, "
"please wait."
@@ -193,139 +192,120 @@ msgstr ""
"Abhängig von der Anzahl der Rezepte kann dieser Vorgang einige Minuten "
"dauern, bitte warten."
#: .\cookbook\templates\books.html:4 .\cookbook\templates\books.html:10
#, fuzzy
#| msgid "Recipe"
#: cookbook/templates/books.html:4 cookbook/templates/books.html:10
msgid "Recipe Books"
msgstr "Rezept Bücher"
#: .\cookbook\templates\books.html:14
#: cookbook/templates/books.html:14
msgid "New Book"
msgstr "Neues Buch"
#: .\cookbook\templates\books.html:53
#: cookbook/templates/books.html:53
msgid "There are no recipes in this book yet."
msgstr "In diesem Buch sind bisher keine Rezepte."
#: .\cookbook\templates\forms\edit_import_recipe.html:5
#: .\cookbook\templates\forms\edit_import_recipe.html:9
#, fuzzy
#| msgid "Import Recipe"
#: cookbook/templates/forms/edit_import_recipe.html:5
#: cookbook/templates/forms/edit_import_recipe.html:9
msgid "Import new Recipe"
msgstr "Rezept Importieren"
#: .\cookbook\templates\forms\edit_import_recipe.html:14
#: .\cookbook\templates\forms\edit_internal_recipe.html:37
#: .\cookbook\templates\generic\edit_template.html:23
#: .\cookbook\templates\generic\new_template.html:23
#: .\cookbook\templates\recipe_view.html:201
#: cookbook/templates/forms/edit_import_recipe.html:14
#: cookbook/templates/forms/edit_internal_recipe.html:37
#: cookbook/templates/generic/edit_template.html:23
#: cookbook/templates/generic/new_template.html:23
#: cookbook/templates/recipe_view.html:207
msgid "Save"
msgstr "Speichern"
#: .\cookbook\templates\forms\edit_internal_recipe.html:7
#: .\cookbook\templates\forms\edit_internal_recipe.html:16
#, fuzzy
#| msgid "Recipe"
#: cookbook/templates/forms/edit_internal_recipe.html:7
#: cookbook/templates/forms/edit_internal_recipe.html:16
msgid "Edit Recipe"
msgstr "Rezept"
msgstr "Rezept bearbeiten"
#: .\cookbook\templates\forms\edit_internal_recipe.html:26
#: .\cookbook\templates\recipe_view.html:62
#: cookbook/templates/forms/edit_internal_recipe.html:26
#: cookbook/templates/recipe_view.html:63
msgid "Ingredients"
msgstr "Zutaten"
#: .\cookbook\templates\forms\edit_internal_recipe.html:41
#: .\cookbook\templates\generic\edit_template.html:27
#: .\cookbook\templates\recipe_view.html:7
#: cookbook/templates/forms/edit_internal_recipe.html:41
#: cookbook/templates/generic/edit_template.html:27
#: cookbook/templates/recipe_view.html:7
msgid "View"
msgstr "Angucken"
#: .\cookbook\templates\forms\edit_internal_recipe.html:45
#: .\cookbook\templates\generic\edit_template.html:30
#: cookbook/templates/forms/edit_internal_recipe.html:45
#: cookbook/templates/generic/edit_template.html:30
msgid "Delete original file"
msgstr "Original löschen"
#: .\cookbook\templates\forms\edit_internal_recipe.html:89
#: .\cookbook\templates\forms\edit_internal_recipe.html:126
#: cookbook/templates/forms/edit_internal_recipe.html:90
#: cookbook/templates/forms/edit_internal_recipe.html:127
msgid "Ingredient"
msgstr "Zutat"
#: .\cookbook\templates\forms\edit_internal_recipe.html:94
#: cookbook/templates/forms/edit_internal_recipe.html:95
msgid "Amount"
msgstr "Menge"
#: .\cookbook\templates\forms\edit_internal_recipe.html:95
#: cookbook/templates/forms/edit_internal_recipe.html:96
msgid "Unit"
msgstr "Einheit"
#: .\cookbook\templates\generic\delete_template.html:18
#: cookbook/templates/generic/delete_template.html:18
#, python-format
msgid "Are you sure you want to delete the %(title)s: <b>%(object)s</b> "
msgstr "Bist du sicher das %(title)s: <b>%(object)s</b> gelöscht werden soll"
#: .\cookbook\templates\generic\delete_template.html:21
#: cookbook/templates/generic/delete_template.html:21
msgid "Confirm"
msgstr ""
#: .\cookbook\templates\generic\edit_template.html:6
#: .\cookbook\templates\generic\edit_template.html:14
#: cookbook/templates/generic/edit_template.html:6
#: cookbook/templates/generic/edit_template.html:14
msgid "Edit"
msgstr "Bearbeiten"
#: .\cookbook\templates\generic\list_template.html:6
#: .\cookbook\templates\generic\list_template.html:12
#: cookbook/templates/generic/list_template.html:6
#: cookbook/templates/generic/list_template.html:12
msgid "List"
msgstr "Liste"
#: .\cookbook\templates\generic\list_template.html:19
#, fuzzy
#| msgid "Auto import all"
#: cookbook/templates/generic/list_template.html:19
msgid "Import all"
msgstr "Alle importieren"
#: .\cookbook\templates\generic\new_template.html:6
#: .\cookbook\templates\generic\new_template.html:14
#: cookbook/templates/generic/new_template.html:6
#: cookbook/templates/generic/new_template.html:14
msgid "New"
msgstr "Neu"
#: .\cookbook\templates\generic\table_template.html:76
#: cookbook/templates/generic/table_template.html:76
msgid "previous"
msgstr "vorherige"
#: .\cookbook\templates\generic\table_template.html:98
#: cookbook/templates/generic/table_template.html:98
msgid "next"
msgstr "nächste"
#: .\cookbook\templates\include\recipe_open_modal.html:28
#: .\cookbook\views\edit.py:258 .\cookbook\views\edit.py:278
#: .\cookbook\views\edit.py:298 .\cookbook\views\new.py:32
#: cookbook/templates/include/recipe_open_modal.html:28
#: cookbook/views/edit.py:258 cookbook/views/edit.py:278
#: cookbook/views/edit.py:298 cookbook/views/new.py:32
msgid "Recipe"
msgstr "Rezept"
#: .\cookbook\templates\include\recipe_open_modal.html:39
#: cookbook/templates/include/recipe_open_modal.html:39
msgid "Close"
msgstr "Schließen"
#: .\cookbook\templates\include\recipe_open_modal.html:56
#: cookbook/templates/include/recipe_open_modal.html:56
msgid "Open Recipe"
msgstr "Rezept öffnen"
#: .\cookbook\templates\include\storage_backend_warning.html:4
#: cookbook/templates/include/storage_backend_warning.html:4
msgid "Security Warning"
msgstr "Sicherheitswarnung"
#: .\cookbook\templates\include\storage_backend_warning.html:5
#, fuzzy
#| msgid ""
#| "\n"
#| " The <b>Password and Token</b> field are stored as <b>plain text</"
#| "b> inside the database.\n"
#| " This is necessary because they are needed to make API requests, "
#| "but it also increases the risk of\n"
#| " someone stealing it. <br/>\n"
#| " To limit the possible damage use read only tokens or accounts if "
#| "available or create separate accounts\n"
#| " with limited access (only to recipes).\n"
#: cookbook/templates/include/storage_backend_warning.html:5
msgid ""
"\n"
" The <b>Password and Token</b> field are stored as <b>plain text</b> "
@@ -333,9 +313,8 @@ msgid ""
" This is necessary because they are needed to make API requests, but "
"it also increases the risk of\n"
" someone stealing it. <br/>\n"
" To limit the possible damage use read only tokens or accounts if "
"available or create separate accounts\n"
" with limited access (only to recipes).\n"
" To limit the possible damage tokens or accounts with limited access "
"can be used.\n"
" "
msgstr ""
"\n"
@@ -345,67 +324,51 @@ msgstr ""
"anfragen zu machen, bringt jedoch auch ein Sicherheitsrisiko mit sich. <br/"
">\n"
" Um das Risiko zu minimieren sollten, wenn möglich, Tokens benutzt "
"werden die keinen Schreibzugriff haben. Alternativ können vollständig "
"seperate Accounts mit limitiertem Zugriff genutzt werden\n"
"oder Accounts mit limitiertem Zugriff verwendet werden.\n"
" "
#: .\cookbook\templates\index.html:21
#, fuzzy
#| msgid "Search String"
#: cookbook/templates/index.html:21
msgid "Search recipe ..."
msgstr "Such Wort"
msgstr "Suche Rezept ..."
#: .\cookbook\templates\index.html:40
#: cookbook/templates/index.html:40
msgid "Advanced Search"
msgstr "Erweiterte Suche"
#: .\cookbook\templates\index.html:59
#: cookbook/templates/index.html:59
msgid "Log in to view Recipies"
msgstr "Bitte einloggen um Rezepte zu sehen"
#: .\cookbook\templates\recipe_view.html:26
#: cookbook/templates/recipe_view.html:27
msgid "in"
msgstr "in"
#: .\cookbook\templates\recipe_view.html:31
#: .\cookbook\templates\recipe_view.html:168
#: cookbook/templates/recipe_view.html:32
#: cookbook/templates/recipe_view.html:174
msgid "by"
msgstr "von"
#: .\cookbook\templates\recipe_view.html:42
#: cookbook/templates/recipe_view.html:43
msgid "Preparation time ca."
msgstr "Zubereitungszeit ca."
#: .\cookbook\templates\recipe_view.html:47
#, fuzzy
#| msgid "Preparation time ca."
#: cookbook/templates/recipe_view.html:48
msgid "Waiting time ca."
msgstr "Zubereitungszeit ca."
#: .\cookbook\templates\recipe_view.html:104
#, fuzzy
#| msgid "Recipe"
#: cookbook/templates/recipe_view.html:110
msgid "Recipe Image"
msgstr "Rezept"
msgstr "Rezept Bild"
#: .\cookbook\templates\recipe_view.html:120
#: cookbook/templates/recipe_view.html:126
msgid "View external recipe"
msgstr "Externes Rezept ansehen"
#: .\cookbook\templates\recipe_view.html:131
#, fuzzy
#| msgid "Open Recipe"
#: cookbook/templates/recipe_view.html:137
msgid "External recipe"
msgstr "Rezept öffnen"
msgstr "Externes Rezept"
#: .\cookbook\templates\recipe_view.html:133
#, fuzzy
#| msgid ""
#| "\n"
#| " This is an external recipe, which means you can "
#| "only view it by opening the link above.\n"
#| " You can convert this recipe to a fancy recipe by "
#| "pressing the convert button. The original file\n"
#| " will still be accessible.\n"
#: cookbook/templates/recipe_view.html:139
msgid ""
"\n"
" This is an external recipe, which means you can only "
@@ -420,144 +383,125 @@ msgstr ""
"nur durch klicken auf den link geöffnet werden kann.\n"
" Das Rezept kann durch drücken des Umwandeln Knopfes "
"in ein schickes lokales Rezept verwandelt werden. Die originale Datei "
"bleibt weiterhin verfügbar\n"
"bleibt weiterhin verfügbar.\n"
" "
#: .\cookbook\templates\recipe_view.html:141
#: cookbook/templates/recipe_view.html:147
msgid "Convert now!"
msgstr "Jetzt umwandeln!"
#: .\cookbook\templates\recipe_view.html:150
#: cookbook/templates/recipe_view.html:156
msgid "Comments"
msgstr "Kommentare"
#: .\cookbook\templates\recipe_view.html:159 .\cookbook\views\edit.py:191
#: .\cookbook\views\edit.py:353
#: cookbook/templates/recipe_view.html:165 cookbook/views/edit.py:191
#: cookbook/views/edit.py:353
msgid "Comment"
msgstr "Kommentar"
#: .\cookbook\templates\registration\login.html:8
#: cookbook/templates/registration/login.html:8
msgid "Your username and password didn't match. Please try again."
msgstr "Nutzername oder Passwort falsch. Bitte versuch es erneut."
#: .\cookbook\templates\stats.html:4
#: cookbook/templates/stats.html:4
msgid "Stats"
msgstr "Statistiken"
#: .\cookbook\templates\stats.html:17
#: cookbook/templates/stats.html:17
msgid "Number of objects"
msgstr "Anzahl der Objekte"
#: .\cookbook\templates\stats.html:20
#, fuzzy
#| msgid "Recipe"
#: cookbook/templates/stats.html:20
msgid "Recipes"
msgstr "Rezepte"
#: .\cookbook\templates\stats.html:24
#, fuzzy
#| msgid "Recipe"
#: cookbook/templates/stats.html:24
msgid "Recipe Imports"
msgstr "Rezept Importe"
#: .\cookbook\templates\stats.html:32
#: cookbook/templates/stats.html:32
msgid "Objects stats"
msgstr "Objekt Statistiken"
#: .\cookbook\templates\stats.html:35
#: cookbook/templates/stats.html:35
msgid "Recipes without Keywords"
msgstr "Rezepte ohne Schlagwort"
#: .\cookbook\views\api.py:63
#: cookbook/views/api.py:63
msgid "Sync successful!"
msgstr "Synchronisation erfolgreich!"
#: .\cookbook\views\api.py:66
#: cookbook/views/api.py:66
msgid "Error synchronizing with Storage"
msgstr "Fehler beim Synchronisieren"
#: .\cookbook\views\data.py:71
#, fuzzy, python-format
#| msgid "Batch edit done. %(count)d recipe where updated."
#| msgid_plural "Batch edit done. %(count)d Recipes where updated."
#: cookbook/views/data.py:71
#, python-format
msgid "Batch edit done. %(count)d recipe was updated."
msgid_plural "Batch edit done. %(count)d Recipes where updated."
msgstr[0] "Massenbearbeitung erfolgreich. %(count)d Rezept wurde aktualisiert."
msgstr[1] ""
"Massenbearbeitung erfolgreich. %(count)d Rezepte wurden aktualisiert."
#: .\cookbook\views\edit.py:88
#, fuzzy
#| msgid "Recipe"
#: cookbook/views/edit.py:88
msgid "Recipe saved!"
msgstr "Rezept"
msgstr "Rezept gespeichert"
#: .\cookbook\views\edit.py:91 .\cookbook\views\new.py:87
#: cookbook/views/edit.py:91 cookbook/views/new.py:87
msgid "There was an error importing this recipe!"
msgstr "Beim importieren des Rezeptes ist ein Fehler aufgetreten"
#: .\cookbook\views\edit.py:139 .\cookbook\views\edit.py:182
#: cookbook/views/edit.py:139 cookbook/views/edit.py:182
msgid "You cannot edit this comment!"
msgstr "Du kannst diesen Kommentar nicht bearbeiten!"
#: .\cookbook\views\edit.py:158
#, fuzzy
#| msgid "Changes saved!"
#: cookbook/views/edit.py:158
msgid "Storage saved!"
msgstr "Änderungen gespeichert"
msgstr "Speicherquelle gespeichert"
#: .\cookbook\views\edit.py:161
#: cookbook/views/edit.py:161
msgid "There was an error updating this storage backend.!"
msgstr "Es gab einen Fehler beim aktualisierung dieser Speicher Quelle"
#: .\cookbook\views\edit.py:208 .\cookbook\views\edit.py:309
#: .\cookbook\views\lists.py:34
#, fuzzy
#| msgid "Import Recipe"
#: cookbook/views/edit.py:208 cookbook/views/edit.py:309
#: cookbook/views/lists.py:34
msgid "Import"
msgstr "Rezept Importieren"
#: .\cookbook\views\edit.py:224 .\cookbook\views\edit.py:364
#: .\cookbook\views\new.py:110
#, fuzzy
#| msgid "Recipe"
#: cookbook/views/edit.py:224 cookbook/views/edit.py:364
#: cookbook/views/new.py:110
msgid "Recipe Book"
msgstr "Rezept"
msgstr "Rezeptbuch"
#: .\cookbook\views\edit.py:246
#: cookbook/views/edit.py:246
msgid "Changes saved!"
msgstr "Änderungen gespeichert"
#: .\cookbook\views\edit.py:250
#: cookbook/views/edit.py:250
msgid "Error saving changes!"
msgstr "Fehler beim Speichern der Daten."
#: .\cookbook\views\edit.py:320
#: cookbook/views/edit.py:320
msgid "Monitor"
msgstr "Monitor"
#: .\cookbook\views\edit.py:342 .\cookbook\views\lists.py:42
#: .\cookbook\views\new.py:62
#: cookbook/views/edit.py:342 cookbook/views/lists.py:42
#: cookbook/views/new.py:62
msgid "Storage Backend"
msgstr "Speicher Quelle"
#: .\cookbook\views\edit.py:375
#: cookbook/views/edit.py:375
msgid "Bookmarks"
msgstr "Lesezeichen"
#: .\cookbook\views\new.py:84
#, fuzzy
#| msgid "Imported Recipes"
#: cookbook/views/new.py:84
msgid "Imported new recipe!"
msgstr "Importierte Rezepte"
msgstr "Importier neue Rezepte"
#: .\cookbook\views\views.py:42
#, fuzzy
#| msgid "Changes saved!"
#: cookbook/views/views.py:42
msgid "Comment saved!"
msgstr "Änderungen gespeichert"
msgstr "Kommentar gespeichert"
#: .\cookbook\views\views.py:52
#, fuzzy
#| msgid "Changes saved!"
#: cookbook/views/views.py:52
msgid "Bookmark saved!"
msgstr "Änderungen gespeichert"
msgstr "Lesezeichen gespeichert"

View File

@@ -85,6 +85,7 @@
movableRows: true,
headerSort: false,
columns: [
{ title: "<i class='fas fa-sort'></i>", rowHandle:true, formatter:"handle", headerSort:false, frozen:true, width:36, minWidth:36},
{
title: "{% trans 'Ingredient' %}",
field: "name",

View File

@@ -6,7 +6,6 @@
The <b>Password and Token</b> field are stored as <b>plain text</b> inside the database.
This is necessary because they are needed to make API requests, but it also increases the risk of
someone stealing it. <br/>
To limit the possible damage use read only tokens or accounts if available or create separate accounts
with limited access (only to recipes).
To limit the possible damage tokens or accounts with limited access can be used.
{% endblocktrans %}</p>
</div>

View File

@@ -14,7 +14,8 @@
{% block content %}
<div class="row">
<div class="col col-md-9">
<h3>{{ recipe.name }} <a href="{% url 'edit_recipe' recipe.pk %}" class="d-print-none"><i class="fas fa-pencil-alt"></i></a></h3>
<h3>{{ recipe.name }} <a href="{% url 'edit_recipe' recipe.pk %}" class="d-print-none"><i
class="fas fa-pencil-alt"></i></a></h3>
</div>
<div class="col col-md-3 d-print-none" style="text-align: right">
<button class="btn btn-success" onclick="$('#bookmarkModal').modal({'show':true})"><i
@@ -80,8 +81,13 @@
<div class="pretty p-default p-curve">
<input type="checkbox"/>
<div class="state p-success">
<label><span
id="ing_{{ i.pk }}">{{ i.amount.normalize }}</span> {{ i.unit }}
<label>
{% if i.amount != 0 %}
<span id="ing_{{ i.pk }}">{{ i.amount.normalize }}</span>
{{ i.unit }}
{% else %}
<span>&#x2063;</span>
{% endif %}
</label>
</div>
</div>

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-01-01 20:59+0100\n"
"POT-Creation-Date: 2020-01-13 12:08+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,10 +18,10 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: .\recipes\settings.py:136
#: recipes/settings.py:136
msgid "German"
msgstr "Deutsch"
#: .\recipes\settings.py:137
#: recipes/settings.py:137
msgid "English"
msgstr "Englisch"

View File

@@ -27,7 +27,7 @@ LOGIN_REDIRECT_URL = "index"
LOGOUT_REDIRECT_URL = "index"
SESSION_EXPIRE_AT_BROWSER_CLOSE = False
SESSION_COOKIE_AGE = 365 * 60 * 24
SESSION_COOKIE_AGE = 365 * 60 * 24 * 60
CRISPY_TEMPLATE_PACK = 'bootstrap4'
DJANGO_TABLES2_TEMPLATE = 'cookbook/templates/generic/table_template.html'