Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[15.0][IMP] hr_attendance_reason: Show reasons on attendance screen #124

Merged
merged 3 commits into from
Jul 4, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions hr_attendance_reason/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ Authors
~~~~~~~

* Odoo S.A.
* Tecnativa

Contributors
~~~~~~~~~~~~
Expand All @@ -73,6 +74,10 @@ Contributors
* David Alonso <david.alonso@solvos.es>
* Juany Davila <juany.davila@forgeflow.com>

* `Tecnativa <https://www.tecnativa.com>`_:

* Víctor Martínez

Maintainers
~~~~~~~~~~~

Expand Down
11 changes: 10 additions & 1 deletion hr_attendance_reason/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"version": "15.0.1.1.0",
"category": "Human Resources",
"website": "https://github.com/OCA/hr-attendance",
"author": "Odoo S.A., Odoo Community Association (OCA)",
"author": "Odoo S.A., Tecnativa, Odoo Community Association (OCA)",
"license": "LGPL-3",
"installable": True,
"depends": ["hr_attendance"],
Expand All @@ -17,5 +17,14 @@
"security/security.xml",
"views/hr_attendance_reason_view.xml",
"views/hr_attendance_view.xml",
"views/res_config_settings_view.xml",
],
"assets": {
"web.assets_backend": [
"hr_attendance_reason/static/src/js/my_attendances.esm.js",
"hr_attendance_reason/static/src/js/kiosk_confirm.esm.js",
"hr_attendance_reason/static/src/scss/hr_attendance_reason.scss",
],
"web.assets_qweb": ["hr_attendance_reason/static/src/xml/**/*"],
},
}
3 changes: 3 additions & 0 deletions hr_attendance_reason/data/hr_attendance_reason_data.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,13 @@
<field name="name">Felt Sick</field>
<field name="code">FS</field>
<field name="action_type">sign_out</field>
<field name="show_on_attendance_screen" eval="True" />
</record>
<record id="hr_act_reason_3" model="hr.attendance.reason">
<field name="name">Visit Customer</field>
<field name="code">VS</field>
<field name="action_type">sign_in</field>
<field name="show_on_attendance_screen" eval="True" />
</record>
<record id="hr_act_reason_4" model="hr.attendance.reason">
<field name="name">Bad Weather</field>
Expand All @@ -22,5 +24,6 @@
<field name="name">Public Transport Strike</field>
<field name="code">PTS</field>
<field name="action_type">sign_in</field>
<field name="show_on_attendance_screen" eval="True" />
</record>
</odoo>
80 changes: 68 additions & 12 deletions hr_attendance_reason/i18n/es.po
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,16 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2023-01-24 14:45+0000\n"
"Last-Translator: Víctor Martínez <victor.martinez@tecnativa.com>\n"
"POT-Creation-Date: 2023-07-04 07:25+0000\n"
"PO-Revision-Date: 2023-07-04 09:26+0200\n"
"Last-Translator: Jaime Arroyo <jaime.arroyo@creublanca.es>\n"
"Language-Team: none\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.14.1\n"
"X-Generator: Poedit 3.0.1\n"

#. module: hr_attendance_reason
#: model:ir.model.fields,field_description:hr_attendance_reason.field_hr_attendance_reason__action_type
Expand All @@ -37,15 +38,30 @@ msgstr "Motivo de alerta de asistencia"
msgid "Attendance Reasons"
msgstr "Motivos de alerta de asistencia"

#. module: hr_attendance_reason
#: model:ir.model,name:hr_attendance_reason.model_hr_employee_base
msgid "Basic Employee"
msgstr "Empleado Básico"

#. module: hr_attendance_reason
#: model:ir.model.constraint,message:hr_attendance_reason.constraint_hr_attendance_reason_unique_code
msgid "Code must be unique"
msgstr "El código debe ser único"

#. module: hr_attendance_reason
#: model:ir.model,name:hr_attendance_reason.model_res_company
msgid "Companies"
msgstr "Empresas"

#. module: hr_attendance_reason
#: model:ir.model.fields,field_description:hr_attendance_reason.field_hr_attendance_reason__company_id
msgid "Company"
msgstr ""
msgstr "Compañía"

