Mercurial > hgweb > health
changeset 5059:3369af2e2622
Fix bug: #62018, Appointment end before start // Remove faulty Lang.strftime method call
| author | Luis Falcon <falcon@gnuhealth.org> |
|---|---|
| date | Mon, 14 Feb 2022 13:49:09 +0000 |
| parents | 9dd94a7ecd3d |
| children | 48e9240df572 |
| files | tryton/health/health.py tryton/health_calendar/data/messages/messages.xml tryton/health_calendar/exceptions.py tryton/health_calendar/health_calendar.py tryton/health_surgery/health_surgery.py |
| diffstat | 5 files changed, 38 insertions(+), 50 deletions(-) [+] |
line wrap: on
line diff
--- a/tryton/health/health.py +++ b/tryton/health/health.py @@ -3201,40 +3201,22 @@ disease.validate_treatment_dates() def validate_disease_period(self): - Lang = Pool().get('ir.lang') - - language, = Lang.search([ - ('code', '=', Transaction().language), - ]) if (self.healed_date and self.diagnosed_date): if (self.healed_date < self.diagnosed_date): raise DateHealedBeforeDx( gettext('health.msg_healed_before_dx', - healed_date=Lang.strftime( - self.healed_date, - language.code, language.date), - diagnosed_date=Lang.strftime( - self.diagnosed_date, - language.code, language.date), + healed_date=self.healed_date, + diagnosed_date=self.diagnosed_date, ) ) def validate_treatment_dates(self): - Lang = Pool().get('ir.lang') - - language, = Lang.search([ - ('code', '=', Transaction().language), - ]) if (self.date_stop_treatment and self.date_start_treatment): if (self.date_stop_treatment < self.date_start_treatment): raise EndTreatmentDateBeforeStart( gettext('health.msg_end_treatment_before_start', - date_stop_treatment=Lang.strftime( - self.date_stop_treatment, - language.code, language.date), - date_start_treatment=Lang.strftime( - self.date_start_treatment, - language.code, language.date), + date_stop_treatment=self.date_stop_treatment, + date_start_treatment=self.date_start_treatment, ) ) @@ -3848,19 +3830,12 @@ medication.validate_medication_dates() def validate_medication_dates(self): - Lang = Pool().get('ir.lang') - - language, = Lang.search([ - ('code', '=', Transaction().language), - ]) if self.end_treatment: if (self.end_treatment < self.start_treatment): raise MedEndDateBeforeStart(gettext( 'health.msg_med_end_date_before_start', - start_treatment=Lang.strftime( - self.start_treatment, language.code, language.date), - end_treatment=Lang.strftime( - self.end_treatment, language.code, language.date), + start_treatment=self.start_treatment, + end_treatment=self.end_treatment ) ) @@ -4888,21 +4863,12 @@ evaluation.check_health_professional() def validate_evaluation_period(self): - Lang = Pool().get('ir.lang') - - language, = Lang.search([ - ('code', '=', Transaction().language), - ]) if (self.evaluation_endtime and self.evaluation_start): if (self.evaluation_endtime < self.evaluation_start): raise EvaluationEndBeforeStart(gettext( 'health.msg_end_evaluation_time_before_start', - evaluation_start=Lang.strftime( - self.evaluation_start, language.code, - language.date), - evaluation_endtime=Lang.strftime( - self.evaluation_endtime, language.code, - language.date), + evaluation_start=self.evaluation_start, + evaluation_endtime=self.evaluation_endtime, ) )
--- a/tryton/health_calendar/data/messages/messages.xml +++ b/tryton/health_calendar/data/messages/messages.xml @@ -4,13 +4,18 @@ <tryton> <data grouped="1"> <record model="ir.message" id="msg_no_company_timezone"> - <field name="text">You need to define a timezone for this company before creating a work schedule</field> + <field name="text">SM-CALENDAR-001: You need to define a timezone for this company before creating a work schedule</field> </record> <record model="ir.message" id="msg_end_before_start"> - <field name="text">End date before start</field> + <field name="text">SM-CALENDAR-002: End date before start</field> </record> <record model="ir.message" id="msg_period_too_long"> - <field name="text">The schedule period should be less than 31 days</field> + <field name="text">SM-CALENDAR-003: The schedule period should be less than 31 days</field> </record> + + <record model="ir.message" id="msg_appointment_end_date_before_start"> + <field name="text">SM-CALENDAR-0004: The Appointment END date "%(appointment_date_end)s" is BEFORE the start date "%(appointment_date)s"</field> + </record> + </data> </tryton>
--- a/tryton/health_calendar/exceptions.py +++ b/tryton/health_calendar/exceptions.py @@ -14,3 +14,7 @@ class PeriodTooLong(ValidationError): pass + + +class AppointmentEndDateBeforeStart(ValidationError): + pass
--- a/tryton/health_calendar/health_calendar.py +++ b/tryton/health_calendar/health_calendar.py @@ -24,7 +24,9 @@ from trytond.model import fields from trytond.pyson import Eval, Not, Bool from trytond.pool import Pool, PoolMeta +from trytond.i18n import gettext +from .exceptions import (AppointmentEndDateBeforeStart) __all__ = ['User', 'Appointment'] @@ -51,6 +53,22 @@ appointment_date_end = fields.DateTime('End Date and Time') @classmethod + def validate(cls, appointments): + super(Appointment, cls).validate(appointments) + for appointment in appointments: + appointment.validate_appointment_dates() + + def validate_appointment_dates(self): + if self.appointment_date_end: + if (self.appointment_date_end < self.appointment_date): + raise AppointmentEndDateBeforeStart(gettext( + 'health_calendar.msg_appointment_end_date_before_start', + appointment_date=self.appointment_date, + appointment_date_end=self.appointment_date_end + ) + ) + + @classmethod def create(cls, vlist): pool = Pool() Event = pool.get('calendar.event')
--- a/tryton/health_surgery/health_surgery.py +++ b/tryton/health_surgery/health_surgery.py @@ -476,11 +476,6 @@ surgery.validate_surgery_period() def validate_surgery_period(self): - Lang = Pool().get('ir.lang') - - language, = Lang.search([ - ('code', '=', Transaction().language), - ]) if (self.surgery_end_date and self.surgery_date): if (self.surgery_end_date < self.surgery_date): raise EndDateBeforeStart(
