translator_directory.forms.time_report
Classes
Form for creating/editing translator time reports. |
Module Contents
- class translator_directory.forms.time_report.TranslatorTimeReportForm(formdata: webob.multidict.MultiDict[str, Any] | None = None, obj: object | None = None, prefix: str = '', data: dict[str, Any] | None = None, meta: dict[str, Any] | None = None, *, extra_filters: collections.abc.Mapping[str, collections.abc.Sequence[Any]] | None = None, **kwargs: Any)[source]
Bases:
onegov.form.FormForm for creating/editing translator time reports.
- get_hourly_rate(translator: onegov.translator_directory.models.translator.Translator) decimal.Decimal[source]
Determine hourly rate based on translator certification.
- get_duration_hours() decimal.Decimal[source]
Calculate duration in hours from start/end times, rounded.
Calculates raw time between start and end (ignoring breaks for now).
- calculate_night_hours() decimal.Decimal[source]
Calculate actual hours worked during night (20:00-06:00).
- calculate_weekend_holiday_hours() decimal.Decimal[source]
Calculate actual hours worked during weekends or public holidays.
Counts hours that fall on: - Saturday or Sunday (any time) - Public holidays (any time)
Returns hours as Decimal, rounded to nearest 0.5 hour.
- populate_obj(obj: onegov.translator_directory.models.time_report.TranslatorTimeReport) None[source]
Populate the model from form, converting hours to minutes.
- process(formdata: object = None, obj: object = None, **kwargs: object) None[source]
Process form data for editing existing time reports.
- get_surcharge_types() list[str][source]
Get list of active surcharge types from form based on actual hours.
- get_travel_compensation(translator: onegov.translator_directory.models.translator.Translator) decimal.Decimal[source]
Calculate travel compensation based on round trip distance.
The drive_distance is multiplied by 2 to account for the round trip (Wegentschädigung * 2). Returns 0 for telephonic and written assignments.