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_datetime_range() tuple[datetime.datetime, datetime.datetime][source]
Get start and end datetime with proper types.
- 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.
- calculate_travel_details(translator: onegov.translator_directory.models.translator.Translator, request: onegov.translator_directory.request.TranslatorAppRequest | None = None) tuple[decimal.Decimal, float | None][source]
Calculate travel compensation and distance.
For on-site assignments with a selected location, calculates distance from translator’s address to the assignment location. The distance is multiplied by 2 to account for round trip.