#. module: hr_attendance_reason
#: model:ir.model,name:hr_attendance_reason.model_res_config_settings
msgid "Config Settings"
msgstr "Ajustes de configuración"

#. module: hr_attendance_reason
#: model:ir.ui.menu,name:hr_attendance_reason.hr_attendance_settings_redefinition_menu
Expand All @@ -72,6 +88,11 @@ msgstr "Definir un motivo de alerta de asistencia"
msgid "Display Name"
msgstr "Nombre a mostrar"

#. module: hr_attendance_reason
#: model:ir.model,name:hr_attendance_reason.model_hr_employee
msgid "Employee"
msgstr "Empleado"

#. module: hr_attendance_reason
#: model:ir.model.fields,field_description:hr_attendance_reason.field_hr_attendance_reason__id
msgid "ID"
Expand All @@ -98,9 +119,20 @@ msgid "Leave empty if it is independent"
msgstr "Dejar vacío si es independiente"

#. module: hr_attendance_reason
#. openerp-web
#: code:addons/hr_attendance_reason/static/src/js/kiosk_confirm.esm.js:0
#: code:addons/hr_attendance_reason/static/src/js/my_attendances.esm.js:0
#, python-format
msgid "Please, select a reason"
msgstr "Por favor, selecciona un motivo"

#. module: hr_attendance_reason
#. openerp-web
#: code:addons/hr_attendance_reason/static/src/xml/attendance.xml:0
#: model:ir.model.fields,field_description:hr_attendance_reason.field_hr_attendance_reason__name
#, python-format
msgid "Reason"
msgstr ""
msgstr "Motivo"

#. module: hr_attendance_reason
#: model:ir.model.fields,field_description:hr_attendance_reason.field_hr_attendance_reason__code
Expand All @@ -112,6 +144,36 @@ msgstr "Código del motivo"
msgid "Reasons"
msgstr "Motivos"

#. module: hr_attendance_reason
#: model:ir.model.fields,field_description:hr_attendance_reason.field_hr_employee__required_reason_on_attendance_screen
#: model:ir.model.fields,field_description:hr_attendance_reason.field_hr_employee_base__required_reason_on_attendance_screen
#: model:ir.model.fields,field_description:hr_attendance_reason.field_hr_employee_public__required_reason_on_attendance_screen
#: model:ir.model.fields,field_description:hr_attendance_reason.field_res_company__required_reason_on_attendance_screen
#: model:ir.model.fields,field_description:hr_attendance_reason.field_res_config_settings__required_reason_on_attendance_screen
#: model_terms:ir.ui.view,arch_db:hr_attendance_reason.res_config_settings_view_form
msgid "Required reason on attendance screen"
msgstr "¿Motivo obligatorio en pantalla de asistencia?"

#. module: hr_attendance_reason
#: model:ir.model.fields,field_description:hr_attendance_reason.field_hr_attendance_reason__sequence
msgid "Sequence"
msgstr "Secuencia"

#. module: hr_attendance_reason
#: model:ir.model.fields,field_description:hr_attendance_reason.field_hr_attendance_reason__show_on_attendance_screen
msgid "Show on attendance screen?"
msgstr "¿Mostrar en pantalla de asistencia?"

#. module: hr_attendance_reason
#: model:ir.model.fields,field_description:hr_attendance_reason.field_hr_employee__show_reason_on_attendance_screen
#: model:ir.model.fields,field_description:hr_attendance_reason.field_hr_employee_base__show_reason_on_attendance_screen
#: model:ir.model.fields,field_description:hr_attendance_reason.field_hr_employee_public__show_reason_on_attendance_screen
#: model:ir.model.fields,field_description:hr_attendance_reason.field_res_company__show_reason_on_attendance_screen
#: model:ir.model.fields,field_description:hr_attendance_reason.field_res_config_settings__show_reason_on_attendance_screen
#: model_terms:ir.ui.view,arch_db:hr_attendance_reason.res_config_settings_view_form
msgid "Show reasons on attendance screen"
msgstr "¿Mostrar motivos en pantalla de asistencia?"

