Count IT infra work as remote in monthly report stats.
Infra/leadership channel no longer looks like on-site visits; labels clarify remote-only infrastructure. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -42,13 +42,14 @@ class Migration(migrations.Migration):
|
||||
('remote', 'Удалённо (без выезда)'),
|
||||
('field', 'С выездом'),
|
||||
('office', 'Офис'),
|
||||
('infra', 'Инфраструктура / руководство'),
|
||||
('infra', 'Инфраструктура / руководство (удалённо)'),
|
||||
],
|
||||
default='',
|
||||
help_text=(
|
||||
'Для месячного IT-отчёта: как учитывать задачи сотрудника '
|
||||
'(удалённо / с выездом / офис / инфра). '
|
||||
'Объект заявки (аптека А35…) сам по себе выездом не считается.'
|
||||
'Как учитывать задачи в месячном IT-отчёте. '
|
||||
'«Удалённо» и «Инфраструктура» — без выезда '
|
||||
'(объект аптеки в заявке сам по себе выездом не считается). '
|
||||
'«С выездом» — только для выездных инженеров.'
|
||||
),
|
||||
max_length=16,
|
||||
verbose_name='Канал работ (IT-отчёт)',
|
||||
|
||||
@@ -172,7 +172,7 @@ class Employee(AbstractBaseUser, PermissionsMixin, BaseModel):
|
||||
('remote', _('Удалённо (без выезда)')),
|
||||
('field', _('С выездом')),
|
||||
('office', _('Офис')),
|
||||
('infra', _('Инфраструктура / руководство')),
|
||||
('infra', _('Инфраструктура / руководство (удалённо)')),
|
||||
]
|
||||
it_work_channel = models.CharField(
|
||||
_('Канал работ (IT-отчёт)'),
|
||||
@@ -181,9 +181,10 @@ class Employee(AbstractBaseUser, PermissionsMixin, BaseModel):
|
||||
blank=True,
|
||||
default='',
|
||||
help_text=_(
|
||||
'Для месячного IT-отчёта: как учитывать задачи сотрудника '
|
||||
'(удалённо / с выездом / офис / инфра). '
|
||||
'Объект заявки (аптека А35…) сам по себе выездом не считается.'
|
||||
'Как учитывать задачи в месячном IT-отчёте. '
|
||||
'«Удалённо» и «Инфраструктура» — без выезда '
|
||||
'(объект аптеки в заявке сам по себе выездом не считается). '
|
||||
'«С выездом» — только для выездных инженеров.'
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
@@ -191,7 +191,10 @@ def build_conclusions(report: dict, company: dict | None = None) -> list[dict]:
|
||||
bucket = resolve_work_bucket(staff_id, emp, company)
|
||||
n = int(emp.get('tasks_count') or 0) + int(emp.get('systems_count') or 0)
|
||||
if bucket == 'infra':
|
||||
# Инфраструктура у нас ведётся удалённо — в % «с выездом» не попадает,
|
||||
# но входит в «удаленно решено» + отдельный абзац про инфра.
|
||||
counts['infra'] += n
|
||||
counts['remote'] += n
|
||||
elif bucket == 'remote':
|
||||
counts['remote'] += n
|
||||
elif bucket == 'field':
|
||||
|
||||
Reference in New Issue
Block a user