···220220 raise forms.ValidationError(_("No puedes crear viajes que llegues antes de salir"))
221221 return arrival
222222223223+ def clean_free_places(self):
224224+ free_places = self.cleaned_data["free_places"]
225225+ transport = self.cleaned_data["transport"]
226226+ if transport is not None and free_places > transport.default_places:
227227+ raise forms.ValidationError(_("No puedes ofertar más plazas que las que tienes en el transporte"))
228228+ return free_places
229229+230230+223231 def save(self, commit=True, **kwargs):
224232 """When save a journey form, you have to provide an user."""
225233 user = self.user
+1-1
upvcarshare/journeys/models.py
···136136 arrival = models.DateTimeField(verbose_name=_("fecha y hora de llegada estimada*"), null=True, blank=True)
137137 time_window = models.PositiveIntegerField(
138138 verbose_name=_("ventana de tiempo"),
139139- help_text=_("Se buscaran por los viajes que salgan hasta con estos minutos de antelación"),
139139+ help_text=_("Se buscarán por los viajes que salgan hasta con estos minutos de antelación"),
140140 default=DEFAULT_TIME_WINDOW,
141141 blank=True
142142 )
+13-8
upvcarshare/notifications/models.py
···88from django.core.urlresolvers import reverse
99from django.db import models
1010from django.templatetags.l10n import localize
1111+from django.utils import timezone
1112from django.utils.html import strip_tags
1213from django.utils.safestring import mark_safe
1314from django.utils.six import python_2_unicode_compatible
1515+from django.utils.timezone import pytz
1416from django.utils.translation import ugettext_lazy as _
1517from django_extensions.db.models import TimeStampedModel
1618···6062 """Creates the text representation of the notification."""
6163 value = ""
6264 try:
6565+ time_zone = pytz.timezone("Europe/Madrid")
6666+ target_date = timezone.localtime(self.target.departure, time_zone)
6767+ target_date = localize(target_date)
6368 if self.verb == JOIN:
6469 # actor is a user and target is a journey
6570 value = _("%(user)s se ha <strong>unido</strong> al viaje <strong>%(journey)s</strong> del %(date)s") % {
6671 "user": six.text_type(self.actor),
6772 "journey": six.text_type(self.target).lower(),
6868- "date": localize(self.target.departure),
7373+ "date": target_date,
6974 }
7075 elif self.verb == LEAVE:
7176 value = _("%(user)s ha <strong>abandonado</strong> el viaje <strong>%(journey)s</strong> del %(date)s") % {
7277 "user": six.text_type(self.actor),
7378 "journey": six.text_type(self.target).lower(),
7474- "date": localize(self.target.departure),
7979+ "date": target_date,
7580 }
7681 elif self.verb == THROW_OUT:
7777- value = _("%(user)s te ha <strong>expulsado</strong> el viaje <strong>%(journey)s</strong> del %(date)s") % {
8282+ value = _("%(user)s te ha <strong>expulsado</strong> del viaje <strong>%(journey)s</strong> del %(date)s") % {
7883 "user": six.text_type(self.actor),
7984 "journey": six.text_type(self.target).lower(),
8080- "date": localize(self.target.departure),
8585+ "date": target_date,
8186 }
8287 elif self.verb == CONFIRM:
8388 value = _("%(user)s te ha <strong>confirmado</strong> para el viaje <strong>%(journey)s</strong> del %(date)s") % {
8489 "user": six.text_type(self.actor),
8590 "journey": six.text_type(self.target).lower(),
8686- "date": localize(self.target.departure),
9191+ "date": target_date,
8792 }
8893 elif self.verb == REJECT:
8994 value = _("%(user)s te ha <strong>rechazado</strong> para el viaje <strong>%(journey)s</strong> del %(date)s") % {
9095 "user": six.text_type(self.actor),
9196 "journey": six.text_type(self.target).lower(),
9292- "date": localize(self.target.departure),
9797+ "date": target_date,
9398 }
9499 elif self.verb == CANCEL:
95100 value = _("El viaje <strong>%(journey)s</strong> del %(date)s ha sido <strong>cancelado</strong>") % {
96101 "journey": six.text_type(self.actor).lower(),
9797- "date": localize(self.actor.departure),
102102+ "date": target_date,
98103 }
99104 elif self.verb == MESSAGE:
100105 value = _("%(user)s ha mandado un <strong>nuevo mensaje</strong> en <strong>%(journey)s</strong> del %(date)s") % {
101106 "user": six.text_type(self.actor),
102107 "journey": six.text_type(self.target).lower(),
103103- "date": localize(self.target.departure),
108108+ "date": target_date,
104109 }
105110 except AttributeError:
106111 pass
···4040 {% journey_item journey %}
4141 {% empty %}
4242 <h3 class="text-muted">{% trans "No hemos encontrado viajes recomendados" %}</h3>
4343- <p class="lead">{% trans "Puedes crear los viajes en los que necesitas transporte para que te mostremos aquí una lista de conducotres que pueden llevarte a tu destino." %}</p>
4343+ <p class="lead">{% trans "Puedes crear los viajes en los que necesitas transporte para que te mostremos aquí una lista de conductores que pueden llevarte a tu destino." %}</p>
4444 <a href="{% url "journeys:create" %}" class="btn btn-lg btn-primary">{% trans "Crear viaje" %}</a>
4545 {% endfor %}
4646 </div>