#. module: hr_attendance_reason
#: model:ir.model.fields.selection,name:hr_attendance_reason.selection__hr_attendance_reason__action_type__sign_in
msgid "Sign in"
Expand All @@ -133,9 +195,3 @@ msgstr "Especifica la razón de entrada/salida inusual."
#: model:ir.model.fields,help:hr_attendance_reason.field_hr_attendance_reason__name
msgid "Specifies the reason leaving soon or arriving late"
msgstr "Especifica la razón por salir antes o llegar tarde"

#~ msgid "Attendance reasons"
#~ msgstr "Motivos de alerta de asistencia"

#~ msgid "Name"
#~ msgstr "Nombre"
64 changes: 64 additions & 0 deletions hr_attendance_reason/i18n/hr_attendance_reason.pot
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 15.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-04 07:25+0000\n"
"PO-Revision-Date: 2023-07-04 07:25+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
Expand Down Expand Up @@ -34,16 +36,31 @@ msgstr ""
msgid "Attendance Reasons"
msgstr ""

#. module: hr_attendance_reason
#: model:ir.model,name:hr_attendance_reason.model_hr_employee_base
msgid "Basic Employee"
msgstr ""

#. module: hr_attendance_reason
#: model:ir.model.constraint,message:hr_attendance_reason.constraint_hr_attendance_reason_unique_code
msgid "Code must be unique"
msgstr ""

#. module: hr_attendance_reason
#: model:ir.model,name:hr_attendance_reason.model_res_company
msgid "Companies"
msgstr ""

#. module: hr_attendance_reason
#: model:ir.model.fields,field_description:hr_attendance_reason.field_hr_attendance_reason__company_id
msgid "Company"
msgstr ""

#. module: hr_attendance_reason
#: model:ir.model,name:hr_attendance_reason.model_res_config_settings
msgid "Config Settings"
msgstr ""

#. module: hr_attendance_reason
#: model:ir.ui.menu,name:hr_attendance_reason.hr_attendance_settings_redefinition_menu
msgid "Configuration"
Expand All @@ -69,6 +86,11 @@ msgstr ""
msgid "Display Name"
msgstr ""

#. module: hr_attendance_reason
#: model:ir.model,name:hr_attendance_reason.model_hr_employee
msgid "Employee"
msgstr ""

#. module: hr_attendance_reason
#: model:ir.model.fields,field_description:hr_attendance_reason.field_hr_attendance_reason__id
msgid "ID"
Expand All @@ -95,7 +117,19 @@ msgid "Leave empty if it is independent"
msgstr ""

#. module: hr_attendance_reason
#. openerp-web
#: code:addons/hr_attendance_reason/static/src/js/kiosk_confirm.esm.js:0
#: code:addons/hr_attendance_reason/static/src/js/my_attendances.esm.js:0
#, python-format
msgid "Please, select a reason"
msgstr ""

#. module: hr_attendance_reason
#. openerp-web
#: code:addons/hr_attendance_reason/static/src/xml/attendance.xml:0
#: code:addons/hr_attendance_reason/static/src/xml/attendance.xml:0
#: model:ir.model.fields,field_description:hr_attendance_reason.field_hr_attendance_reason__name
#, python-format
msgid "Reason"
msgstr ""

Expand All @@ -109,6 +143,36 @@ msgstr ""
msgid "Reasons"
msgstr ""

#. module: hr_attendance_reason
#: model:ir.model.fields,field_description:hr_attendance_reason.field_hr_employee__required_reason_on_attendance_screen
#: model:ir.model.fields,field_description:hr_attendance_reason.field_hr_employee_base__required_reason_on_attendance_screen
#: model:ir.model.fields,field_description:hr_attendance_reason.field_hr_employee_public__required_reason_on_attendance_screen
#: model:ir.model.fields,field_description:hr_attendance_reason.field_res_company__required_reason_on_attendance_screen
#: model:ir.model.fields,field_description:hr_attendance_reason.field_res_config_settings__required_reason_on_attendance_screen
#: model_terms:ir.ui.view,arch_db:hr_attendance_reason.res_config_settings_view_form
msgid "Required reason on attendance screen"
msgstr ""

#. module: hr_attendance_reason
#: model:ir.model.fields,field_description:hr_attendance_reason.field_hr_attendance_reason__sequence
msgid "Sequence"
msgstr ""

