from django.contrib.auth.models import Group from django.urls import path, re_path from django.utils.translation import gettext_lazy as _ from base import announcement, request_and_approve, views from base.forms import ( HolidayForm, MailTemplateForm, RotatingShiftAssignForm, RotatingShiftForm, RotatingWorkTypeAssignForm, RotatingWorkTypeForm, ShiftRequestForm, WorkTypeRequestForm, ) from base.models import ( Company, Department, EmployeeShift, EmployeeShiftSchedule, EmployeeType, Holidays, HorillaMailTemplate, JobPosition, JobRole, RotatingShift, RotatingShiftAssign, RotatingWorkType, RotatingWorkTypeAssign, ShiftRequest, Tags, WorkType, WorkTypeRequest, ) from horilla_audit.models import AuditTag urlpatterns = [ path("", views.home, name="home-page"), path("initialize-database", views.initialize_database, name="initialize-database"), path("load-demo-database", views.load_demo_database, name="load-demo-database"), path( "initialize-database-user", views.initialize_database_user, name="initialize-database-user", ), path( "initialize-database-company", views.initialize_database_company, name="initialize-database-company", ), path( "initialize-database-department", views.initialize_database_department, name="initialize-database-department", ), path( "initialize-department-edit/", views.initialize_department_edit, name="initialize-department-edit", ), path( "initialize-department-delete/", views.initialize_department_delete, name="initialize-department-delete", ), path( "initialize-database-job-position", views.initialize_database_job_position, name="initialize-database-job-position", ), path( "initialize-job-position-edit/", views.initialize_job_position_edit, name="initialize-job-position-edit", ), path( "initialize-job-position-delete/", views.initialize_job_position_delete, name="initialize-job-position-delete", ), path("404", views.custom404, name="404"), path("login/", views.login_user, name="login"), path( "forgot-password", views.HorillaPasswordResetView.as_view(), name="forgot-password", ), path( "employee-reset-password", views.EmployeePasswordResetView.as_view(), name="employee-reset-password", ), path("reset-send-success", views.reset_send_success, name="reset-send-success"), path("change-password", views.change_password, name="change-password"), path("change-username", views.change_username, name="change-username"), path("two-factor", views.two_factor_auth, name="two-factor"), path("send-otp", views.send_otp, name="send-otp"), path("logout", views.logout_user, name="logout"), path("settings", views.common_settings, name="settings"), path( "settings/user-group-create/", views.user_group_table, name="user-group-create" ), path("settings/user-group-view/", views.user_group, name="user-group-view"), path( "settings/user-group-search/", views.user_group_search, name="user-group-search" ), path( "user-group-delete//", views.object_delete, name="user-group-delete", kwargs={"model": Group, "redirect": "user-group-view"}, ), path( "group-permission-remove///", views.user_group_permission_remove, name="group-permission-remove", ), path( "user-group-assign-view", views.group_assign_view, name="user-group-assign-view" ), path("settings/user-group-assign/", views.group_assign, name="user-group-assign"), path( "group-remove-user///", views.group_remove_user, name="group-remove-user", ), path( "settings/employee-permission-assign/", views.employee_permission_assign, name="employee-permission-assign", ), path( "employee-permission-search", views.employee_permission_search, name="permission-search", ), path( "update-user-permission", views.update_permission, name="update-user-permission", ), path( "update-group-permission", views.update_group_permission, name="update-group-permission", ), path( "permission-table", views.permission_table, name="permission-table", ), path("settings/mail-server-conf/", views.mail_server_conf, name="mail-server-conf"), path( "settings/mail-server-create-update/", views.mail_server_create_or_update, name="mail-server-create-update", ), path( "settings/mail-server-test-email/", views.mail_server_test_email, name="mail-server-test-email", ), path("mail-server-delete", views.mail_server_delete, name="mail-server-delete"), path( "replace-primary-mail", views.replace_primary_mail, name="replace-primary-mail" ), path( "configuration/view-mail-templates/", views.view_mail_templates, name="view-mail-templates", ), path( "view-mail-template//", views.view_mail_template, name="view-mail-template", ), path( "create-mail-template/", views.create_mail_templates, name="create-mail-template", ), path( "duplicate-mail-template//", views.object_duplicate, name="duplicate-mail-template", kwargs={ "model": HorillaMailTemplate, "form": MailTemplateForm, "template": "mail/htmx/form.html", }, ), path( "delete-mail-template/", views.delete_mail_templates, name="delete-mail-template", ), path("settings/company-create/", views.company_create, name="company-create"), path("settings/company-view/", views.company_view, name="company-view"), path( "settings/company-update//", views.company_update, name="company-update", kwargs={"model": Company}, ), path( "settings/company-delete//", views.object_delete, name="company-delete", kwargs={"model": Company, "redirect": "/settings/company-view"}, ), path("settings/department-view/", views.department_view, name="department-view"), path( "settings/department-creation/", views.department_create, name="department-creation", ), path( "settings/department-update//", views.department_update, name="department-update", kwargs={"model": Department}, ), path( "department-delete//", views.object_delete, name="department-delete", kwargs={ "model": Department, "HttpResponse": True, }, ), path( "settings/job-position-creation/", views.job_position_creation, name="job-position-creation", ), path( "settings/job-position-view/", views.job_position, name="job-position-view", ), path( "settings/job-position-update//", views.job_position_update, name="job-position-update", kwargs={"model": JobPosition}, ), path( "job-position-delete//", views.object_delete, name="job-position-delete", kwargs={ "model": JobPosition, "HttpResponse": True, }, ), path("settings/job-role-create/", views.job_role_create, name="job-role-create"), path("settings/job-role-view/", views.job_role_view, name="job-role-view"), path( "settings/job-role-update//", views.job_role_update, name="job-role-update", kwargs={"model": JobRole}, ), path( "job-role-delete//", views.object_delete, name="job-role-delete", kwargs={ "model": JobRole, "HttpResponse": True, }, ), path("settings/work-type-view/", views.work_type_view, name="work-type-view"), path("settings/work-type-create/", views.work_type_create, name="work-type-create"), path( "settings/work-type-update//", views.work_type_update, name="work-type-update", kwargs={"model": WorkType}, ), path( "work-type-delete//", views.object_delete, name="work-type-delete", kwargs={ "model": WorkType, "HttpResponse": True, }, ), path( "add-remove-work-type-fields", views.add_remove_dynamic_fields, name="add-remove-work-type-fields", kwargs={ "model": WorkType, "form_class": RotatingWorkTypeForm, "template": "base/rotating_work_type/htmx/add_more_work_type_fields.html", "empty_label": _("---Choose Work Type---"), "field_name_pre": "work_type", }, ), path( "settings/rotating-work-type-create/", views.rotating_work_type_create, name="rotating-work-type-create", ), path( "settings/rotating-work-type-view/", views.rotating_work_type_view, name="rotating-work-type-view", ), path( "settings/rotating-work-type-update//", views.rotating_work_type_update, name="rotating-work-type-update", kwargs={"model": RotatingWorkType}, ), path( "rotating-work-type-delete//", views.object_delete, name="rotating-work-type-delete", kwargs={ "model": RotatingWorkType, "HttpResponse": True, }, ), path( "employee/rotating-work-type-assign/", views.rotating_work_type_assign, name="rotating-work-type-assign", ), path( "rotating-work-type-assign-add", views.rotating_work_type_assign_add, name="rotating-work-type-assign-add", ), path( "rotating-work-type-assign-view", views.rotating_work_type_assign_view, name="rotating-work-type-assign-view", ), path( "rotating-work-type-assign-export", views.rotating_work_type_assign_export, name="rotating-work-type-assign-export", ), path( "settings/rotating-work-type-assign-update//", views.rotating_work_type_assign_update, name="rotating-work-type-assign-update", ), path( "rotating-work-type-assign-duplicate//", views.object_duplicate, name="rotating-work-type-assign-duplicate", kwargs={ "model": RotatingWorkTypeAssign, "form": RotatingWorkTypeAssignForm, "template": "base/rotating_work_type/htmx/rotating_work_type_assign_form.html", }, ), path( "rotating-work-type-assign-archive//", views.rotating_work_type_assign_archive, name="rotating-work-type-assign-archive", ), path( "rotating-work-type-assign-bulk-archive", views.rotating_work_type_assign_bulk_archive, name="rotating-shift-work-type-bulk-archive", ), path( "rotating-work-type-assign-bulk-delete", views.rotating_work_type_assign_bulk_delete, name="rotating-shift-work-type-bulk-delete", ), path( "rotating-work-type-assign-delete//", views.rotating_work_type_assign_delete, name="rotating-work-type-assign-delete", ), path( "settings/employee-type-view/", views.employee_type_view, name="employee-type-view", ), path( "settings/employee-type-create/", views.employee_type_create, name="employee-type-create", ), path( "settings/employee-type-update//", views.employee_type_update, name="employee-type-update", kwargs={"model": EmployeeType}, ), path( "employee-type-delete//", views.object_delete, name="employee-type-delete", kwargs={ "model": EmployeeType, "HttpResponse": True, }, ), path( "settings/employee-shift-view/", views.employee_shift_view, name="employee-shift-view", ), path( "settings/employee-shift-create/", views.employee_shift_create, name="employee-shift-create", ), path( "settings/employee-shift-update//", views.employee_shift_update, name="employee-shift-update", kwargs={"model": EmployeeShift}, ), path( "employee-shift-delete//", views.object_delete, name="employee-shift-delete", kwargs={ "model": EmployeeShift, "HttpResponse": True, }, ), path( "settings/employee-shift-schedule-view/", views.employee_shift_schedule_view, name="employee-shift-schedule-view", ), path( "settings/employee-shift-schedule-create/", views.employee_shift_schedule_create, name="employee-shift-schedule-create", ), path( "settings/employee-shift-schedule-update//", views.employee_shift_schedule_update, name="employee-shift-schedule-update", kwargs={"model": EmployeeShiftSchedule}, ), path( "employee-shift-schedule-delete//", views.object_delete, name="employee-shift-schedule-delete", kwargs={ "model": EmployeeShiftSchedule, "HttpResponse": True, }, ), path( "settings/rotating-shift-create/", views.rotating_shift_create, name="rotating-shift-create", ), path( "add-remove-shift-fields", views.add_remove_dynamic_fields, name="add-remove-shift-fields", kwargs={ "model": EmployeeShift, "form_class": RotatingShiftForm, "template": "base/rotating_shift/htmx/add_more_shift_fields.html", "empty_label": _("---Choose Shift---"), "field_name_pre": "shift", }, ), path( "settings/rotating-shift-view/", views.rotating_shift_view, name="rotating-shift-view", ), path( "settings/rotating-shift-update//", views.rotating_shift_update, name="rotating-shift-update", kwargs={"model": RotatingShift}, ), path( "rotating-shift-delete//", views.object_delete, name="rotating-shift-delete", kwargs={ "model": RotatingShift, "redirect": "/settings/rotating-shift-view", }, ), path( "employee/rotating-shift-assign/", views.rotating_shift_assign, name="rotating-shift-assign", ), path( "rotating-shift-assign-add", views.rotating_shift_assign_add, name="rotating-shift-assign-add", ), path( "rotating-shift-assign-view", views.rotating_shift_assign_view, name="rotating-shift-assign-view", ), path( "rotating-shift-assign-info-export", views.rotating_shift_assign_export, name="rotating-shift-assign-info-export", ), path( "rotating-shift-assign-info-import", views.rotating_shift_assign_import, name="rotating-shift-assign-info-import", ), path( "settings/rotating-shift-assign-update//", views.rotating_shift_assign_update, name="rotating-shift-assign-update", ), path( "rotating-shift-assign-duplicate//", views.object_duplicate, name="rotating-shift-assign-duplicate", kwargs={ "model": RotatingShiftAssign, "form": RotatingShiftAssignForm, "template": "base/rotating_shift/htmx/rotating_shift_assign_form.html", }, ), path( "rotating-shift-assign-archive//", views.rotating_shift_assign_archive, name="rotating-shift-assign-archive", ), path( "rotating-shift-assign-bulk-archive", views.rotating_shift_assign_bulk_archive, name="rotating-shift-assign-bulk-archive", ), path( "rotating-shift-assign-bulk-delete", views.rotating_shift_assign_bulk_delete, name="rotating-shift-assign-bulk-delete", ), path( "rotating-shift-assign-delete//", views.rotating_shift_assign_delete, name="rotating-shift-assign-delete", ), path("work-type-request", views.work_type_request, name="work-type-request"), path( "work-type-request-duplicate//", views.object_duplicate, name="work-type-request-duplicate", kwargs={ "model": WorkTypeRequest, "form": WorkTypeRequestForm, "template": "work_type_request/request_form.html", }, ), path( "employee/work-type-request-view/", views.work_type_request_view, name="work-type-request-view", ), path( "work-type-request-info-export", views.work_type_request_export, name="work-type-request-info-export", ), path( "work-type-request-search", views.work_type_request_search, name="work-type-request-search", ), path( "work-type-request-cancel//", views.work_type_request_cancel, name="work-type-request-cancel", ), path( "work-type-request-bulk-cancel", views.work_type_request_bulk_cancel, name="work-type-request-bulk-cancel", ), path( "work-type-request-approve//", views.work_type_request_approve, name="work-type-request-approve", ), path( "work-type-request-bulk-approve", views.work_type_request_bulk_approve, name="work-type-request-bulk-approve", ), path( "work-type-request-update//", views.work_type_request_update, name="work-type-request-update", ), path( "work-type-request-delete//", views.work_type_request_delete, name="work-type-request-delete", ), path( "work-type-request-single-view//", views.work_type_request_single_view, name="work-type-request-single-view", ), path( "work-type-request-bulk-delete", views.work_type_request_bulk_delete, name="work-type-request-bulk-delete", ), path("shift-request", views.shift_request, name="shift-request"), path( "shift-request-duplicate//", views.object_duplicate, name="shift-request-duplicate", kwargs={ "model": ShiftRequest, "form": ShiftRequestForm, "template": "shift_request/htmx/shift_request_create_form.html", }, ), path( "shift-request-reallocate", views.shift_request_allocation, name="shift-request-reallocate", ), path( "update-employee-allocation", views.update_employee_allocation, name="update-employee-allocation", ), path( "employee/shift-request-view/", views.shift_request_view, name="shift-request-view", ), path( "shift-request-info-export", views.shift_request_export, name="shift-request-info-export", ), path( "shift-request-search", views.shift_request_search, name="shift-request-search" ), path( "shift-request-details//", views.shift_request_details, name="shift-request-details", ), path( "shift-allocation-request-details//", views.shift_allocation_request_details, name="shift-allocation-request-details", ), path( "shift-request-update//", views.shift_request_update, name="shift-request-update", ), path( "shift-allocation-request-update//", views.shift_allocation_request_update, name="shift-allocation-request-update", ), path( "shift-request-cancel//", views.shift_request_cancel, name="shift-request-cancel", ), path( "shift-allocation-request-cancel//", views.shift_allocation_request_cancel, name="shift-allocation-request-cancel", ), path( "shift-request-bulk-cancel", views.shift_request_bulk_cancel, name="shift-request-bulk-cancel", ), path( "shift-request-approve//", views.shift_request_approve, name="shift-request-approve", ), path( "shift-allocation-request-approve//", views.shift_allocation_request_approve, name="shift-allocation-request-approve", ), path( "shift-request-bulk-approve", views.shift_request_bulk_approve, name="shift-request-bulk-approve", ), path( "shift-request-delete//", views.shift_request_delete, name="shift-request-delete", ), path( "shift-request-bulk-delete", views.shift_request_bulk_delete, name="shift-request-bulk-delete", ), path("notifications", views.notifications, name="notifications"), path("clear-notifications", views.clear_notification, name="clear-notifications"), path( "delete-all-notifications", views.delete_all_notifications, name="delete-all-notifications", ), path("read-notifications", views.read_notifications, name="read-notifications"), path( "mark-as-read-notification/", views.mark_as_read_notification, name="mark-as-read-notification", ), path( "mark-as-read-notification-json/", views.mark_as_read_notification_json, name="mark-as-read-notification-json", ), path("all-notifications", views.all_notifications, name="all-notifications"), path( "delete-notifications//", views.delete_notification, name="delete-notifications", ), path("settings/general-settings/", views.general_settings, name="general-settings"), path("settings/date-settings/", views.date_settings, name="date-settings"), path("settings/save-date/", views.save_date_format, name="save_date_format"), path("settings/get-date-format/", views.get_date_format, name="get-date-format"), path("settings/save-time/", views.save_time_format, name="save_time_format"), path("settings/get-time-format/", views.get_time_format, name="get-time-format"), path( "history-field-settings", views.history_field_settings, name="history-field-settings", ), path( "enable-account-block-unblock", views.enable_account_block_unblock, name="enable-account-block-unblock", ), path( "enable-profile-edit-feature", views.enable_profile_edit_feature, name="enable-profile-edit-feature", ), path( "rwork-individual-view//", views.rotating_work_individual_view, name="rwork-individual-view", ), path( "rshit-individual-view//", views.rotating_shift_individual_view, name="rshift-individual-view", ), path("shift-select/", views.shift_select, name="shift-select"), path( "shift-select-filter/", views.shift_select_filter, name="shift-select-filter", ), path("work-type-select/", views.work_type_select, name="work-type-select"), path( "work-type-filter/", views.work_type_select_filter, name="work-type-select-filter", ), path("r-shift-select/", views.rotating_shift_select, name="r-shift-select"), path( "r-shift-select-filter/", views.rotating_shift_select_filter, name="r-shift-select-filter", ), path( "r-work-type-select/", views.rotating_work_type_select, name="r-work-type-select", ), path( "r-work-type-filter/", views.rotating_work_type_select_filter, name="r-work-type-select-filter", ), path("settings/tag-view/", views.tag_view, name="tag-view"), path( "settings/helpdesk-tag-view/", views.helpdesk_tag_view, name="helpdesk-tag-view" ), path("tag-create", views.tag_create, name="tag-create"), path("tag-update/", views.tag_update, name="tag-update"), path( "tag-delete/", views.object_delete, name="tag-delete", kwargs={ "model": Tags, "HttpResponse": True, }, ), path("audit-tag-create", views.audit_tag_create, name="audit-tag-create"), path( "audit-tag-update/", views.audit_tag_update, name="audit-tag-update" ), path( "audit-tag-delete/", views.object_delete, name="audit-tag-delete", kwargs={"model": AuditTag, "HttpResponse": True}, ), path( "configuration/multiple-approval-condition", views.multiple_approval_condition, name="multiple-approval-condition", ), path( "configuration/condition-value-fields", views.get_condition_value_fields, name="condition-value-fields", ), path( "configuration/add-more-approval-managers", views.add_more_approval_managers, name="add-more-approval-managers", ), path( "configuration/remove-approval-manager", views.remove_approval_manager, name="remove-approval-manager", ), path( "configuration/hx-multiple-approval-condition", views.hx_multiple_approval_condition, name="hx-multiple-approval-condition", ), path( "multiple-level-approval-create", views.multiple_level_approval_create, name="multiple-level-approval-create", ), path( "multiple-level-approval-edit/", views.multiple_level_approval_edit, name="multiple-level-approval-edit", ), path( "multiple-level-approval-delete/", views.multiple_level_approval_delete, name="multiple-level-approval-delete", ), path( "shift-request-add-comment//", views.create_shiftrequest_comment, name="shift-request-add-comment", ), path( "view-shift-comment//", views.view_shift_comment, name="view-shift-comment", ), path( "delete-shift-comment-file/", views.delete_shift_comment_file, name="delete-shift-comment-file", ), path( "view-work-type-comment//", views.view_work_type_comment, name="view-work-type-comment", ), path( "delete-work-type-comment-file/", views.delete_work_type_comment_file, name="delete-work-type-comment-file", ), path( "shift-request-delete-comment//", views.delete_shiftrequest_comment, name="shift-request-delete-comment", ), path( "worktype-request-add-comment//", views.create_worktyperequest_comment, name="worktype-request-add-comment", ), path( "worktype-request-delete-comment//", views.delete_worktyperequest_comment, name="worktype-request-delete-comment", ), path( "dashboard-shift-request", request_and_approve.dashboard_shift_request, name="dashboard-shift-request", ), path( "dashboard-work-type-request", request_and_approve.dashboard_work_type_request, name="dashboard-work-type-request", ), path( "settings/pagination-settings-view/", views.pagination_settings_view, name="pagination-settings-view", ), path("settings/action-type/", views.action_type_view, name="action-type"), path("action-type-create", views.action_type_create, name="action-type-create"), path( "action-type-update/", views.action_type_update, name="action-type-update", ), path( "action-type-delete/", views.action_type_delete, name="action-type-delete", ), path( "pagination-settings-view", views.pagination_settings_view, name="pagination-settings-view", ), path("announcement-list", announcement.announcement_list, name="announcement-list"), path( "create-announcement", announcement.create_announcement, name="create-announcement", ), path( "delete-announcement/", announcement.delete_announcement, name="delete-announcement", ), path( "update-announcement/", announcement.update_announcement, name="update-announcement", ), path( "remove-announcement-file//", announcement.remove_announcement_file, name="remove-announcement-file", ), path( "announcement-add-comment//", announcement.create_announcement_comment, name="announcement-add-comment", ), path( "announcement-view-comment//", announcement.comment_view, name="announcement-view-comment", ), path( "announcement-single-view/", announcement.announcement_single_view, name="announcement-single-view", ), path( "announcement-single-view/", announcement.announcement_single_view, name="announcement-single-view", ), path( "announcement-delete-comment//", announcement.delete_announcement_comment, name="announcement-delete-comment", ), path( "announcement-viewed-by", announcement.viewed_by, name="announcement-viewed-by" ), path("driver-viewed", views.driver_viewed_status, name="driver-viewed"), path( "dashboard-components-toggle", views.dashboard_components_toggle, name="dashboard-components-toggle", ), path("employee-chart-show", views.employee_chart_show, name="employee-chart-show"), path( "settings/enable-biometric-attendance/", views.enable_biometric_attendance_view, name="enable-biometric-attendance", ), path( "settings/activate-biometric-attendance", views.activate_biometric_attendance, name="activate-biometric-attendance", ), path( "emp-workinfo-complete", views.employee_workinfo_complete, name="emp-workinfo-complete", ), path( "get-horilla-installed-apps/", views.get_horilla_installed_apps, name="get-horilla-installed-apps", ), path("configuration/holiday-view", views.holiday_view, name="holiday-view"), path( "configuration/holidays-excel-template", views.holidays_excel_template, name="holidays-excel-template", ), path( "holidays-info-import", views.holidays_info_import, name="holidays-info-import" ), path("holiday-info-export", views.holiday_info_export, name="holiday-info-export"), path( "get-upcoming-holidays", views.get_upcoming_holidays, name="get-upcoming-holidays", ), path("holiday-creation", views.holiday_creation, name="holiday-creation"), path("holiday-update/", views.holiday_update, name="holiday-update"), path( "duplicate-holiday/", views.object_duplicate, name="duplicate-holiday", kwargs={ "model": Holidays, "form": HolidayForm, "template": "holiday/holiday_form.html", }, ), path("holiday-delete/", views.holiday_delete, name="holiday-delete"), path( "holidays-bulk-delete", views.bulk_holiday_delete, name="holidays-bulk-delete" ), path("holiday-filter", views.holiday_filter, name="holiday-filter"), path("holiday-select/", views.holiday_select, name="holiday-select"), path( "holiday-select-filter/", views.holiday_select_filter, name="holiday-select-filter", ), path( "company-leave-creation", views.company_leave_creation, name="company-leave-creation", ), path( "configuration/company-leave-view", views.company_leave_view, name="company-leave-view", ), path( "company-leave-update/", views.company_leave_update, name="company-leave-update", ), path( "company-leave-delete/", views.company_leave_delete, name="company-leave-delete", ), path( "company-leave-filter", views.company_leave_filter, name="company-leave-filter" ), path("view-penalties", views.view_penalties, name="view-penalties"), ] urlpatterns.append( re_path(r"^media/(?P.*)$", views.protected_media, name="protected_media"), )