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"
-"span>?
"
-msgstr ""
-"¿Estás seguro de querer eliminar %(object)s"
-"span>?
"
+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