diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3409c563..706b1ab3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -61,13 +61,10 @@ jobs: deploy: needs: test runs-on: ubuntu-latest - env: - DEPLOY_DEMO: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} + if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} steps: - - if: ${{ env.DEPLOY_DEMO }} - uses: actions/checkout@v2 - - if: ${{ env.DEPLOY_DEMO }} - name: Deploy demo + - uses: actions/checkout@v2 + - name: Deploy demo uses: akhileshns/heroku-deploy@v3.12.12 with: heroku_api_key: ${{ secrets.HEROKU_API_KEY }} diff --git a/api/filters.py b/api/filters.py index 4f6e0cdc..d831740d 100644 --- a/api/filters.py +++ b/api/filters.py @@ -3,64 +3,90 @@ from django_filters import rest_framework as filters from core import models -class TimeFieldFilter(filters.FilterSet): - date = filters.DateFilter(field_name='date', label='Date') - date_min = filters.DateFilter(field_name='time__date', label='Min. Date', - lookup_expr='gte') +class ChildFieldFilter(filters.FilterSet): + class Meta: + abstract = True + fields = ['child'] + + +class TimeFieldFilter(ChildFieldFilter): + date = filters.DateFilter(field_name='time__date', label='Date') date_max = filters.DateFilter(field_name='time__date', label='Max. Date', lookup_expr='lte') + date_min = filters.DateFilter(field_name='time__date', label='Min. Date', + lookup_expr='gte') + + class Meta: + abstract = True + fields = sorted(ChildFieldFilter.Meta.fields + [ + 'date', + 'date_max', + 'date_min' + ]) -class StartEndFieldFilter(filters.FilterSet): +class StartEndFieldFilter(ChildFieldFilter): end = filters.DateFilter(field_name='end__date', label='End Date') - end_min = filters.DateFilter(field_name='end__date', label='Min. End Date', - lookup_expr='gte') end_max = filters.DateFilter(field_name='end__date', label='Max. End Date', lookup_expr='lte') + end_min = filters.DateFilter(field_name='end__date', label='Min. End Date', + lookup_expr='gte') start = filters.DateFilter(field_name='start__date', label='Start Date') - start_min = filters.DateFilter(field_name='start__date', lookup_expr='gte', - label='Min. Start Date',) - start_end = filters.DateFilter(field_name='start__date', lookup_expr='lte', + start_max = filters.DateFilter(field_name='start__date', lookup_expr='lte', label='Max. End Date') + start_min = filters.DateFilter(field_name='start__date', lookup_expr='gte', + label='Min. Start Date') + + class Meta: + abstract = True + fields = sorted(ChildFieldFilter.Meta.fields + [ + 'end', + 'end_max', + 'end_min', + 'start', + 'start_max', + 'start_min' + ]) class DiaperChangeFilter(TimeFieldFilter): - class Meta: + class Meta(TimeFieldFilter.Meta): model = models.DiaperChange - fields = ['child', 'wet', 'solid', 'color', 'amount'] + fields = sorted(TimeFieldFilter.Meta.fields + [ + 'wet', + 'solid', + 'color', + 'amount' + ]) class FeedingFilter(StartEndFieldFilter): - class Meta: + class Meta(StartEndFieldFilter.Meta): model = models.Feeding - fields = ['child', 'type', 'method'] + fields = sorted(StartEndFieldFilter.Meta.fields + ['type', 'method']) class NoteFilter(TimeFieldFilter): - class Meta: + class Meta(TimeFieldFilter.Meta): model = models.Note - fields = ['child'] class SleepFilter(StartEndFieldFilter): - class Meta: + class Meta(StartEndFieldFilter.Meta): model = models.Sleep - fields = ['child'] class TemperatureFilter(TimeFieldFilter): - class Meta: + class Meta(TimeFieldFilter.Meta): model = models.Temperature - fields = ['child'] class TimerFilter(StartEndFieldFilter): - class Meta: + class Meta(StartEndFieldFilter.Meta): model = models.Timer - fields = ['child', 'active', 'user'] + fields = sorted(StartEndFieldFilter.Meta.fields + ['active', 'user']) class TummyTimeFilter(StartEndFieldFilter): - class Meta: + class Meta(StartEndFieldFilter.Meta): model = models.TummyTime - fields = ['child'] diff --git a/api/metadata.py b/api/metadata.py index 760b08da..d4403762 100644 --- a/api/metadata.py +++ b/api/metadata.py @@ -11,4 +11,6 @@ class APIMetadata(metadata.SimpleMetadata): data.pop('description') if hasattr(view, 'filterset_fields'): data.update({'filters': view.filterset_fields}) + elif hasattr(view, 'filterset_class'): + data.update({'filters': view.filterset_class.Meta.fields}) return data diff --git a/babybuddy/middleware.py b/babybuddy/middleware.py index 4acde9c5..704b2273 100644 --- a/babybuddy/middleware.py +++ b/babybuddy/middleware.py @@ -3,7 +3,7 @@ import time import pytz from django.conf import settings -from django.utils import timezone +from django.utils import timezone, translation from django.conf.locale.en import formats as formats_en_us from django.conf.locale.en_GB import formats as formats_en_gb @@ -58,10 +58,6 @@ def update_en_gb_date_formats(): '%d/%m/%Y %I:%M %p', # '25/10/2006 2:30 PM' ] - # Not setting this makes pages display using the the 25/10/2006 as desired - # Add custom "short" version of `MONTH_DAY_FORMAT`. - # formats_en_gb.SHORT_MONTH_DAY_FORMAT = 'j M' - # Append all other input formats from the base locale. formats_en_gb.DATETIME_INPUT_FORMATS = \ custom_input_formats + formats_en_gb.DATETIME_INPUT_FORMATS @@ -76,11 +72,29 @@ class UserLanguageMiddleware: def __call__(self, request): user = request.user - if hasattr(user, 'settings') and user.settings.language == 'en-US': - update_en_us_date_formats() - elif hasattr(user, 'settings') and user.settings.language == 'en-GB': - update_en_gb_date_formats() - return self.get_response(request) + if hasattr(user, 'settings') and user.settings.language: + language = user.settings.language + elif request.LANGUAGE_CODE: + language = request.LANGUAGE_CODE + else: + language = settings.LANGUAGE_CODE + + if language: + if language == 'en-US': + update_en_us_date_formats() + elif language == 'en-GB': + update_en_gb_date_formats() + + # Set the language before generating the response. + translation.activate(language) + + response = self.get_response(request) + + # Deactivate the translation before the response is sent so it not + # reused in other threads. + translation.deactivate() + + return response class UserTimezoneMiddleware: diff --git a/babybuddy/views.py b/babybuddy/views.py index 8f3bb44e..c9e41be1 100644 --- a/babybuddy/views.py +++ b/babybuddy/views.py @@ -6,6 +6,7 @@ from django.contrib.auth.models import User from django.contrib.messages.views import SuccessMessageMixin from django.shortcuts import redirect, render from django.urls import reverse, reverse_lazy +from django.utils import translation from django.utils.text import format_lazy from django.utils.translation import gettext as _, gettext_lazy from django.views.generic import View @@ -144,7 +145,9 @@ class UserSettings(LoginRequiredMixin, View): user_settings = form_settings.save(commit=False) user.settings = user_settings user.save() + translation.activate(user.settings.language) messages.success(request, _('Settings saved!')) + translation.deactivate() return set_language(request) return render(request, self.template_name, { 'user_form': form_user, diff --git a/core/timeline.py b/core/timeline.py index 28a82367..7bfe6196 100644 --- a/core/timeline.py +++ b/core/timeline.py @@ -3,7 +3,7 @@ from django.urls import reverse from django.utils import timezone, timesince from django.utils.translation import gettext as _ -from core.models import DiaperChange, Feeding, Sleep, TummyTime +from core.models import DiaperChange, Feeding, Note, Sleep, TummyTime from datetime import timedelta @@ -22,6 +22,7 @@ def get_objects(date, child=None): _add_feedings(min_date, max_date, events, child) _add_sleeps(min_date, max_date, events, child) _add_tummy_times(min_date, max_date, events, child) + _add_notes(min_date, max_date, events, child) events.sort(key=lambda x: x['time'], reverse=True) @@ -169,3 +170,18 @@ def _add_diaper_changes(min_date, max_date, events, child): args=[instance.id]), 'model_name': instance.model_name }) + + +def _add_notes(min_date, max_date, events, child): + instances = Note.objects.filter( + time__range=(min_date, max_date)).order_by('-time') + if child: + instances = instances.filter(child=child) + for instance in instances: + events.append({ + 'time': timezone.localtime(instance.time), + 'details': [instance.note], + 'edit_link': reverse('core:note-update', + args=[instance.id]), + 'model_name': instance.model_name + }) diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index 2cf67caf..155e4990 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -85,7 +85,7 @@ documentation section: [Translation](https://docs.djangoproject.com/en/3.0/topic ### Requirements - Python 3.6+, pip, pipenv -- NodeJS 14.x and NPM 7.x +- NVM (NodeJS 14.x and NPM 7.x) - Gulp - Possibly `libpq-dev` - This is necessary if `psycopg2` can't find an appropriate prebuilt binary. @@ -96,13 +96,21 @@ documentation section: [Translation](https://docs.djangoproject.com/en/3.0/topic 1. Install required Python packages, including dev packages - pipenv install --three + pipenv install --three --dev - If this fails, install `libpq-dev` (e.g. `sudo apt install libpq-dev`) and try again. + +1. Installed Node 14.x (if necessary) + + nvm install 14 + +1. Activate Node 14.x + + nvm use 1. Install Gulp CLI - sudo npm install -g gulp-cli + npm install -g gulp-cli 1. Install required Node packages diff --git a/docs/DEPLOYMENT.md b/docs/DEPLOYMENT.md index 68d42f93..91bc2c78 100644 --- a/docs/DEPLOYMENT.md +++ b/docs/DEPLOYMENT.md @@ -45,7 +45,7 @@ python3 /app/babybuddy/manage.py clearsessions ## Heroku -[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy) +[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://dashboard.heroku.com/new?button-url=https%3A%2F%2Fgithub.com%2Fbabybuddy%2Fbabybuddy&template=https%3A%2F%2Fgithub.com%2Fbabybuddy%2Fbabybuddy) For manual deployments to Heroku without using the "deploy" button, make sure to create the following settings before pushing: @@ -188,4 +188,4 @@ and 1+ child). sudo ln -s /etc/nginx/sites-available/babybuddy /etc/nginx/sites-enabled/babybuddy sudo service nginx restart -1. That's it (hopefully)! :tada: \ No newline at end of file +1. That's it (hopefully)! :tada: diff --git a/locale/es/LC_MESSAGES/django.mo b/locale/es/LC_MESSAGES/django.mo index efdf6f38..4d210bef 100644 Binary files a/locale/es/LC_MESSAGES/django.mo and b/locale/es/LC_MESSAGES/django.mo differ diff --git a/locale/es/LC_MESSAGES/django.po b/locale/es/LC_MESSAGES/django.po index fa637e3b..d2d42970 100644 --- a/locale/es/LC_MESSAGES/django.po +++ b/locale/es/LC_MESSAGES/django.po @@ -1,13 +1,11 @@ msgid "" msgstr "" -"Project-Id-Version: Baby Buddy\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-10-15 15:42+0000\n" -"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: POEditor.com\n" +"Project-Id-Version: Baby Buddy\n" +"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: babybuddy/admin.py:12 babybuddy/admin.py:13 @@ -31,10 +29,8 @@ msgid "Refresh rate" msgstr "Tasa de refresco" #: babybuddy/models.py:21 -msgid "" -"If supported by browser, the dashboard will only refresh when visible, and " -"also when receiving focus." -msgstr "" +msgid "This setting will only be used when a browser does not support refresh on focus." +msgstr "Este parámetro solo será utilizado en caso de que tu navegador no soporte la opción de refrescar al hacer foco." #: babybuddy/models.py:27 msgid "disabled" @@ -72,52 +68,11 @@ msgstr "15 min." msgid "30 min." msgstr "30 min." -#: babybuddy/models.py:38 -msgid "Hide Empty Dashboard Cards" -msgstr "" - -#: babybuddy/models.py:43 -msgid "Hide data older than" -msgstr "" - -#: babybuddy/models.py:44 -msgid "This setting controls which data will be shown in the dashboard." -msgstr "" - -#: babybuddy/models.py:50 -msgid "show all data" -msgstr "" - -#: babybuddy/models.py:51 -msgid "1 day" -msgstr "" - -#: babybuddy/models.py:52 -msgid "2 days" -msgstr "" - -#: babybuddy/models.py:53 -msgid "3 days" -msgstr "" - -#: babybuddy/models.py:54 -msgid "1 week" -msgstr "" - -#: babybuddy/models.py:55 -msgid "4 weeks" -msgstr "" - #: babybuddy/models.py:61 msgid "Language" msgstr "Idioma" -#: babybuddy/models.py:67 -msgid "Timezone" -msgstr "Zona horaria" - #: babybuddy/models.py:71 -#, python-brace-format msgid "{user}'s Settings" msgstr "Configuración de {user}" @@ -125,63 +80,19 @@ msgstr "Configuración de {user}" msgid "English" msgstr "Inglés" -#: babybuddy/settings/base.py:172 -msgid "Dutch" -msgstr "" - #: babybuddy/settings/base.py:173 msgid "French" msgstr "Francés" -#: babybuddy/settings/base.py:174 -msgid "Finnish" -msgstr "" - -#: babybuddy/settings/base.py:175 -msgid "German" -msgstr "Alemán" - -#: babybuddy/settings/base.py:176 -msgid "Italian" -msgstr "" - -#: babybuddy/settings/base.py:177 -msgid "Polish" -msgstr "" - -#: babybuddy/settings/base.py:178 -msgid "Portuguese" -msgstr "" - -#: babybuddy/settings/base.py:179 -msgid "Spanish" -msgstr "Español" - -#: babybuddy/settings/base.py:180 -msgid "Swedish" -msgstr "Sueco" - -#: babybuddy/settings/base.py:181 -msgid "Turkish" -msgstr "Turco" - #: babybuddy/templates/403.html:4 babybuddy/templates/403.html:7 msgid "Permission Denied" msgstr "Acceso denegado" #: babybuddy/templates/403.html:12 -msgid "" -"You do not have permission to access this resource. Contact a site " -"administrator for assistance." -msgstr "" -"No tienes permisos para acceder a este recurso. Contacta con un " -"administrador si necesitas ayuda." - -#: babybuddy/templates/admin/base_site.html:4 -#: babybuddy/templates/admin/base_site.html:7 -#: babybuddy/templates/babybuddy/nav-dropdown.html:277 -msgid "Database Admin" -msgstr "Administrar Base de Datos" +msgid "You do not have permission to access this resource.\n" +" Contact a site administrator for assistance." +msgstr "No tienes permiso para acceder a este recurso.\n" +"Contacta con un administrador si necesitas asistencia." #: babybuddy/templates/babybuddy/base.html:23 msgid "Home" @@ -206,21 +117,12 @@ msgstr "Enviar" #: babybuddy/templates/babybuddy/messages.html:18 #: babybuddy/templates/babybuddy/user_settings_form.html:19 -#, python-format msgid "Error: %(error)s" msgstr "Error: %(error)s" #: babybuddy/templates/babybuddy/messages.html:23 -#: babybuddy/templates/babybuddy/user_settings_form.html:26 -msgid "Error: Some fields have errors. See below for details." -msgstr "" -"Error: Algunos campos contienen errores. Mira más abajo " -"para más detalles." - -#: babybuddy/templates/babybuddy/nav-dropdown.html:32 -#: core/templates/core/timer_nav.html:18 -msgid "Quick Start Timer" -msgstr "Iniciar Temporizador Rápido" +msgid "Error: Some fields have errors. See below for details. " +msgstr "Error: Algunos campos contienen errores. Mira más abajo para más detalle." #: babybuddy/templates/babybuddy/nav-dropdown.html:51 core/models.py:165 #: core/models.py:169 @@ -250,18 +152,6 @@ msgstr "Nota" msgid "Sleep" msgstr "Sueño" -#: babybuddy/templates/babybuddy/nav-dropdown.html:75 -#: babybuddy/templates/babybuddy/nav-dropdown.html:158 core/models.py:363 -#: core/models.py:377 core/models.py:378 core/models.py:381 -#: core/templates/core/temperature_confirm_delete.html:7 -#: core/templates/core/temperature_form.html:13 -#: core/templates/core/temperature_list.html:4 -#: core/templates/core/temperature_list.html:7 -#: core/templates/core/temperature_list.html:12 -#: core/templates/core/temperature_list.html:29 -msgid "Temperature" -msgstr "Temperatura" - #: babybuddy/templates/babybuddy/nav-dropdown.html:81 #: babybuddy/templates/babybuddy/nav-dropdown.html:238 #: babybuddy/templates/babybuddy/welcome.html:50 core/models.py:531 @@ -291,13 +181,6 @@ msgstr "Tiempo boca a bajo" msgid "Weight" msgstr "Peso" -#: babybuddy/templates/babybuddy/nav-dropdown.html:111 -#: core/templates/timeline/timeline.html:4 -#: core/templates/timeline/timeline.html:7 -#: dashboard/templates/dashboard/child_button_group.html:9 -msgid "Timeline" -msgstr "" - #: babybuddy/templates/babybuddy/nav-dropdown.html:122 #: babybuddy/templates/babybuddy/nav-dropdown.html:130 core/models.py:105 #: core/templates/core/child_confirm_delete.html:7 @@ -330,10 +213,6 @@ msgstr "Niño" msgid "Notes" msgstr "Notas" -#: babybuddy/templates/babybuddy/nav-dropdown.html:164 -msgid "Temperature reading" -msgstr "Lectura de temperatura" - #: babybuddy/templates/babybuddy/nav-dropdown.html:178 msgid "Weight entry" msgstr "Introducir peso" @@ -401,6 +280,10 @@ msgstr "Navegador API" msgid "Users" msgstr "Usuarios" +#: babybuddy/templates/babybuddy/nav-dropdown.html:250 +msgid "Backend Admin" +msgstr "Administrar Backend" + #: babybuddy/templates/babybuddy/nav-dropdown.html:279 msgid "Support" msgstr "Soporte" @@ -471,13 +354,8 @@ msgstr "Eliminar" #: core/templates/core/timer_confirm_delete.html:17 #: core/templates/core/tummytime_confirm_delete.html:14 #: core/templates/core/weight_confirm_delete.html:14 -#, python-format -msgid "" -"

Are you sure you want to delete %(object)s?

" -msgstr "" -"

¿Estás seguro de querer eliminar %(object)s?

" +msgid "

Are you sure you want to delete %(object)s?

" +msgstr "

¿Estás seguro de querer eliminar %(object)s?

" #: babybuddy/templates/babybuddy/user_confirm_delete.html:19 #: core/templates/core/child_confirm_delete.html:32 @@ -521,7 +399,6 @@ msgstr "Actualizar" #: core/templates/core/timer_form.html:18 #: core/templates/core/tummytime_form.html:23 #: core/templates/core/weight_form.html:23 -#, python-format msgid "

Update %(object)s

" msgstr "

Actualizar %(object)s

" @@ -582,6 +459,11 @@ msgstr "Cambiar Contraseña" msgid "User Settings" msgstr "Configuración del Usuario" +#: babybuddy/templates/babybuddy/messages.html:23 +#: babybuddy/templates/babybuddy/user_settings_form.html:26 +msgid "Error: Some fields have errors. See below for details." +msgstr "Error: Algunos campos contienen errores. Mira más abajo para más detalles." + #: babybuddy/templates/babybuddy/user_settings_form.html:33 msgid "User Profile" msgstr "Perfil del Usuario" @@ -608,12 +490,10 @@ msgid "Welcome to Baby Buddy!" msgstr "¡Bienvenido a Baby Buddy!" #: babybuddy/templates/babybuddy/welcome.html:14 -msgid "" -"Learn about and predict baby's needs without (as much) guess work " -"by using Baby Buddy to track —" -msgstr "" -"Aprende a predecir las necesidades de tu bebé sin tener que adivinar " -"haciendo track con Baby Buddy —" +msgid "Learn about and predict baby's needs without\n" +" (as much) guess work by using Baby Buddy to track —" +msgstr "Aprende y predice las necesidades de tu bebé sin\n" +" tener que adivinar (tanto) usando Baby Buddy —" #: babybuddy/templates/babybuddy/welcome.html:26 core/models.py:166 #: core/templates/core/diaperchange_confirm_delete.html:7 @@ -625,20 +505,19 @@ msgstr "" msgid "Diaper Changes" msgstr "Cambios de Pañal" -#: babybuddy/templates/babybuddy/welcome.html:56 -msgid "" -"As the amount of entries grows, Baby Buddy will help parents and caregivers " -"to identify small patterns in baby's habits using the dashboard and graphs. " -"Baby Buddy is mobile-friendly and uses a dark theme to help weary moms and " -"dads with 2AM feedings and changings. To get started, just click the button " -"below to add your first (or second, third, etc.) child!" -msgstr "" -"A medida que el número de entradas crece, Baby Buddy ayudará a los padres y " -"cuidadores a identificar pequeños patrones y hábitos del bebé usando los " -"dashboards y gráficas. Baby buddy funciona en el móvil y usa un tema oscuro " -"para ayudar a los padres y madres en las tomas y cambios de las 2 de la " -"mañana. Para comenzar, haz click en el botón y añade tu primer (o segundo, o " -"tercer) hijo!" +#: babybuddy/templates/babybuddy/welcome.html:54 +msgid "As the amount of entries grows, Baby Buddy will help\n" +" parents and caregivers to identify small patterns in baby's habits\n" +" using the dashboard and graphs. Baby Buddy is mobile-friendly and\n" +" uses a dark theme to help weary moms and dads with 2AM feedings and\n" +" changings. To get started, just click the button below to add your\n" +" first (or second, third, etc.) child!" +msgstr "A medida que las entradas van aumentando, Baby Buddy ayudará\n" +" a padres y cuidadores a identificar pequeños patrones en los hábitos\n" +" del bebé usando las gráficas y el dashboard. Baby Buddy funciona en\n" +" el móvil y usa un tema oscuro para ayudar a las mamás y papás cansados\n" +" con las tomas y cambios de las 2 de la mañana. Para empezar, haz click\n" +" en el enlace más abajo para añadir tu primer (o segundo, tercero, etc.) hijo!" #: babybuddy/templates/babybuddy/welcome.html:68 #: core/templates/core/child_form.html:8 core/templates/core/child_form.html:18 @@ -670,12 +549,10 @@ msgstr "Iniciar Sesión" msgid "Password Reset" msgstr "Resetear Contraseña" -#: babybuddy/templates/registration/password_reset_confirm.html:13 -msgid "" -"Oh snap! The two passwords did not match. Please try again." -msgstr "" -"¡Vaya! Las dos contraseñas no coinciden. Por favor, " -"inténtalo otra vez." +#: babybuddy/templates/registration/password_reset_confirm.html:12 +msgid "

Oh snap! The\n" +" two passwords did not match. Please try again.

" +msgstr "

¡Vaya! Las contraseñas no coinciden. Por favor, inténtalo de nuevo.

" #: babybuddy/templates/registration/password_reset_confirm.html:22 msgid "Enter your new password in each field below." @@ -690,46 +567,41 @@ msgstr "Resetear Contraseña" msgid "Reset Email Sent" msgstr "Correo de reseteo enviado" -#: babybuddy/templates/registration/password_reset_done.html:9 -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Te hemos enviado por email las instrucciones para establecer tu contraseña, " -"si la cuenta que has introducido existe. Deberías recibirlo en breve." - -#: babybuddy/templates/registration/password_reset_done.html:15 -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Si no recibes el email, asegúrate de haber introducido la dirección de " -"correo con la que te has registrado y comprueba tu carpeta de spam." +#: babybuddy/templates/registration/password_reset_done.html:8 +msgid "

We've emailed you instructions for setting your\n" +" password, if an account exists with the email you entered. You\n" +" should receive them shortly.

\n" +"

If you don't receive an email, please make sure you've\n" +" entered the address you registered with, and check your spam\n" +" folder.

" +msgstr "

Te hemos enviado instrucciones para configurar tu\n" +" contraseña, si la cuenta existe y coincide con el email introducido, \n" +" deberías recibirlas en breve.

\n" +"

Si no recibes el email, por favor comprueba que\n" +" has introducido el email con el que te has registrado y tu carpeta\n" +" de spam.

" #: babybuddy/templates/registration/password_reset_form.html:4 msgid "Forgot Password" msgstr "Contraseña Olvidada" -#: babybuddy/templates/registration/password_reset_form.html:9 -msgid "" -"Enter your account email address in the form below. If the address is valid, " -"you will receive instructions for resetting your password." -msgstr "" -"Introduce tu dirección de correo electrónico en el siguiente formulario. Si " -"la dirección es válida, recibirás instrucciones para respetar tu contraseña." +#: babybuddy/templates/registration/password_reset_form.html:8 +msgid "

Enter your account email address in the\n" +" form below. If the address is valid, you will receive instructions for\n" +" resetting your password.

" +msgstr "

Introduce tu dirección de email en el siguiente \n" +" formulario. Si la direción es valida, recibirás las instrucciones\n" +" para resetear tu contraseña.

" #: babybuddy/views.py:66 -#, python-format msgid "User %(username)s added!" msgstr "¡Se ha añadido el usuario %(username)s!" #: babybuddy/views.py:76 -#, python-format msgid "User %(username)s updated." msgstr "¡Se ha actualizado el usuario %(username)s!" #: babybuddy/views.py:88 -#, python-brace-format msgid "User {user} deleted." msgstr "Usuario {user} eliminado." @@ -826,11 +698,6 @@ msgstr "Amarillo" msgid "Color" msgstr "Color" -#: core/models.py:157 core/models.py:235 -#: core/templates/core/diaperchange_list.html:31 -msgid "Amount" -msgstr "Cantidad" - #: core/models.py:187 msgid "Wet and/or solid is required." msgstr "Se requiere mojado y/o sólido." @@ -859,14 +726,6 @@ msgstr "Leche de pecho" msgid "Formula" msgstr "Fórmula" -#: core/models.py:217 -msgid "Fortified breast milk" -msgstr "Leche de pecho fortificada" - -#: core/models.py:218 -msgid "Solid food" -msgstr "" - #: core/models.py:221 core/templates/core/feeding_list.html:30 msgid "Type" msgstr "Tipo" @@ -883,22 +742,19 @@ msgstr "Pecho izquierdo" msgid "Right breast" msgstr "Pecho derecho" -#: core/models.py:228 -msgid "Both breasts" -msgstr "Ambos pechos" - -#: core/models.py:229 -msgid "Parent fed" -msgstr "" - -#: core/models.py:230 -msgid "Self fed" -msgstr "" - #: core/models.py:233 core/templates/core/feeding_list.html:29 msgid "Method" msgstr "Método" +#: core/models.py:157 core/models.py:235 +#: core/templates/core/diaperchange_list.html:31 +msgid "Amount" +msgstr "Cantidad" + +#: core/models.py:243 +msgid "Only \"Bottle\" method is allowed with \"Formula\" type." +msgstr "Solo se permite método \"botella\" para el tipo \"Fórmula\"." + #: core/models.py:401 core/templates/core/timer_list.html:25 msgid "Name" msgstr "Nombre" @@ -917,7 +773,6 @@ msgid "Timers" msgstr "Temporizadores" #: core/models.py:440 -#, python-brace-format msgid "Timer #{id}" msgstr "Temporizador #{id}" @@ -953,9 +808,9 @@ msgstr "Nacimiento" msgid "Age" msgstr "Edad" -#: core/templates/core/child_list.html:15 -msgid "Add Child" -msgstr "Añadir Niño" +#: core/templates/timeline/_timeline.html:33 +msgid "%(since)s ago (%(time)s)" +msgstr "hace %(since)s (%(time)s)" #: core/templates/core/child_list.html:27 msgid "Birth Date" @@ -985,18 +840,14 @@ msgstr "Añadir un Cambio de Pañal" msgid "Add" msgstr "Añadir" -#: core/templates/core/diaperchange_list.html:15 -msgid "Add Diaper Change" -msgstr "Añadir Cambio de Pañal" - -#: core/templates/core/diaperchange_list.html:29 -msgid "Contents" -msgstr "" - #: core/templates/core/diaperchange_list.html:73 msgid "No diaper changes found." msgstr "No se han encontrado cambios de pañal." +#: core/templates/core/diaperchange_list.html:63 +msgid "Add a Change" +msgstr "Añadir Cambio" + #: core/templates/core/feeding_confirm_delete.html:4 msgid "Delete a Feeding" msgstr "Eliminar una Toma" @@ -1010,10 +861,6 @@ msgstr "Actualizar una Toma" msgid "Add a Feeding" msgstr "Añadir una Toma" -#: core/templates/core/feeding_list.html:15 -msgid "Add Feeding" -msgstr "Añadir Toma" - #: core/templates/core/feeding_list.html:33 msgid "Amt." msgstr "Cant." @@ -1034,10 +881,6 @@ msgstr "Actualizar una Nota" msgid "Add a Note" msgstr "Añadir una Nota" -#: core/templates/core/note_list.html:15 -msgid "Add Note" -msgstr "Añadir Nota" - #: core/templates/core/note_list.html:60 msgid "No notes found." msgstr "No se han encontrado notas." @@ -1054,22 +897,18 @@ msgstr "Actualizar Entrada de Sueño" msgid "Add a Sleep Entry" msgstr "Añadir Entrada de Sueño" -#: core/templates/core/sleep_list.html:15 -msgid "Add Sleep" -msgstr "Añadir Sueño" - #: core/templates/core/sleep_list.html:25 #: core/templates/core/timer_form.html:12 #: core/templates/core/timer_list.html:24 #: core/templates/core/tummytime_list.html:24 msgid "Start" -msgstr "Iniciar" +msgstr "Inicio" #: core/templates/core/sleep_list.html:26 #: core/templates/core/timer_list.html:30 #: core/templates/core/tummytime_list.html:25 msgid "End" -msgstr "Finalizar" +msgstr "Fin" #: core/templates/core/sleep_list.html:31 msgid "Nap" @@ -1079,45 +918,10 @@ msgstr "Siesta" msgid "No sleep entries found." msgstr "No se han encontrado entradas de sueño." -#: core/templates/core/temperature_confirm_delete.html:4 -msgid "Delete a Temperature Reading" -msgstr "Eliminar Lectura de Temperatura" - -#: core/templates/core/temperature_form.html:8 -#: core/templates/core/temperature_form.html:17 -msgid "Add a Temperature Reading" -msgstr "Añadir Lectura de Temperatura" - -#: core/templates/core/temperature_form.html:27 -msgid "Add a Temperature Entry" -msgstr "Añadir Entrada de Temperatura" - -#: core/templates/core/temperature_list.html:15 -msgid "Add Temperature Reading" -msgstr "Añadir Lectura de Temperatura" - -#: core/templates/core/temperature_list.html:66 -msgid "No temperature entries found." -msgstr "No se han encontrada registros de temperatura." - #: core/templates/core/timer_confirm_delete.html:5 -#, python-format msgid "Delete %(object)s" msgstr "Eliminar %(object)s" -#: core/templates/core/timer_confirm_delete_inactive.html:5 -msgid "Delete All Inactive Timers" -msgstr "Eliminar Todos los Temporizadores Inactivos" - -#: core/templates/core/timer_confirm_delete_inactive.html:10 -msgid "Delete Inactive" -msgstr "Eliminar Inactivo" - -#: core/templates/core/timer_confirm_delete_inactive.html:17 -#, python-format -msgid "Are you sure you want to delete %(number)s inactive timer%(plural)s?" -msgstr "" - #: core/templates/core/timer_detail.html:28 msgid "Started" msgstr "Iniciado" @@ -1126,23 +930,14 @@ msgstr "Iniciado" msgid "Stopped" msgstr "Parado" -#: core/templates/core/timer_detail.html:34 -#, python-format -msgid "%(timer)s created by %(user)s" -msgstr "%(timer)s creados por %(user)s" +#: core/templates/core/timer_detail.html:26 +msgid "%(timer)s created by %(object.user)s" +msgstr "%(timer)s creado por %(object.user)s" #: core/templates/core/timer_detail.html:63 msgid "Timer actions" msgstr "Acciones de temporizador" -#: core/templates/core/timer_detail.html:77 -msgid "Restart timer" -msgstr "" - -#: core/templates/core/timer_detail.html:84 -msgid "Delete timer" -msgstr "" - #: core/templates/core/timer_form.html:22 #: core/templates/core/timer_list.html:15 core/templates/core/timer_nav.html:23 msgid "Start Timer" @@ -1152,9 +947,10 @@ msgstr "Iniciar Temporizador" msgid "No timer entries found." msgstr "No se han encontrado temporizadores." -#: core/templates/core/timer_list.html:68 -msgid "Delete Inactive Timers" -msgstr "Eliminar Temporizadores Inactivos" +#: babybuddy/templates/babybuddy/nav-dropdown.html:32 +#: core/templates/core/timer_nav.html:18 +msgid "Quick Start Timer" +msgstr "Iniciar Temporizador Rápido" #: core/templates/core/timer_nav.html:28 msgid "View Timers" @@ -1191,10 +987,6 @@ msgstr "Actualizar entrada de Tiempo Boca Abajo" msgid "Add a Tummy Time Entry" msgstr "Añadir entrada de Tiempo Boca Abajo" -#: core/templates/core/tummytime_list.html:15 -msgid "Add Tummy Time" -msgstr "Añadir Tiempo Boca Abajo" - #: core/templates/core/tummytime_list.html:63 msgid "No tummy time entries found." msgstr "No se han encontrado entradas de tiempo boca abajo." @@ -1209,161 +1001,76 @@ msgstr "Eliminar Entrada de Peso" msgid "Add a Weight Entry" msgstr "Añadir Entrada de Peso" -#: core/templates/core/weight_list.html:15 -msgid "Add Weight" -msgstr "Añadir Peso" - #: core/templates/core/weight_list.html:66 msgid "No weight entries found." msgstr "No se han encontrado entradas de peso." -#: core/templates/timeline/_timeline.html:33 -#, python-format -msgid "%(since)s ago (%(time)s)" -msgstr "hace %(since)s (%(time)s)" - -#: core/templatetags/datetime.py:42 -msgid "Today" -msgstr "hoy" - -#: core/templatetags/datetime.py:56 -msgid "{}, {}" -msgstr "" - -#: core/templatetags/duration.py:23 -msgid "0 days" -msgstr "" - -#: core/timeline.py:43 -#, python-format -msgid "%(child)s started tummy time!" -msgstr "¡%(child)s ha empezado tiempo boca abajo!" - -#: core/timeline.py:53 -#, python-format -msgid "%(child)s finished tummy time." -msgstr "%(child)s ha finalizado tiempo boca abajo." - -#: core/timeline.py:76 -#, python-format -msgid "%(child)s fell asleep." -msgstr "%(child)s se ha dormido." - -#: core/timeline.py:86 -#, python-format -msgid "%(child)s woke up." -msgstr "%(child)s se ha despertado." - -#: core/timeline.py:119 -#, python-format -msgid "Amount: %(amount).0f" -msgstr "" +#: core/timeline.py:164 +msgid "%(child)s had a diaper change." +msgstr "%(child)s ha tenido un cambio de pañal." #: core/timeline.py:124 -#, python-format msgid "%(child)s started feeding." msgstr "%(child)s ha empezado una toma." #: core/timeline.py:135 -#, python-format msgid "%(child)s finished feeding." msgstr "%(child)s ha finalizado una toma." -#: core/timeline.py:157 -#, python-format -msgid "Contents: %(contents)s" -msgstr "" +#: core/timeline.py:76 +msgid "%(child)s fell asleep." +msgstr "%(child)s se ha dormido." -#: core/timeline.py:164 -#, python-format -msgid "%(child)s had a diaper change." -msgstr "%(child)s ha tenido un cambio de pañal." +#: core/timeline.py:86 +msgid "%(child)s woke up." +msgstr "%(child)s se ha despertado." -#: core/utils.py:15 -#, python-format -msgid "%(hours)s hour" -msgid_plural "%(hours)s hours" -msgstr[0] "%(hours)s hora" -msgstr[1] "%(hours)s horas" +#: core/timeline.py:43 +msgid "%(child)s started tummy time!" +msgstr "¡%(child)s ha empezado tiempo boca abajo!" -#: core/utils.py:22 -#, python-format -msgid "%(minutes)s minute" -msgid_plural "%(minutes)s minutes" -msgstr[0] "%(minutes)s minuto" -msgstr[1] "%(minutes)s minutos" - -#: core/utils.py:30 -#, python-format -msgid "%(seconds)s second" -msgid_plural "%(seconds)s seconds" -msgstr[0] "%(seconds)s segundo" -msgstr[1] "%(seconds)s segundos" +#: core/timeline.py:53 +msgid "%(child)s finished tummy time." +msgstr "%(child)s ha finalizado tiempo boca abajo." #: core/views.py:34 -#, python-format msgid "%(model)s entry for %(child)s added!" msgstr "¡%(model)s entrada para %(child)s añadida!" #: core/views.py:36 -#, python-format msgid "%(model)s entry added!" msgstr "¡%(model)s entrada añadida!" #: core/views.py:63 -#, python-format msgid "%(model)s entry for %(child)s updated." msgstr "%(model)s entrada para %(child)s actualizada." #: core/views.py:65 -#, python-format msgid "%(model)s entry updated." msgstr "%(model)s entrada actualizada." -#: core/views.py:75 core/views.py:126 -#, python-format -msgid "%(model)s entry deleted." -msgstr "%(model)s entradas borradas." - #: core/views.py:95 -#, python-format msgid "%(first_name)s %(last_name)s added!" msgstr "¡%(first_name)s %(last_name)s añadido!" -#: core/views.py:257 -#, python-format -msgid "%(model)s reading added!" -msgstr "%(model)s lectura añadida!" - -#: core/views.py:265 -#, python-format -msgid "%(model)s reading for %(child)s updated." -msgstr "%(model)s lectura para %(child)s actualizada." - #: core/views.py:371 -#, python-format msgid "%(timer)s stopped." msgstr "%(timer)s parado." -#: core/views.py:395 -msgid "All inactive timers deleted." -msgstr "Todos los temporizadores inactivos eliminados." - -#: core/views.py:405 -msgid "No inactive timers exist." -msgstr "No hay temporizadores inactivos." - #: dashboard/templates/cards/diaperchange_last.html:6 msgid "Last Diaper Change" -msgstr "Ultimo Cambio Pañal" +msgstr "Último Cambio Pañal" -#: dashboard/templates/cards/diaperchange_last.html:12 -#: dashboard/templates/cards/feeding_last.html:12 -#: dashboard/templates/cards/sleep_last.html:12 -#: dashboard/templates/cards/tummytime_last.html:13 -#, python-format -msgid "
%(since)s ago
%(time)s" -msgstr "" +#: dashboard/templates/cards/diaperchange_last.html:8 +#: dashboard/templates/cards/feeding_last.html:8 +#: dashboard/templates/cards/sleep_last.html:8 +#: dashboard/templates/cards/tummytime_last.html:8 +msgid "%(time)s ago" +msgstr "hace %(time)s" + +#: dashboard/templates/cards/tummytime_last.html:18 +msgid "Never" +msgstr "Nunca" #: dashboard/templates/cards/diaperchange_types.html:14 msgid "Past Week" @@ -1386,55 +1093,40 @@ msgid "yesterday" msgstr "ayer" #: dashboard/templates/cards/diaperchange_types.html:42 -#, python-format msgid "%(key)s days ago" msgstr "hace %(key)s días" -#: dashboard/templates/cards/feeding_day.html:6 -msgid "Today's Feeding" -msgstr "" - -#: dashboard/templates/cards/feeding_day.html:20 -#, python-format -msgid "%(count)s feeding entries" -msgstr "" - #: dashboard/templates/cards/feeding_last.html:6 msgid "Last Feeding" -msgstr "Ultima Toma" +msgstr "Última Toma" #: dashboard/templates/cards/feeding_last_method.html:6 msgid "Last Feeding Method" -msgstr "Ultimo Método de Toma" - -#: dashboard/templates/cards/feeding_last_method.html:19 -msgid "most recent" -msgstr "most recent" - -#: dashboard/templates/cards/feeding_last_method.html:21 -#, python-format -msgid "%(n)s feeding%(plural)s ago" -msgstr "hace %(n)s toma%(plural)s" +msgstr "Último Método de Toma" #: dashboard/templates/cards/sleep_day.html:6 msgid "Today's Sleep" msgstr "Sueño Hoy" +#: dashboard/templates/cards/sleep_day.html:11 +#: dashboard/templates/cards/sleep_naps_day.html:13 +#: dashboard/templates/cards/tummytime_day.html:11 +msgid "None yet today" +msgstr "Ninguno hoy todavía" + #: dashboard/templates/cards/sleep_day.html:20 -#, python-format msgid "%(count)s sleep entries" msgstr "%(count)s entradas de sueño" -#: dashboard/templates/cards/sleep_last.html:6 -msgid "Last Sleep" -msgstr "Último sueño" +#: dashboard/templates/cards/sleep_last.html:4 +msgid "Last Slept" +msgstr "Último Sueño" #: dashboard/templates/cards/sleep_naps_day.html:6 msgid "Today's Naps" msgstr "Siestas de Hoy" #: dashboard/templates/cards/sleep_naps_day.html:12 -#, python-format msgid "%(count)s nap%(plural)s" msgstr "%(count)s siesta%(plural)s" @@ -1446,50 +1138,30 @@ msgstr "Estadísticas" msgid "Not enough data" msgstr "No hay suficientes datos" -#: dashboard/templates/cards/statistics.html:42 -msgid "No data yet" -msgstr "" - #: dashboard/templates/cards/timer_list.html:12 -#, python-format msgid "%(count)s active timer%(plural)s" msgstr "%(count)s temporizador%(plural)s activo%(plural)s" -#: dashboard/templates/cards/timer_list.html:25 -#, python-format -msgid "Started by %(user)s at %(start)s" -msgstr "Iniciado por %(user)s el %(start)s" +#: dashboard/templates/cards/timer_list.html:19 +msgid "Started by %(instance.user)s at %(start)s" +msgstr "Iniciado por %(instance.user)s a las %(start)s" #: dashboard/templates/cards/tummytime_day.html:6 msgid "Today's Tummy Time" msgstr "Tiempo Boca Abajo Hoy" #: dashboard/templates/cards/tummytime_day.html:22 -#, python-format msgid "%(duration)s at %(end)s" msgstr "%(duration)s en %(end)s" #: dashboard/templates/cards/tummytime_last.html:6 msgid "Last Tummy Time" -msgstr "Ultimo Tiempo Boca Abajo" - -#: dashboard/templates/cards/tummytime_last.html:18 -msgid "Never" -msgstr "Nunca" +msgstr "Último Tiempo Boca Abajo" #: dashboard/templates/dashboard/child_button_group.html:3 msgid "Child actions" msgstr "Acciones de niño" -#: dashboard/templates/dashboard/child_button_group.html:17 -#: reports/templates/reports/report_base.html:9 -msgid "Reports" -msgstr "Reportes" - -#: dashboard/templates/dashboard/child_button_group.html:23 -msgid "Diaper Change Amounts" -msgstr "Cantidades de Cambio de Pañal" - #: dashboard/templates/dashboard/child_button_group.html:24 #: reports/templates/reports/diaperchange_types.html:4 #: reports/templates/reports/diaperchange_types.html:8 @@ -1502,12 +1174,6 @@ msgstr "Tipos de Cambio de Pañal" msgid "Diaper Lifetimes" msgstr "Duración Pañal" -#: dashboard/templates/dashboard/child_button_group.html:26 -#: reports/templates/reports/feeding_amounts.html:4 -#: reports/templates/reports/feeding_amounts.html:8 -msgid "Feeding Amounts" -msgstr "Cantidad de Tomas" - #: dashboard/templates/dashboard/child_button_group.html:27 msgid "Feeding Durations (Average)" msgstr "Duración de Tomas (Media)" @@ -1524,18 +1190,14 @@ msgstr "Patrón de Sueño" msgid "Sleep Totals" msgstr "Totales de Sueño" -#: dashboard/templates/dashboard/child_button_group.html:30 -msgid "Tummy Time Durations (Sum)" -msgstr "" - -#: dashboard/templates/dashboard/child_button_group.html:38 -msgid "Edit" -msgstr "" - #: dashboard/templatetags/cards.py:277 msgid "Diaper change frequency" msgstr "Frecuencia de cambio de pañal" +#: dashboard/templatetags/cards.py:371 +msgid "Feeding frequency" +msgstr "Frecuencia de tomas" + #: dashboard/templatetags/cards.py:292 msgid "Average nap duration" msgstr "Duración media siesta" @@ -1556,30 +1218,6 @@ msgstr "Duración media despierto" msgid "Weight change per week" msgstr "Cambio de peso por semana" -#: dashboard/templatetags/cards.py:361 -msgid "Feeding frequency (past 3 days)" -msgstr "" - -#: dashboard/templatetags/cards.py:365 -msgid "Feeding frequency (past 2 weeks)" -msgstr "" - -#: dashboard/templatetags/cards.py:371 -msgid "Feeding frequency" -msgstr "Frecuencia de tomas" - -#: reports/graphs/diaperchange_amounts.py:27 -msgid "Diaper change amount" -msgstr "Cantidad de Cambio de Pañal" - -#: reports/graphs/diaperchange_amounts.py:36 -msgid "Diaper Change Amounts" -msgstr "Cantidades de Cambio de Pañal" - -#: reports/graphs/diaperchange_amounts.py:39 -msgid "Change amount" -msgstr "Cambiar cantidad" - #: reports/graphs/diaperchange_lifetimes.py:35 msgid "Diaper Lifetimes" msgstr "Duración Pañal" @@ -1600,18 +1238,6 @@ msgstr "Tipo de Cambio de Pañal" msgid "Number of changes" msgstr "Número de cambios" -#: reports/graphs/feeding_amounts.py:27 -msgid "Total feeding amount" -msgstr "Total cantidad toma" - -#: reports/graphs/feeding_amounts.py:36 -msgid "Total Feeding Amounts" -msgstr "Cantidad Total Tomas" - -#: reports/graphs/feeding_amounts.py:39 -msgid "Feeding amount" -msgstr "Cantidad toma" - #: reports/graphs/feeding_duration.py:36 msgid "Average duration" msgstr "Duración media" @@ -1652,42 +1278,433 @@ msgstr "Totales de Sueño" msgid "Hours of sleep" msgstr "Horas de sueño" -#: reports/graphs/tummytime_duration.py:32 -msgid "Total duration" -msgstr "" - -#: reports/graphs/tummytime_duration.py:39 -#: reports/graphs/tummytime_duration.py:53 -msgid "Number of sessions" -msgstr "" - -#: reports/graphs/tummytime_duration.py:48 -msgid "Total Tummy Time Durations" -msgstr "" - -#: reports/graphs/tummytime_duration.py:51 -msgid "Total duration (minutes)" -msgstr "" - #: reports/graphs/weight_weight.py:27 msgid "Weight" msgstr "Peso" -#: reports/templates/reports/diaperchange_amounts.html:4 -#: reports/templates/reports/diaperchange_amounts.html:8 -msgid "Diaper Amounts" -msgstr "Cantidades de Pañal" - #: reports/templates/reports/feeding_duration.html:4 #: reports/templates/reports/feeding_duration.html:8 msgid "Average Feeding Durations" msgstr "Duración Media Tomas" +#: dashboard/templates/dashboard/child_button_group.html:17 +#: reports/templates/reports/report_base.html:9 +msgid "Reports" +msgstr "Reportes" + +#: reports/templates/reports/report_base.html:19 +msgid "There is no enough data to generate this report." +msgstr "No hay suficientes datos para generar este reporte." + +#: core/models.py:228 +msgid "Both breasts" +msgstr "Ambos pechos" + +#: babybuddy/settings/base.py:175 +msgid "German" +msgstr "Alemán" + +#: babybuddy/settings/base.py:179 +msgid "Spanish" +msgstr "Español" + +#: babybuddy/settings/base.py:180 +msgid "Swedish" +msgstr "Sueco" + +#: babybuddy/settings/base.py:181 +msgid "Turkish" +msgstr "Turco" + +#: babybuddy/templates/403.html:12 +msgid "You do not have permission to access this resource. Contact a site administrator for assistance." +msgstr "No tienes permisos para acceder a este recurso. Contacta con un administrador si necesitas ayuda." + +#: babybuddy/templates/babybuddy/nav-dropdown.html:75 +#: babybuddy/templates/babybuddy/nav-dropdown.html:158 core/models.py:363 +#: core/models.py:377 core/models.py:378 core/models.py:381 +#: core/templates/core/temperature_confirm_delete.html:7 +#: core/templates/core/temperature_form.html:13 +#: core/templates/core/temperature_list.html:4 +#: core/templates/core/temperature_list.html:7 +#: core/templates/core/temperature_list.html:12 +#: core/templates/core/temperature_list.html:29 +msgid "Temperature" +msgstr "Temperatura" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:164 +msgid "Temperature reading" +msgstr "Lectura de temperatura" + +#: babybuddy/templates/babybuddy/welcome.html:14 +msgid "Learn about and predict baby's needs without (as much) guess work by using Baby Buddy to track —" +msgstr "Aprende a predecir las necesidades de tu bebé sin tener que adivinar haciendo track con Baby Buddy —" + +#: babybuddy/templates/babybuddy/welcome.html:56 +msgid "As the amount of entries grows, Baby Buddy will help parents and caregivers to identify small patterns in baby's habits using the dashboard and graphs. Baby Buddy is mobile-friendly and uses a dark theme to help weary moms and dads with 2AM feedings and changings. To get started, just click the button below to add your first (or second, third, etc.) child!" +msgstr "A medida que el número de entradas crece, Baby Buddy ayudará a los padres y cuidadores a identificar pequeños patrones y hábitos del bebé usando los dashboards y gráficas. Baby Buddy funciona en el móvil y usa un tema oscuro para ayudar a los padres y madres en las tomas y cambios de las 2 de la mañana. Para comenzar, haz click en el botón y añade tu primer (o segundo, o tercer) hijo!" + +#: babybuddy/templates/registration/password_reset_confirm.html:13 +msgid "Oh snap! The two passwords did not match. Please try again." +msgstr "¡Vaya! Las dos contraseñas no coinciden. Por favor, inténtalo otra vez." + +#: babybuddy/templates/registration/password_reset_done.html:9 +msgid "We've emailed you instructions for setting your password, if an account exists with the email you entered. You should receive them shortly." +msgstr "Te hemos enviado por email las instrucciones para establecer tu contraseña, si la cuenta que has introducido existe. Deberías recibirlo en breve." + +#: babybuddy/templates/registration/password_reset_done.html:15 +msgid "If you don't receive an email, please make sure you've entered the address you registered with, and check your spam folder." +msgstr "Si no recibes el email, asegúrate de haber introducido la dirección de correo con la que te has registrado y comprueba tu carpeta de spam." + +#: babybuddy/templates/registration/password_reset_form.html:9 +msgid "Enter your account email address in the form below. If the address is valid, you will receive instructions for resetting your password." +msgstr "Introduce tu dirección de correo electrónico en el siguiente formulario. Si la dirección es válida, recibirás instrucciones para respetar tu contraseña." + +#: core/models.py:217 +msgid "Fortified breast milk" +msgstr "Leche de pecho fortificada" + +#: core/templates/core/temperature_confirm_delete.html:4 +msgid "Delete a Temperature Reading" +msgstr "Eliminar Lectura de Temperatura" + +#: core/templates/core/temperature_form.html:8 +#: core/templates/core/temperature_form.html:17 +msgid "Add a Temperature Reading" +msgstr "Añadir Lectura de Temperatura" + +#: core/templates/core/temperature_form.html:27 +msgid "Add a Temperature Entry" +msgstr "Añadir Entrada de Temperatura" + +#: core/templates/core/temperature_list.html:66 +msgid "No temperature entries found." +msgstr "No se han encontrada registros de temperatura." + +#: core/templates/core/timer_detail.html:34 +msgid "%(timer)s created by %(user)s" +msgstr "%(timer)s creados por %(user)s" + +#: core/utils.py:15 +msgid "%(hours)s hour" +msgid_plural "%(hours)s hours" +msgstr[0] "%(hours)s hora" +msgstr[1] "%(hours)s horas" + +#: core/utils.py:22 +msgid "%(minutes)s minute" +msgid_plural "%(minutes)s minutes" +msgstr[0] "%(minutes)s minuto" +msgstr[1] "%(minutes)s minutos" + +#: core/utils.py:30 +msgid "%(seconds)s second" +msgid_plural "%(seconds)s seconds" +msgstr[0] "%(seconds)s segundo" +msgstr[1] "%(seconds)s segundos" + +#: core/views.py:75 core/views.py:126 +msgid "%(model)s entry deleted." +msgstr "%(model)s entradas borradas." + +#: core/views.py:257 +msgid "%(model)s reading added!" +msgstr "%(model)s lectura añadida!" + +#: core/views.py:265 +msgid "%(model)s reading for %(child)s updated." +msgstr "%(model)s lectura para %(child)s actualizada." + +#: dashboard/templates/cards/timer_list.html:25 +msgid "Started by %(user)s at %(start)s" +msgstr "Iniciado por %(user)s el %(start)s" + +#: dashboard/templates/dashboard/child_button_group.html:26 +#: reports/templates/reports/feeding_amounts.html:4 +#: reports/templates/reports/feeding_amounts.html:8 +msgid "Feeding Amounts" +msgstr "Cantidad de Tomas" + +#: reports/graphs/feeding_amounts.py:27 +msgid "Total feeding amount" +msgstr "Total cantidad toma" + +#: reports/graphs/feeding_amounts.py:36 +msgid "Total Feeding Amounts" +msgstr "Cantidad Total Tomas" + +#: reports/graphs/feeding_amounts.py:39 +msgid "Feeding amount" +msgstr "Cantidad toma" + #: reports/templates/reports/report_base.html:19 msgid "There is not enough data to generate this report." msgstr "No hay suficientes datos para generar este informe." +#: babybuddy/models.py:67 +msgid "Timezone" +msgstr "Zona horaria" + +#: babybuddy/templates/admin/base_site.html:4 +#: babybuddy/templates/admin/base_site.html:7 +#: babybuddy/templates/babybuddy/nav-dropdown.html:277 +msgid "Database Admin" +msgstr "Administrar Base de Datos" + +#: core/templates/core/child_list.html:15 +msgid "Add Child" +msgstr "Añadir Niño" + +#: core/templates/core/diaperchange_list.html:15 +msgid "Add Diaper Change" +msgstr "Añadir Cambio de Pañal" + +#: core/templates/core/feeding_list.html:15 +msgid "Add Feeding" +msgstr "Añadir Toma" + +#: core/templates/core/note_list.html:15 +msgid "Add Note" +msgstr "Añadir Nota" + +#: core/templates/core/sleep_list.html:15 +msgid "Add Sleep" +msgstr "Añadir Sueño" + +#: core/templates/core/temperature_list.html:15 +msgid "Add Temperature Reading" +msgstr "Añadir Lectura de Temperatura" + +#: core/templates/core/timer_confirm_delete_inactive.html:5 +msgid "Delete All Inactive Timers" +msgstr "Eliminar Todos los Temporizadores Inactivos" + +#: core/templates/core/timer_confirm_delete_inactive.html:10 +msgid "Delete Inactive" +msgstr "Eliminar Inactivo" + +#: core/templates/core/timer_confirm_delete_inactive.html:17 +msgid "Are you sure you want to delete %(number)s inactive timer%(plural)s?" +msgstr "¿Está seguro de que desea eliminar %(number) temporizador%(plural)es inactivo%(plural)s?" + +#: core/templates/core/timer_list.html:68 +msgid "Delete Inactive Timers" +msgstr "Eliminar Temporizadores Inactivos" + +#: core/templates/core/tummytime_list.html:15 +msgid "Add Tummy Time" +msgstr "Añadir Tiempo Boca Abajo" + +#: core/templates/core/weight_list.html:15 +msgid "Add Weight" +msgstr "Añadir Peso" + +#: core/views.py:395 +msgid "All inactive timers deleted." +msgstr "Todos los temporizadores inactivos eliminados." + +#: core/views.py:405 +msgid "No inactive timers exist." +msgstr "No hay temporizadores inactivos." + +#: dashboard/templates/cards/feeding_last_method.html:19 +msgid "most recent" +msgstr "most recent" + +#: dashboard/templates/cards/feeding_last_method.html:21 +msgid "%(n)s feeding%(plural)s ago" +msgstr "hace %(n)s toma%(plural)s" + +#: dashboard/templates/cards/sleep_last.html:6 +msgid "Last Sleep" +msgstr "Último sueño" + +#: dashboard/templates/dashboard/child_button_group.html:23 +msgid "Diaper Change Amounts" +msgstr "Cantidades de Cambio de Pañal" + +#: reports/graphs/diaperchange_amounts.py:27 +msgid "Diaper change amount" +msgstr "Cantidad de Cambio de Pañal" + +#: reports/graphs/diaperchange_amounts.py:36 +msgid "Diaper Change Amounts" +msgstr "Cantidades de Cambio de Pañal" + +#: reports/graphs/diaperchange_amounts.py:39 +msgid "Change amount" +msgstr "Cambiar cantidad" + +#: reports/templates/reports/diaperchange_amounts.html:4 +#: reports/templates/reports/diaperchange_amounts.html:8 +msgid "Diaper Amounts" +msgstr "Cantidades de Pañal" + +#: babybuddy/models.py:21 +msgid "If supported by browser, the dashboard will only refresh when visible, and also when receiving focus." +msgstr "Si el navegador lo soporta, el dashboard sólo se refrescará cuando esté visible y recibiendo el foco." + +#: babybuddy/models.py:38 +msgid "Hide Empty Dashboard Cards" +msgstr "Ocultar tarjetas vacías del dashboard" + +#: babybuddy/models.py:43 +msgid "Hide data older than" +msgstr "Ocultar datos más antiguos que" + +#: babybuddy/models.py:44 +msgid "This setting controls which data will be shown in the dashboard." +msgstr "Esta configuración ajusta que datos serán mostrados en el dashboard." + +#: babybuddy/models.py:50 +msgid "show all data" +msgstr "mostrar todos los datos" + +#: babybuddy/models.py:51 +msgid "1 day" +msgstr "1 día" + +#: babybuddy/models.py:52 +msgid "2 days" +msgstr "2 días" + +#: babybuddy/models.py:53 +msgid "3 days" +msgstr "3 días" + +#: babybuddy/models.py:54 +msgid "1 week" +msgstr "1 semana" + +#: babybuddy/models.py:55 +msgid "4 weeks" +msgstr "4 semanas" + +#: babybuddy/settings/base.py:172 +msgid "Dutch" +msgstr "Neerlandés" + +#: babybuddy/settings/base.py:174 +msgid "Finnish" +msgstr "Finlandés" + +#: babybuddy/settings/base.py:176 +msgid "Italian" +msgstr "Italiano" + +#: babybuddy/settings/base.py:177 +msgid "Polish" +msgstr "Polaco" + +#: babybuddy/settings/base.py:178 +msgid "Portuguese" +msgstr "Portugués" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:111 +#: core/templates/timeline/timeline.html:4 +#: core/templates/timeline/timeline.html:7 +#: dashboard/templates/dashboard/child_button_group.html:9 +msgid "Timeline" +msgstr "Cronología" + +#: core/models.py:218 +msgid "Solid food" +msgstr "Comida sólida" + +#: core/models.py:229 +msgid "Parent fed" +msgstr "Comió con ayuda" + +#: core/models.py:230 +msgid "Self fed" +msgstr "Comió solo" + +#: core/templates/core/diaperchange_list.html:29 +msgid "Contents" +msgstr "Contenidos" + +#: core/templates/core/timer_detail.html:77 +msgid "Restart timer" +msgstr "Reiniciar temporizador" + +#: core/templates/core/timer_detail.html:84 +msgid "Delete timer" +msgstr "Borrar temporizador" + +#: core/templatetags/datetime.py:42 +msgid "Today" +msgstr "hoy" + +#: core/templatetags/datetime.py:56 +msgid "{}, {}" +msgstr "{}, {}" + +#: core/templatetags/duration.py:23 +msgid "0 days" +msgstr "0 días" + +#: core/timeline.py:119 +msgid "Amount: %(amount).0f" +msgstr "Cantidad: %(amount).0f" + +#: core/timeline.py:157 +msgid "Contents: %(contents)s" +msgstr "Contenidos: %(contents)s" + +#: dashboard/templates/cards/diaperchange_last.html:12 +#: dashboard/templates/cards/feeding_last.html:12 +#: dashboard/templates/cards/sleep_last.html:12 +#: dashboard/templates/cards/tummytime_last.html:13 +msgid "
%(since)s ago
%(time)s" +msgstr "
hace %(since)s
%(time)s" + +#: dashboard/templates/cards/feeding_day.html:6 +msgid "Today's Feeding" +msgstr "Tomas de Hoy" + +#: dashboard/templates/cards/feeding_day.html:20 +msgid "%(count)s feeding entries" +msgstr "%(count)s entradas de tomas" + +#: dashboard/templates/cards/statistics.html:42 +msgid "No data yet" +msgstr "No hay datos todavía" + +#: dashboard/templates/dashboard/child_button_group.html:30 +msgid "Tummy Time Durations (Sum)" +msgstr "Tiempo Boca Abajo (Suma)" + +#: dashboard/templates/dashboard/child_button_group.html:38 +msgid "Edit" +msgstr "Editar" + +#: dashboard/templatetags/cards.py:361 +msgid "Feeding frequency (past 3 days)" +msgstr "Frecuenca de tomas (últimos 3 días)" + +#: dashboard/templatetags/cards.py:365 +msgid "Feeding frequency (past 2 weeks)" +msgstr "Frecuenca de tomas (últimas 2 semanas)" + +#: reports/graphs/tummytime_duration.py:32 +msgid "Total duration" +msgstr "Duración total" + +#: reports/graphs/tummytime_duration.py:39 +#: reports/graphs/tummytime_duration.py:53 +msgid "Number of sessions" +msgstr "Número de sesiones" + +#: reports/graphs/tummytime_duration.py:48 +msgid "Total Tummy Time Durations" +msgstr "Tiempo Boca Abajo Total" + +#: reports/graphs/tummytime_duration.py:51 +msgid "Total duration (minutes)" +msgstr "Duración total (minutos)" + #: reports/templates/reports/tummytime_duration.html:4 #: reports/templates/reports/tummytime_duration.html:8 msgid "Total Tummy Time Durations" -msgstr "" +msgstr "Duración Total Tiempo Boca Abajo" + diff --git a/openapi-schema.yml b/openapi-schema.yml index 79f8bf80..df1b37a8 100644 --- a/openapi-schema.yml +++ b/openapi-schema.yml @@ -250,24 +250,18 @@ paths: description: The initial index from which to return the results. schema: type: integer + - name: amount + required: false + in: query + description: amount + schema: + type: string - name: child required: false in: query description: child schema: type: string - - name: wet - required: false - in: query - description: wet - schema: - type: string - - name: solid - required: false - in: query - description: solid - schema: - type: string - name: color required: false in: query @@ -279,28 +273,34 @@ paths: - brown - green - yellow - - name: amount - required: false - in: query - description: amount - schema: - type: string - name: date required: false in: query description: Date schema: type: string + - name: date_max + required: false + in: query + description: Max. Date + schema: + type: string - name: date_min required: false in: query description: Min. Date schema: type: string - - name: date_max + - name: solid required: false in: query - description: Max. Date + description: solid + schema: + type: string + - name: wet + required: false + in: query + description: wet schema: type: string responses: @@ -365,24 +365,18 @@ paths: description: A unique integer value identifying this Diaper Change. schema: type: string + - name: amount + required: false + in: query + description: amount + schema: + type: string - name: child required: false in: query description: child schema: type: string - - name: wet - required: false - in: query - description: wet - schema: - type: string - - name: solid - required: false - in: query - description: solid - schema: - type: string - name: color required: false in: query @@ -394,28 +388,34 @@ paths: - brown - green - yellow - - name: amount - required: false - in: query - description: amount - schema: - type: string - name: date required: false in: query description: Date schema: type: string + - name: date_max + required: false + in: query + description: Max. Date + schema: + type: string - name: date_min required: false in: query description: Min. Date schema: type: string - - name: date_max + - name: solid required: false in: query - description: Max. Date + description: solid + schema: + type: string + - name: wet + required: false + in: query + description: wet schema: type: string responses: @@ -437,24 +437,18 @@ paths: description: A unique integer value identifying this Diaper Change. schema: type: string + - name: amount + required: false + in: query + description: amount + schema: + type: string - name: child required: false in: query description: child schema: type: string - - name: wet - required: false - in: query - description: wet - schema: - type: string - - name: solid - required: false - in: query - description: solid - schema: - type: string - name: color required: false in: query @@ -466,28 +460,34 @@ paths: - brown - green - yellow - - name: amount - required: false - in: query - description: amount - schema: - type: string - name: date required: false in: query description: Date schema: type: string + - name: date_max + required: false + in: query + description: Max. Date + schema: + type: string - name: date_min required: false in: query description: Min. Date schema: type: string - - name: date_max + - name: solid required: false in: query - description: Max. Date + description: solid + schema: + type: string + - name: wet + required: false + in: query + description: wet schema: type: string requestBody: @@ -520,24 +520,18 @@ paths: description: A unique integer value identifying this Diaper Change. schema: type: string + - name: amount + required: false + in: query + description: amount + schema: + type: string - name: child required: false in: query description: child schema: type: string - - name: wet - required: false - in: query - description: wet - schema: - type: string - - name: solid - required: false - in: query - description: solid - schema: - type: string - name: color required: false in: query @@ -549,28 +543,34 @@ paths: - brown - green - yellow - - name: amount - required: false - in: query - description: amount - schema: - type: string - name: date required: false in: query description: Date schema: type: string + - name: date_max + required: false + in: query + description: Max. Date + schema: + type: string - name: date_min required: false in: query description: Min. Date schema: type: string - - name: date_max + - name: solid required: false in: query - description: Max. Date + description: solid + schema: + type: string + - name: wet + required: false + in: query + description: wet schema: type: string responses: @@ -601,17 +601,24 @@ paths: description: child schema: type: string - - name: type + - name: end required: false in: query - description: type + description: End Date + schema: + type: string + - name: end_max + required: false + in: query + description: Max. End Date + schema: + type: string + - name: end_min + required: false + in: query + description: Min. End Date schema: type: string - enum: - - breast milk - - formula - - fortified breast milk - - solid food - name: method required: false in: query @@ -625,42 +632,35 @@ paths: - both breasts - parent fed - self fed - - name: end - required: false - in: query - description: End Date - schema: - type: string - - name: end_min - required: false - in: query - description: Min. End Date - schema: - type: string - - name: end_max - required: false - in: query - description: Max. End Date - schema: - type: string - name: start required: false in: query description: Start Date schema: type: string + - name: start_max + required: false + in: query + description: Max. End Date + schema: + type: string - name: start_min required: false in: query description: Min. Start Date schema: type: string - - name: start_end + - name: type required: false in: query - description: Max. End Date + description: type schema: type: string + enum: + - breast milk + - formula + - fortified breast milk + - solid food responses: '200': content: @@ -729,17 +729,24 @@ paths: description: child schema: type: string - - name: type + - name: end required: false in: query - description: type + description: End Date + schema: + type: string + - name: end_max + required: false + in: query + description: Max. End Date + schema: + type: string + - name: end_min + required: false + in: query + description: Min. End Date schema: type: string - enum: - - breast milk - - formula - - fortified breast milk - - solid food - name: method required: false in: query @@ -753,42 +760,35 @@ paths: - both breasts - parent fed - self fed - - name: end - required: false - in: query - description: End Date - schema: - type: string - - name: end_min - required: false - in: query - description: Min. End Date - schema: - type: string - - name: end_max - required: false - in: query - description: Max. End Date - schema: - type: string - name: start required: false in: query description: Start Date schema: type: string + - name: start_max + required: false + in: query + description: Max. End Date + schema: + type: string - name: start_min required: false in: query description: Min. Start Date schema: type: string - - name: start_end + - name: type required: false in: query - description: Max. End Date + description: type schema: type: string + enum: + - breast milk + - formula + - fortified breast milk + - solid food responses: '200': content: @@ -814,17 +814,24 @@ paths: description: child schema: type: string - - name: type + - name: end required: false in: query - description: type + description: End Date + schema: + type: string + - name: end_max + required: false + in: query + description: Max. End Date + schema: + type: string + - name: end_min + required: false + in: query + description: Min. End Date schema: type: string - enum: - - breast milk - - formula - - fortified breast milk - - solid food - name: method required: false in: query @@ -838,42 +845,35 @@ paths: - both breasts - parent fed - self fed - - name: end - required: false - in: query - description: End Date - schema: - type: string - - name: end_min - required: false - in: query - description: Min. End Date - schema: - type: string - - name: end_max - required: false - in: query - description: Max. End Date - schema: - type: string - name: start required: false in: query description: Start Date schema: type: string + - name: start_max + required: false + in: query + description: Max. End Date + schema: + type: string - name: start_min required: false in: query description: Min. Start Date schema: type: string - - name: start_end + - name: type required: false in: query - description: Max. End Date + description: type schema: type: string + enum: + - breast milk + - formula + - fortified breast milk + - solid food requestBody: content: application/json: @@ -910,17 +910,24 @@ paths: description: child schema: type: string - - name: type + - name: end required: false in: query - description: type + description: End Date + schema: + type: string + - name: end_max + required: false + in: query + description: Max. End Date + schema: + type: string + - name: end_min + required: false + in: query + description: Min. End Date schema: type: string - enum: - - breast milk - - formula - - fortified breast milk - - solid food - name: method required: false in: query @@ -934,42 +941,35 @@ paths: - both breasts - parent fed - self fed - - name: end - required: false - in: query - description: End Date - schema: - type: string - - name: end_min - required: false - in: query - description: Min. End Date - schema: - type: string - - name: end_max - required: false - in: query - description: Max. End Date - schema: - type: string - name: start required: false in: query description: Start Date schema: type: string + - name: start_max + required: false + in: query + description: Max. End Date + schema: + type: string - name: start_min required: false in: query description: Min. Start Date schema: type: string - - name: start_end + - name: type required: false in: query - description: Max. End Date + description: type schema: type: string + enum: + - breast milk + - formula + - fortified breast milk + - solid food responses: '204': description: '' @@ -1004,18 +1004,18 @@ paths: description: Date schema: type: string - - name: date_min - required: false - in: query - description: Min. Date - schema: - type: string - name: date_max required: false in: query description: Max. Date schema: type: string + - name: date_min + required: false + in: query + description: Min. Date + schema: + type: string responses: '200': content: @@ -1090,18 +1090,18 @@ paths: description: Date schema: type: string - - name: date_min - required: false - in: query - description: Min. Date - schema: - type: string - name: date_max required: false in: query description: Max. Date schema: type: string + - name: date_min + required: false + in: query + description: Min. Date + schema: + type: string responses: '200': content: @@ -1133,18 +1133,18 @@ paths: description: Date schema: type: string - - name: date_min - required: false - in: query - description: Min. Date - schema: - type: string - name: date_max required: false in: query description: Max. Date schema: type: string + - name: date_min + required: false + in: query + description: Min. Date + schema: + type: string requestBody: content: application/json: @@ -1187,18 +1187,18 @@ paths: description: Date schema: type: string - - name: date_min - required: false - in: query - description: Min. Date - schema: - type: string - name: date_max required: false in: query description: Max. Date schema: type: string + - name: date_min + required: false + in: query + description: Min. Date + schema: + type: string responses: '204': description: '' @@ -1233,36 +1233,36 @@ paths: description: End Date schema: type: string - - name: end_min - required: false - in: query - description: Min. End Date - schema: - type: string - name: end_max required: false in: query description: Max. End Date schema: type: string + - name: end_min + required: false + in: query + description: Min. End Date + schema: + type: string - name: start required: false in: query description: Start Date schema: type: string + - name: start_max + required: false + in: query + description: Max. End Date + schema: + type: string - name: start_min required: false in: query description: Min. Start Date schema: type: string - - name: start_end - required: false - in: query - description: Max. End Date - schema: - type: string responses: '200': content: @@ -1337,36 +1337,36 @@ paths: description: End Date schema: type: string - - name: end_min - required: false - in: query - description: Min. End Date - schema: - type: string - name: end_max required: false in: query description: Max. End Date schema: type: string + - name: end_min + required: false + in: query + description: Min. End Date + schema: + type: string - name: start required: false in: query description: Start Date schema: type: string + - name: start_max + required: false + in: query + description: Max. End Date + schema: + type: string - name: start_min required: false in: query description: Min. Start Date schema: type: string - - name: start_end - required: false - in: query - description: Max. End Date - schema: - type: string responses: '200': content: @@ -1398,36 +1398,36 @@ paths: description: End Date schema: type: string - - name: end_min - required: false - in: query - description: Min. End Date - schema: - type: string - name: end_max required: false in: query description: Max. End Date schema: type: string + - name: end_min + required: false + in: query + description: Min. End Date + schema: + type: string - name: start required: false in: query description: Start Date schema: type: string + - name: start_max + required: false + in: query + description: Max. End Date + schema: + type: string - name: start_min required: false in: query description: Min. Start Date schema: type: string - - name: start_end - required: false - in: query - description: Max. End Date - schema: - type: string requestBody: content: application/json: @@ -1470,36 +1470,36 @@ paths: description: End Date schema: type: string - - name: end_min - required: false - in: query - description: Min. End Date - schema: - type: string - name: end_max required: false in: query description: Max. End Date schema: type: string + - name: end_min + required: false + in: query + description: Min. End Date + schema: + type: string - name: start required: false in: query description: Start Date schema: type: string + - name: start_max + required: false + in: query + description: Max. End Date + schema: + type: string - name: start_min required: false in: query description: Min. Start Date schema: type: string - - name: start_end - required: false - in: query - description: Max. End Date - schema: - type: string responses: '204': description: '' @@ -1534,18 +1534,18 @@ paths: description: Date schema: type: string - - name: date_min - required: false - in: query - description: Min. Date - schema: - type: string - name: date_max required: false in: query description: Max. Date schema: type: string + - name: date_min + required: false + in: query + description: Min. Date + schema: + type: string responses: '200': content: @@ -1620,18 +1620,18 @@ paths: description: Date schema: type: string - - name: date_min - required: false - in: query - description: Min. Date - schema: - type: string - name: date_max required: false in: query description: Max. Date schema: type: string + - name: date_min + required: false + in: query + description: Min. Date + schema: + type: string responses: '200': content: @@ -1663,18 +1663,18 @@ paths: description: Date schema: type: string - - name: date_min - required: false - in: query - description: Min. Date - schema: - type: string - name: date_max required: false in: query description: Max. Date schema: type: string + - name: date_min + required: false + in: query + description: Min. Date + schema: + type: string requestBody: content: application/json: @@ -1717,18 +1717,18 @@ paths: description: Date schema: type: string - - name: date_min - required: false - in: query - description: Min. Date - schema: - type: string - name: date_max required: false in: query description: Max. Date schema: type: string + - name: date_min + required: false + in: query + description: Min. Date + schema: + type: string responses: '204': description: '' @@ -1751,22 +1751,16 @@ paths: description: The initial index from which to return the results. schema: type: integer - - name: child - required: false - in: query - description: child - schema: - type: string - name: active required: false in: query description: active schema: type: string - - name: user + - name: child required: false in: query - description: user + description: child schema: type: string - name: end @@ -1775,34 +1769,40 @@ paths: description: End Date schema: type: string - - name: end_min - required: false - in: query - description: Min. End Date - schema: - type: string - name: end_max required: false in: query description: Max. End Date schema: type: string + - name: end_min + required: false + in: query + description: Min. End Date + schema: + type: string - name: start required: false in: query description: Start Date schema: type: string + - name: start_max + required: false + in: query + description: Max. End Date + schema: + type: string - name: start_min required: false in: query description: Min. Start Date schema: type: string - - name: start_end + - name: user required: false in: query - description: Max. End Date + description: user schema: type: string responses: @@ -1867,22 +1867,16 @@ paths: description: A unique integer value identifying this Timer. schema: type: string - - name: child - required: false - in: query - description: child - schema: - type: string - name: active required: false in: query description: active schema: type: string - - name: user + - name: child required: false in: query - description: user + description: child schema: type: string - name: end @@ -1891,34 +1885,40 @@ paths: description: End Date schema: type: string - - name: end_min - required: false - in: query - description: Min. End Date - schema: - type: string - name: end_max required: false in: query description: Max. End Date schema: type: string + - name: end_min + required: false + in: query + description: Min. End Date + schema: + type: string - name: start required: false in: query description: Start Date schema: type: string + - name: start_max + required: false + in: query + description: Max. End Date + schema: + type: string - name: start_min required: false in: query description: Min. Start Date schema: type: string - - name: start_end + - name: user required: false in: query - description: Max. End Date + description: user schema: type: string responses: @@ -1940,22 +1940,16 @@ paths: description: A unique integer value identifying this Timer. schema: type: string - - name: child - required: false - in: query - description: child - schema: - type: string - name: active required: false in: query description: active schema: type: string - - name: user + - name: child required: false in: query - description: user + description: child schema: type: string - name: end @@ -1964,34 +1958,40 @@ paths: description: End Date schema: type: string - - name: end_min - required: false - in: query - description: Min. End Date - schema: - type: string - name: end_max required: false in: query description: Max. End Date schema: type: string + - name: end_min + required: false + in: query + description: Min. End Date + schema: + type: string - name: start required: false in: query description: Start Date schema: type: string + - name: start_max + required: false + in: query + description: Max. End Date + schema: + type: string - name: start_min required: false in: query description: Min. Start Date schema: type: string - - name: start_end + - name: user required: false in: query - description: Max. End Date + description: user schema: type: string requestBody: @@ -2024,22 +2024,16 @@ paths: description: A unique integer value identifying this Timer. schema: type: string - - name: child - required: false - in: query - description: child - schema: - type: string - name: active required: false in: query description: active schema: type: string - - name: user + - name: child required: false in: query - description: user + description: child schema: type: string - name: end @@ -2048,34 +2042,40 @@ paths: description: End Date schema: type: string - - name: end_min - required: false - in: query - description: Min. End Date - schema: - type: string - name: end_max required: false in: query description: Max. End Date schema: type: string + - name: end_min + required: false + in: query + description: Min. End Date + schema: + type: string - name: start required: false in: query description: Start Date schema: type: string + - name: start_max + required: false + in: query + description: Max. End Date + schema: + type: string - name: start_min required: false in: query description: Min. Start Date schema: type: string - - name: start_end + - name: user required: false in: query - description: Max. End Date + description: user schema: type: string responses: @@ -2112,36 +2112,36 @@ paths: description: End Date schema: type: string - - name: end_min - required: false - in: query - description: Min. End Date - schema: - type: string - name: end_max required: false in: query description: Max. End Date schema: type: string + - name: end_min + required: false + in: query + description: Min. End Date + schema: + type: string - name: start required: false in: query description: Start Date schema: type: string + - name: start_max + required: false + in: query + description: Max. End Date + schema: + type: string - name: start_min required: false in: query description: Min. Start Date schema: type: string - - name: start_end - required: false - in: query - description: Max. End Date - schema: - type: string responses: '200': content: @@ -2216,36 +2216,36 @@ paths: description: End Date schema: type: string - - name: end_min - required: false - in: query - description: Min. End Date - schema: - type: string - name: end_max required: false in: query description: Max. End Date schema: type: string + - name: end_min + required: false + in: query + description: Min. End Date + schema: + type: string - name: start required: false in: query description: Start Date schema: type: string + - name: start_max + required: false + in: query + description: Max. End Date + schema: + type: string - name: start_min required: false in: query description: Min. Start Date schema: type: string - - name: start_end - required: false - in: query - description: Max. End Date - schema: - type: string responses: '200': content: @@ -2277,36 +2277,36 @@ paths: description: End Date schema: type: string - - name: end_min - required: false - in: query - description: Min. End Date - schema: - type: string - name: end_max required: false in: query description: Max. End Date schema: type: string + - name: end_min + required: false + in: query + description: Min. End Date + schema: + type: string - name: start required: false in: query description: Start Date schema: type: string + - name: start_max + required: false + in: query + description: Max. End Date + schema: + type: string - name: start_min required: false in: query description: Min. Start Date schema: type: string - - name: start_end - required: false - in: query - description: Max. End Date - schema: - type: string requestBody: content: application/json: @@ -2349,36 +2349,36 @@ paths: description: End Date schema: type: string - - name: end_min - required: false - in: query - description: Min. End Date - schema: - type: string - name: end_max required: false in: query description: Max. End Date schema: type: string + - name: end_min + required: false + in: query + description: Min. End Date + schema: + type: string - name: start required: false in: query description: Start Date schema: type: string + - name: start_max + required: false + in: query + description: Max. End Date + schema: + type: string - name: start_min required: false in: query description: Min. Start Date schema: type: string - - name: start_end - required: false - in: query - description: Max. End Date - schema: - type: string responses: '204': description: '' diff --git a/runtime.txt b/runtime.txt index 150c4ab8..3fccded6 100644 --- a/runtime.txt +++ b/runtime.txt @@ -1 +1 @@ -python-3.9.8 \ No newline at end of file +python-3.9.9 \ No newline at end of file