Skip to content

Commit

Permalink
Merge branch 'master' into fix/pyproject
Browse files Browse the repository at this point in the history
# Conflicts:
#	wger/core/tests/test_index.py
  • Loading branch information
rolandgeider committed Jan 27, 2024
2 parents 6fdeb96 + aa3595e commit 71de644
Show file tree
Hide file tree
Showing 20 changed files with 349 additions and 529 deletions.
13 changes: 12 additions & 1 deletion extras/open-food-facts/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ Note that we are running this as a manual step since the import takes a while

```shell
docker compose up
docker compose exec mongodb mongorestore --username off --password off-wger -d admin -c products /dump/dump/off/products.bson
docker compose exec mongodb mongorestore --username off --password off-wger -d admin -c products /dump/off/products.bson
```

There is also an admin interface available at <http://localhost:8081>, log in with
Expand All @@ -41,6 +41,17 @@ Run the import script
python manage.py import-off-products
```

To update the data fixtures:

```shell
python manage.py dumpdata nutrition > extras/scripts/data.json
cd extras/scripts
python filter-fixtures.py
zip ingredients.json.zip ingredients.json
zip weight_units.json.zip weight_units.json
zip ingredient_units.json.zip ingredient_units.json
```

## 4

Don't forget to delete the dump and remove the containers if you love your
Expand Down
4 changes: 2 additions & 2 deletions requirements_dev.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@ wheel==0.42.0
pymongo==4.6.1

# for running the dummy entry generators
faker==22.5.0
faker==22.5.1

# Development packages
coverage==7.4.0
coverage==7.4.1
django-debug-toolbar==4.2.0
tblib==3.0.0
ruff==0.1.13
Expand Down
252 changes: 135 additions & 117 deletions wger/core/static/react/locales/de/translation.json
Original file line number Diff line number Diff line change
@@ -1,120 +1,138 @@
{
"add": "Hinzufügen",
"addEntry": "Eintrag hinzufügen",
"change": "Veränderung",
"close": "Schließen",
"currentWeight": "Aktuelles Gewicht",
"date": "Datum",
"days": "Tage",
"loading": "Lade...",
"delete": "Löschen",
"difference": "Differenz",
"edit": "Bearbeiten",
"category": "Kategorie",
"English": "Englisch",
"save": "Speichern",
"continue": "Fortfahren",
"exercises": {
"equipment": "Gerät",
"exercises": "Übungen",
"muscles": "Muskeln",
"secondaryMuscles": "Sekundäre Muskeln",
"noEquipment": "Keine Ausrüstung",
"searchExerciseName": "Nach Übungsnamen suchen",
"exerciseNotTranslated": "Keine Übersetzung verfügbar",
"exerciseNotTranslatedBody": "Diese Übung ist derzeit nicht in der gewählten Sprache verfügbar. Möchtest du eine Übersetzung beisteuern?",
"translateExerciseNow": "Diese Übung jetzt übersetzen",
"notes": "Anmerkungen",
"description": "Beschreibung",
"primaryMuscles": "Primäre Muskeln",
"identicalExercisePleaseDiscard": "Wenn dir eine Übung auffällt, die mit der von dir hinzugefügten identisch ist, verwerfe bitte deinen Entwurf und bearbeite stattdessen diese Übung.",
"contributeExercise": "Eine Übung beisteuern",
"checkInformationBeforeSubmitting": "Bitte überprüfe vor dem Absenden der Übung, ob die von dir eingegebenen Informationen korrekt sind",
"successfullyUpdated": "Die Übung wurde erfolgreich aktualisiert. Aufgrund von Caching kann es einige Zeit dauern, bis die Änderungen in der gesamten Anwendung sichtbar sind.",
"alsoKnownAs": "Auch bekannt als:",
"deleteExerciseTranslation": "Aktuelle Übersetzung löschen?",
"deleteExerciseTranslationBody": "Du bist dabei, die Übersetzung {{language}} für die Übung \"{{name}}\" zu löschen. Diese Aktion kann nicht rückgängig gemacht werden. Weitermachen?",
"missingExercise": "Fehlt eine bestimmte Übung?",
"newNote": "Neuer Hinweis",
"notesHelpText": "Hinweise sind kurze Kommentare zur Ausführung der Übung, wie z. B. \"Halte deinen Körper gerade\"",
"variations": "Variationen",
"step1HeaderBasics": "Grundlagen auf Englisch",
"whatVariationsExist": "Welche Variationen dieser Übung gibt es, wenn überhaupt?",
"filterVariations": "Name der Übung eingeben, um Variationen zu filtern",
"submitExercise": "Übung einreichen",
"compatibleImagesCC": "Die Bilder müssen mit der CC BY SA-Lizenz kompatibel sein. Im Zweifelsfall solltest du nur Fotos hochladen, die du selbst aufgenommen hast.",
"alternativeNames": "Alternative Namen",
"missingExerciseDescription": "Hilf der Community und leiste einen Beitrag!",
"deleteExerciseFull": "Vollständige Übung löschen",
"deleteTranslation": "Übersetzung löschen",
"deleteExerciseBody": "Möchtest du die Übung \"{{name}}\" löschen? Du kannst entweder die aktuelle {{language}} Übersetzung oder die komplette Übung mit allen Übersetzungen, Bildern usw. löschen.",
"basics": "Grundlagen",
"notEnoughRightsHeader": "Du kannst keine Übungen beisteuern",
"notEnoughRights": "Du kannst Übungen nur dann beisteuern, wenn dein Benutzerkonto älter als {{days}} Tage und deine E-Mail-Adresse verifiziert ist",
"changeExerciseLanguage": "Ändere die Sprache dieser Übung",
"identicalExercise": "Vermeide doppelte Übungen",
"cacheWarning": "Aufgrund von Caching kann es einige Zeit dauern, bis Änderungen in der ganzen Anwendung sichtbar sind."
},
"noResults": "Keine Ergebnisse",
"noResultsDescription": "Keine Ergebnisse für diese Suche gefunden, bitte reduziere die Anzahl der Filter.",
"nutritionalPlan": "Ernährungsplan",
"server": {
"abs": "Bauch",
"arms": "Arme",
"back": "Rücken",
"barbell": "Langhantel",
"bench": "Bank",
"biceps": "Bizeps",
"calves": "Waden",
"chest": "Brust",
"dumbbell": "Kurzhantel",
"glutes": "Po",
"gym_mat": "Matte",
"hamstrings": "Beinbeuger",
"incline_bench": "Schrägbank",
"kettlebell": "Kugelhantel",
"kilometers": "Kilometer",
"lats": "Latissimus",
"legs": "Beine",
"lower_back": "Unterer Rücken",
"miles": "Meilen",
"minutes": "Minuten",
"none__bodyweight_exercise_": "keine (Körpergewichtübung)",
"pull_up_bar": "Klimmzugstange",
"quads": "Beinstrecker",
"repetitions": "Wiederholungen",
"seconds": "Sekunden",
"shoulders": "Schultern",
"swiss_ball": "Schweizer Ball",
"sz_bar": "SZ Stange",
"triceps": "Trizeps",
"until_failure": "Bis zum Muskelversagen",
"cardio": "Kardio",
"lb": "lb",
"kg": "kg"
},
"submit": "Abschicken",
"weight": "Gewicht",
"workout": "Trainingsplan",
"images": "Bilder",
"add": "Hinzufügen",
"addEntry": "Eintrag hinzufügen",
"change": "Veränderung",
"close": "Schließen",
"currentWeight": "Aktuelles Gewicht",
"date": "Datum",
"days": "Tage",
"loading": "Lade...",
"delete": "Löschen",
"difference": "Differenz",
"edit": "Bearbeiten",
"category": "Kategorie",
"English": "Englisch",
"save": "Speichern",
"continue": "Fortfahren",
"exercises": {
"equipment": "Gerät",
"exercises": "Übungen",
"muscles": "Muskeln",
"secondaryMuscles": "Sekundäre Muskeln",
"noEquipment": "Keine Ausrüstung",
"searchExerciseName": "Nach Übungsnamen suchen",
"exerciseNotTranslated": "Keine Übersetzung verfügbar",
"exerciseNotTranslatedBody": "Diese Übung ist derzeit nicht in der gewählten Sprache verfügbar. Möchtest du eine Übersetzung beisteuern?",
"translateExerciseNow": "Diese Übung jetzt übersetzen",
"notes": "Anmerkungen",
"description": "Beschreibung",
"translation": "Übersetzung",
"overview": "Übersicht",
"goBack": "Zurück",
"language": "Bilder",
"forms": {
"supportedImageFormats": "Es werden nur JPEG-, PNG- und WEBP-Dateien unter 20Mb unterstützt",
"valueTooShort": "Der Wert ist zu gering",
"valueTooLong": "Der Wert ist zu groß",
"fieldRequired": "Pflichtfeld"
},
"routines": {
"rir": "RiR"
},
"name": "Name",
"cancel": "Abbrechen",
"videos": "Videos",
"cannotBeUndone": "Diese Aktion kann nicht rückgängig gemacht werden.",
"preferences": "Voreinstellungen",
"success": "Erfolg!"
"primaryMuscles": "Primäre Muskeln",
"identicalExercisePleaseDiscard": "Wenn dir eine Übung auffällt, die mit der von dir hinzugefügten identisch ist, verwerfe bitte deinen Entwurf und bearbeite stattdessen diese Übung.",
"contributeExercise": "Eine Übung beisteuern",
"checkInformationBeforeSubmitting": "Bitte überprüfe vor dem Absenden der Übung, ob die von dir eingegebenen Informationen korrekt sind",
"successfullyUpdated": "Die Übung wurde erfolgreich aktualisiert. Aufgrund von Caching kann es einige Zeit dauern, bis die Änderungen in der gesamten Anwendung sichtbar sind.",
"alsoKnownAs": "Auch bekannt als:",
"deleteExerciseTranslation": "Aktuelle Übersetzung löschen?",
"deleteExerciseTranslationBody": "Du bist dabei, die Übersetzung {{language}} für die Übung \"{{name}}\" zu löschen. Diese Aktion kann nicht rückgängig gemacht werden. Weitermachen?",
"missingExercise": "Fehlt eine bestimmte Übung?",
"newNote": "Neuer Hinweis",
"notesHelpText": "Hinweise sind kurze Kommentare zur Ausführung der Übung, wie z. B. \"Halte deinen Körper gerade\"",
"variations": "Variationen",
"step1HeaderBasics": "Grundlagen auf Englisch",
"whatVariationsExist": "Welche Variationen dieser Übung gibt es, wenn überhaupt?",
"filterVariations": "Name der Übung eingeben, um Variationen zu filtern",
"submitExercise": "Übung einreichen",
"compatibleImagesCC": "Die Bilder müssen mit der CC BY SA-Lizenz kompatibel sein. Im Zweifelsfall solltest du nur Fotos hochladen, die du selbst aufgenommen hast.",
"alternativeNames": "Alternative Namen",
"missingExerciseDescription": "Hilf der Community und leiste einen Beitrag!",
"deleteExerciseFull": "Vollständige Übung löschen",
"deleteTranslation": "Übersetzung löschen",
"deleteExerciseBody": "Möchtest du die Übung \"{{name}}\" löschen? Du kannst entweder die aktuelle {{language}} Übersetzung oder die komplette Übung mit allen Übersetzungen, Bildern usw. löschen.",
"basics": "Grundlagen",
"notEnoughRightsHeader": "Du kannst keine Übungen beisteuern",
"notEnoughRights": "Du kannst Übungen nur dann beisteuern, wenn dein Benutzerkonto älter als {{days}} Tage und deine E-Mail-Adresse verifiziert ist",
"changeExerciseLanguage": "Ändere die Sprache dieser Übung",
"identicalExercise": "Vermeide doppelte Übungen",
"cacheWarning": "Aufgrund von Caching kann es einige Zeit dauern, bis Änderungen in der ganzen Anwendung sichtbar sind.",
"replacements": "Ersätzen",
"replacementsInfoText": "Optional können Sie auch eine Übung auswählen, die diese ersetzen soll (z. B. weil sie zweimal eingereicht wurde oder ähnliches). Dadurch wird die Übung in Routinen sowie Trainingsprotokollen ersetzt, anstatt sie einfach zu löschen. Diese Änderungen werden auch auf alle Instanzen übertragen, die die Übungen von dieser übernehmen.",
"replacementsSearch": "Suche nach Übungen oder kopiere eine Bekannte ID in das Feld und drücke den \"Laden\" Button.",
"noReplacementSelected": " Keine Übung zum ersätzen ausgewählt"
},
"noResults": "Keine Ergebnisse",
"noResultsDescription": "Keine Ergebnisse für diese Suche gefunden, bitte reduziere die Anzahl der Filter.",
"nutritionalPlan": "Ernährungsplan",
"server": {
"abs": "Bauch",
"arms": "Arme",
"back": "Rücken",
"barbell": "Langhantel",
"bench": "Bank",
"biceps": "Bizeps",
"calves": "Waden",
"chest": "Brust",
"dumbbell": "Kurzhantel",
"glutes": "Po",
"gym_mat": "Matte",
"hamstrings": "Beinbeuger",
"incline_bench": "Schrägbank",
"kettlebell": "Kugelhantel",
"kilometers": "Kilometer",
"lats": "Latissimus",
"legs": "Beine",
"lower_back": "Unterer Rücken",
"miles": "Meilen",
"minutes": "Minuten",
"none__bodyweight_exercise_": "keine (Körpergewichtübung)",
"pull_up_bar": "Klimmzugstange",
"quads": "Beinstrecker",
"repetitions": "Wiederholungen",
"seconds": "Sekunden",
"shoulders": "Schultern",
"swiss_ball": "Schweizer Ball",
"sz_bar": "SZ Stange",
"triceps": "Trizeps",
"until_failure": "Bis zum Muskelversagen",
"cardio": "Kardio",
"lb": "lb",
"kg": "kg"
},
"submit": "Abschicken",
"weight": "Gewicht",
"workout": "Training",
"images": "Bilder",
"description": "Beschreibung",
"translation": "Übersetzung",
"overview": "Übersicht",
"goBack": "Zurück",
"language": "Sprache",
"forms": {
"supportedImageFormats": "Es werden nur JPEG-, PNG- und WEBP-Dateien unter 20Mb unterstützt",
"valueTooShort": "Der Wert ist zu gering",
"valueTooLong": "Der Wert ist zu groß",
"fieldRequired": "Pflichtfeld"
},
"routines": {
"rir": "RiR"
},
"name": "Name",
"cancel": "Abbrechen",
"videos": "Videos",
"cannotBeUndone": "Diese Aktion kann nicht rückgängig gemacht werden.",
"preferences": "Voreinstellungen",
"success": "Erfolg!",
"measurements": {
"deleteInfo": "Dies wird die Kategorie sowie alle seine Einträge löschen"
},
"timeOfDay": "Tageszeit",
"notes": "Notizen",
"value": "Wert",
"unit": "Einheit",
"alsoSearchEnglish": "Namen auch in English suchen",
"deleteConfirmation": "Möchten Sie sicher mit der Löschung von \"{{name}}\" fortfahren?",
"seeDetails": "Siehe Einzelheiten",
"actions": "Aktion",
"nothingHereYet": "Hier ist noch nichts...",
"nothingHereYetAction": "Drücke den Aktion's Button um zu beginnen",
"copyToClipboard": "In Zwischenablage kopieren"
}
10 changes: 8 additions & 2 deletions wger/core/static/react/locales/es/translation.json
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,12 @@
"changeExerciseLanguage": "Cambiar el idioma de este ejercicio",
"missingExercise": "¿Falta algún ejercicio?",
"identicalExercise": "Evitar los ejercicios duplicados",
"cacheWarning": "Debido al almacenamiento en caché, puede pasar algún tiempo hasta que los cambios sean visibles en toda la aplicación."
"cacheWarning": "Debido al almacenamiento en caché, puede pasar algún tiempo hasta que los cambios sean visibles en toda la aplicación.",
"replacements": "Sustituciones",
"replacementsInfoText": "Opcionalmente, también puede seleccionar un ejercicio que debería sustituir a éste (por ejemplo, porque fue enviado dos veces, o similar). Esto sustituye el ejercicio en las rutinas así como en los registros de entrenamiento, en lugar de simplemente borrarlo. Estos cambios también se propagarán a cualquier instancia que sincronice los ejercicios.",
"deleteExerciseReplace": "Borrar y sustituir",
"replacementsSearch": "Busque un ejercicio o copie y pegue un ID conocido en el campo y pulse el botón \"cargar\".",
"noReplacementSelected": " Ningún ejercicio seleccionado para sustituir"
},
"loading": "Cargando...",
"images": "Imágenes",
Expand Down Expand Up @@ -197,5 +202,6 @@
"alsoSearchEnglish": "Buscar también los nombres en inglés",
"timeOfDay": "Hora del día",
"nothingHereYet": "Todavía no hay nada aquí...",
"nothingHereYetAction": "Pulse el botón de acción para empezar"
"nothingHereYetAction": "Pulse el botón de acción para empezar",
"copyToClipboard": "Copiar al portapapeles"
}
47 changes: 43 additions & 4 deletions wger/core/static/react/locales/fr/translation.json
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,12 @@
"filterVariations": "Entrer un nom d'exercice pour filtrer les variantes",
"newNote": "Nouvelle note",
"notesHelpText": "Les notes sont de brefs commentaires sur la façon d'exécuter l'exercice, par exemple \"gardez votre corps droit\"",
"primaryMuscles": "Muscles primaires"
"primaryMuscles": "Muscles primaires",
"replacements": "Substitutions",
"replacementsInfoText": "En option, vous pouvez également sélectionner un exercice qui devrait remplacer celui-ci (par exemple, s'il a été soumis deux fois, ou similaire). Cela remplacera l'exercice dans les routines ainsi que dans les journaux d'entraînement, au lieu de simplement le supprimer. Ces modifications seront également propagées à toute instance synchronisant les exercices à partir de celui-ci.",
"deleteExerciseReplace": "Supprimer et remplacer",
"replacementsSearch": "Recherchez un exercice ou copiez-collez un identifiant connu dans le champ, puis cliquez sur le bouton \"Charger\".",
"noReplacementSelected": " Aucun exercice sélectionné pour le remplacement"
},
"server": {
"arms": "Bras",
Expand All @@ -68,7 +73,7 @@
"until_failure": "Jusqu'à l'échec",
"gym_mat": "Tapis de gymnastique",
"dumbbell": "Haltère",
"kettlebell": "Kettlebell",
"kettlebell": "Haltère russe",
"muscles": "Muscles",
"sz-bar": "Barre SZ",
"none_(bodyweight_exercise)": "Aucun (exercice au poids du corps)",
Expand Down Expand Up @@ -102,7 +107,7 @@
"continue": "Continuer",
"preferences": "Préférences",
"goBack": "Retour",
"language": "Langue",
"language": "Langues",
"forms": {
"supportedImageFormats": "Seuls les fichiers JPEG, PNG et WEBP de moins de 20 Mo sont pris en charge",
"valueTooShort": "La valeur est trop courte",
Expand Down Expand Up @@ -137,5 +142,39 @@
"notes": "Notes",
"seeDetails": "Voir les détails",
"actions": "Actions",
"unit": "Unité"
"unit": "Unité",
"nutrition": {
"percentEnergy": "Pourcentage d'énergie",
"loggedToday": "Connecté aujourd'hui",
"goalsTitle": "Objectifs",
"addMealItem": "Ajouter un ingrédient au repas",
"goalEnergy": "Objectif énergétique",
"logged": "Connecté",
"valueEnergyKcal": "{{value}} Kcal",
"nutritionalDiary": "Journal nutritionnel",
"plan": "Plans nutritionnels",
"kcal": "Kcal",
"copyPlan": "Créer une copie de ce plan",
"plans": "Plans nutritionnels",
"useGoalsHelpTextLong": "Cela vous permet de définir des objectifs généraux pour l'énergie, les protéines, les glucides ou les graisses du plan. Notez que si vous configurez un plan de repas détaillé, ces valeurs auront la priorité.",
"addNutritionalDiary": "Ajouter une entrée au journal nutritionnel",
"onlyLoggingHelpText": "Suivre uniquement les calories. Cochez la case si vous souhaitez uniquement enregistrer vos calories et ne souhaitez pas configurer un plan nutritionnel détaillé avec des repas spécifiques",
"gPerBodyKg": "gramme par kilogramme de poids corporel",
"goalProtein": "Objectif en protéines",
"valueEnergyKcalKj": "{{kcal}} Kcal / {{kj}} kJ",
"goalFat": "Objectif en matières grasses",
"meal": "Repas",
"goalCarbohydrates": "Objectif en glucides",
"useGoalsHelpText": "Ajouter des objectifs à ce plan",
"addMeal": "Ajouter un repas",
"macronutrient": "Macronutriment",
"gramShort": "g",
"searchIngredientName": "Rechercher par nom d'ingrédient"
},
"nothingHereYet": "Rien ici pour le moment …",
"total": "Total",
"alsoSearchEnglish": "Recherchez également des noms en anglais",
"timeOfDay": "Heure de la journée",
"copyToClipboard": "Copier dans le presse-papiers",
"nothingHereYetAction": "Appuyez sur le bouton d'action pour commencer"
}
Loading

0 comments on commit 71de644

Please sign in to comment.