#. module: hr_attendance_reason
#: model:ir.model.fields,field_description:hr_attendance_reason.field_hr_attendance_reason__show_on_attendance_screen
msgid "Show on attendance screen?"
msgstr ""

#. module: hr_attendance_reason
#: model:ir.model.fields,field_description:hr_attendance_reason.field_hr_employee__show_reason_on_attendance_screen
#: model:ir.model.fields,field_description:hr_attendance_reason.field_hr_employee_base__show_reason_on_attendance_screen
#: model:ir.model.fields,field_description:hr_attendance_reason.field_hr_employee_public__show_reason_on_attendance_screen
#: model:ir.model.fields,field_description:hr_attendance_reason.field_res_company__show_reason_on_attendance_screen
#: model:ir.model.fields,field_description:hr_attendance_reason.field_res_config_settings__show_reason_on_attendance_screen
#: model_terms:ir.ui.view,arch_db:hr_attendance_reason.res_config_settings_view_form
msgid "Show reasons on attendance screen"
msgstr ""

#. module: hr_attendance_reason
#: model:ir.model.fields.selection,name:hr_attendance_reason.selection__hr_attendance_reason__action_type__sign_in
msgid "Sign in"
Expand Down
4 changes: 4 additions & 0 deletions hr_attendance_reason/models/__init__.py
Original file line number Diff line number Diff line change
@@ -1,2 +1,6 @@
from . import hr_attendance_reason
from . import hr_attendance
from . import hr_employee
from . import hr_employee_base
from . import res_company
from . import res_config_settings
3 changes: 3 additions & 0 deletions hr_attendance_reason/models/hr_attendance_reason.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,11 @@
class HrAttendanceReason(models.Model):
_name = "hr.attendance.reason"
_description = "Attendance Reason"
_order = "sequence,id"

_sql_constraints = [("unique_code", "UNIQUE(code)", "Code must be unique")]

sequence = fields.Integer()
company_id = fields.Many2one(
comodel_name="res.company",
string="Company",
Expand All @@ -26,3 +28,4 @@ class HrAttendanceReason(models.Model):
[("sign_in", "Sign in"), ("sign_out", "Sign out")],
help="Leave empty if it is independent",
)
show_on_attendance_screen = fields.Boolean(string="Show on attendance screen?")
16 changes: 16 additions & 0 deletions hr_attendance_reason/models/hr_employee.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Copyright 2023 Tecnativa - Víctor Martínez
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

from odoo import models


class HrEmployee(models.Model):
_inherit = "hr.employee"

def _attendance_action_change(self):
attendance = super()._attendance_action_change()
if self.env.context.get("attendance_reason_id"):
attendance.attendance_reason_ids = [
(4, self.env.context.get("attendance_reason_id"))
]
return attendance
23 changes: 23 additions & 0 deletions hr_attendance_reason/models/hr_employee_base.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Copyright 2023 Tecnativa - Víctor Martínez
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

from odoo import api, fields, models


class HrEmployeeBase(models.AbstractModel):
_inherit = "hr.employee.base"

show_reason_on_attendance_screen = fields.Boolean(
related="company_id.show_reason_on_attendance_screen", store=True
)
required_reason_on_attendance_screen = fields.Boolean(
related="company_id.required_reason_on_attendance_screen", store=True
)

@api.model
def search_read(self, domain=None, fields=None, offset=0, limit=None, order=None):
fields = fields or []
fields += self.env.context.get("extra_fields", [])
return super().search_read(

Check warning on line 21 in hr_attendance_reason/models/hr_employee_base.py

View check run for this annotation

Codecov / codecov/patch

hr_attendance_reason/models/hr_employee_base.py#L19-L21

Added lines #L19 - L21 were not covered by tests
domain=domain, fields=fields, offset=offset, limit=limit, order=order
)
15 changes: 15 additions & 0 deletions hr_attendance_reason/models/res_company.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Copyright 2023 Tecnativa - Víctor Martínez
# License LGPL-3 - See http://www.gnu.org/licenses/lgpl-3.0.html

from odoo import fields, models


class ResCompany(models.Model):
_inherit = "res.company"

show_reason_on_attendance_screen = fields.Boolean(
string="Show reasons on attendance screen"
)
required_reason_on_attendance_screen = fields.Boolean(
string="Required reason on attendance screen"
)
Loading