From 581953f643847e5e0296ec3c422c548cf14efadf Mon Sep 17 00:00:00 2001 From: "maxim.gorbatyuk" Date: Sat, 29 Jun 2024 19:37:22 +0400 Subject: [PATCH 1/4] Adjusted --- .../admin-navbar/admin-navbar.component.ts | 4 + src/app/models/salaries/salary.model.ts | 6 ++ src/app/modules/admin/admin-routing.module.ts | 5 + src/app/modules/admin/admin.module.ts | 2 + ...aries-admin-paginated-table.component.html | 4 +- .../components/salaries/salary-admin-item.ts | 8 +- ...sourced-salaries-admin-page.component.html | 22 +++++ ...rced-salaries-admin-page.component.spec.ts | 33 +++++++ .../sourced-salaries-admin-page.component.ts | 94 +++++++++++++++++++ .../salaries-chart.component.ts | 3 + .../shared/global-filters-form-group.ts | 4 + src/app/services/user-salaries.service.ts | 15 ++- 12 files changed, 196 insertions(+), 4 deletions(-) create mode 100644 src/app/modules/admin/components/salaries/sourced-salaries-admin-page/sourced-salaries-admin-page.component.html create mode 100644 src/app/modules/admin/components/salaries/sourced-salaries-admin-page/sourced-salaries-admin-page.component.spec.ts create mode 100644 src/app/modules/admin/components/salaries/sourced-salaries-admin-page/sourced-salaries-admin-page.component.ts diff --git a/src/app/components/admin-navbar/admin-navbar.component.ts b/src/app/components/admin-navbar/admin-navbar.component.ts index aaa93752..81cafc96 100644 --- a/src/app/components/admin-navbar/admin-navbar.component.ts +++ b/src/app/components/admin-navbar/admin-navbar.component.ts @@ -67,6 +67,10 @@ export class AdminNavbarComponent { title: "Анкеты вне статистики", url: "/admin/salaries/not-in-stats", }, + { + title: "Импортированные анкеты", + url: "/admin/salaries/imported-salaries", + }, ], }, { diff --git a/src/app/models/salaries/salary.model.ts b/src/app/models/salaries/salary.model.ts index 74e9612e..53967073 100644 --- a/src/app/models/salaries/salary.model.ts +++ b/src/app/models/salaries/salary.model.ts @@ -4,6 +4,11 @@ import { Currency } from "./currency"; import { KazakhstanCity } from "./kazakhstan-city"; import { Gender } from "@models/enums/gender.enum"; +export enum SalarySourceType { + Undefined = 0, + KolesaDevelopersCsv2022 = 1, +} + export interface UserSalarySimple { value: number; quarter: number; @@ -24,6 +29,7 @@ export interface UserSalary extends UserSalarySimple { skillId: number | null; workIndustryId: number | null; professionId: number | null; + salarySourceType: SalarySourceType | null; } export interface UserSalaryAdminDto extends UserSalary { diff --git a/src/app/modules/admin/admin-routing.module.ts b/src/app/modules/admin/admin-routing.module.ts index 99bbe0e8..50c1cb0a 100644 --- a/src/app/modules/admin/admin-routing.module.ts +++ b/src/app/modules/admin/admin-routing.module.ts @@ -11,6 +11,7 @@ import { WorkIndustriesPaginatedTableComponent } from "./components/label-entiti import { ProfessionsPaginatedTableComponent } from "./components/label-entities/professions-paginated-table/professions-paginated-table.component"; import { TelegramBotUsagesComponent } from "./components/telegram/telegram-bot-usages/telegram-bot-usages.component"; import { TelegramUserSettingsComponent } from "./components/telegram/telegram-user-settings/telegram-user-settings.component"; +import { SourcedSalariesAdminPageComponent } from "./components/salaries/sourced-salaries-admin-page/sourced-salaries-admin-page.component"; const routes: Routes = [ { path: "", component: AdminStartPageComponent }, @@ -28,6 +29,10 @@ const routes: Routes = [ path: "salaries/not-in-stats", component: SalariesNotInStatsAdminPageComponent, }, + { + path: "salaries/imported-salaries", + component: SourcedSalariesAdminPageComponent, + }, { path: "telegram/bot-usages", component: TelegramBotUsagesComponent }, { path: "telegram/user-settings", component: TelegramUserSettingsComponent }, ]; diff --git a/src/app/modules/admin/admin.module.ts b/src/app/modules/admin/admin.module.ts index b9db7966..049dcdb0 100644 --- a/src/app/modules/admin/admin.module.ts +++ b/src/app/modules/admin/admin.module.ts @@ -18,6 +18,7 @@ import { WorkIndustriesPaginatedTableComponent } from "./components/label-entiti import { ProfessionsPaginatedTableComponent } from "./components/label-entities/professions-paginated-table/professions-paginated-table.component"; import { TelegramBotUsagesComponent } from "./components/telegram/telegram-bot-usages/telegram-bot-usages.component"; import { TelegramUserSettingsComponent } from "./components/telegram/telegram-user-settings/telegram-user-settings.component"; +import { SourcedSalariesAdminPageComponent } from "./components/salaries/sourced-salaries-admin-page/sourced-salaries-admin-page.component"; @NgModule({ declarations: [ @@ -30,6 +31,7 @@ import { TelegramUserSettingsComponent } from "./components/telegram/telegram-us SalariesAdminPageComponent, SalariesAdminPaginatedTableComponent, SalariesNotInStatsAdminPageComponent, + SourcedSalariesAdminPageComponent, SkillsPaginatedTableComponent, WorkIndustriesPaginatedTableComponent, ProfessionsPaginatedTableComponent, diff --git a/src/app/modules/admin/components/salaries/salaries-admin-paginated-table/salaries-admin-paginated-table.component.html b/src/app/modules/admin/components/salaries/salaries-admin-paginated-table/salaries-admin-paginated-table.component.html index 352dd239..bb5784aa 100644 --- a/src/app/modules/admin/components/salaries/salaries-admin-paginated-table/salaries-admin-paginated-table.component.html +++ b/src/app/modules/admin/components/salaries/salaries-admin-paginated-table/salaries-admin-paginated-table.component.html @@ -93,7 +93,7 @@ Город Навык Сфера - Создано + Источник Обновлено @@ -114,7 +114,7 @@ {{ item.city }} {{ item.skill }} {{ item.industry }} - {{ item.createdAt | date : "yyyy-MM-dd HH:mm" }} + {{ item.salarySourceType }} {{ item.updatedAt | date : "yyyy-MM-dd HH:mm" }} - - - + + + diff --git a/src/app/modules/salaries/components/salaries-chart/salary-chart-global-filters/salary-chart-global-filters.component.ts b/src/app/modules/salaries/components/salaries-chart/salary-chart-global-filters/salary-chart-global-filters.component.ts index 9af43934..c6739649 100644 --- a/src/app/modules/salaries/components/salaries-chart/salary-chart-global-filters/salary-chart-global-filters.component.ts +++ b/src/app/modules/salaries/components/salaries-chart/salary-chart-global-filters/salary-chart-global-filters.component.ts @@ -26,6 +26,9 @@ export class SalaryChartGlobalFiltersComponent implements OnInit { @Input() professions: Array = []; + @Input() + skills: Array = []; + @Output() readonly filtersApplied = new EventEmitter(); @@ -37,6 +40,7 @@ export class SalaryChartGlobalFiltersComponent implements OnInit { form: GlobalFiltersFormGroup | null = null; professionsAsOptions: Array> = []; + skillsAsOptions: Array> = []; constructor(private readonly alert: AlertService) {} @@ -49,6 +53,14 @@ export class SalaryChartGlobalFiltersComponent implements OnInit { }; }); + this.skillsAsOptions = this.skills.map((x) => { + return { + value: x.id.toString(), + item: x.id, + label: x.title, + }; + }); + this.form = new GlobalFiltersFormGroup(this.filterData); } diff --git a/src/app/modules/salaries/components/shared/global-filters-form-group.ts b/src/app/modules/salaries/components/shared/global-filters-form-group.ts index b03d0ac6..1b652c96 100644 --- a/src/app/modules/salaries/components/shared/global-filters-form-group.ts +++ b/src/app/modules/salaries/components/shared/global-filters-form-group.ts @@ -8,6 +8,7 @@ export class SalaryChartGlobalFiltersData { grade: DeveloperGrade | null = null; profsInclude: Array = []; cities: Array = []; + skills: Array = []; salarySourceType: SalarySourceType | null = null; quarterTo: number | null = null; yearTo: number | null = null; @@ -15,7 +16,11 @@ export class SalaryChartGlobalFiltersData { constructor( grade: DeveloperGrade | null = null, profsInclude: Array = [], - cities: Array = [] + cities: Array = [], + skills: Array = [], + salarySourceType: SalarySourceType | null = null, + quarterTo: number | null = null, + yearTo: number | null = null ) { if (grade === DeveloperGrade.Unknown) { grade = null; @@ -24,13 +29,21 @@ export class SalaryChartGlobalFiltersData { this.grade = grade; this.profsInclude = profsInclude; this.cities = cities; + this.skills = skills; + this.salarySourceType = salarySourceType; + this.quarterTo = quarterTo; + this.yearTo = yearTo; } equals(other: SalaryChartGlobalFiltersData): boolean { return ( this.grade === other.grade && this.cities.length === other.cities.length && - this.isEqualArrays(this.profsInclude, other.profsInclude) + this.isEqualArrays(this.profsInclude, other.profsInclude) && + this.isEqualArrays(this.skills, other.skills) && + this.salarySourceType === other.salarySourceType && + this.quarterTo === other.quarterTo && + this.yearTo === other.yearTo ); } @@ -52,6 +65,10 @@ export class GlobalFiltersFormGroup extends FormGroup { grade: new FormControl(filterData?.grade, []), profsToInclude: new FormControl(filterData?.profsInclude, []), cities: new FormControl(filterData?.cities, []), + skills: new FormControl(filterData?.skills, []), + salarySourceType: new FormControl(filterData?.salarySourceType, []), + quarterTo: new FormControl(filterData?.quarterTo, []), + yearTo: new FormControl(filterData?.yearTo, []), }); } @@ -68,7 +85,22 @@ export class GlobalFiltersFormGroup extends FormGroup { const profsToInclude = (this.value.profsToInclude as Array) ?? []; const cities = (this.value.cities as Array) ?? []; + const skills = (this.value.skills as Array) ?? []; + const salarySourceType = + this.value.salarySourceType != null && this.value.salarySourceType !== "null" + ? this.value.salarySourceType as SalarySourceType + : null; - return new SalaryChartGlobalFiltersData(grade, profsToInclude, cities); + const quarterTo = this.value.quarterTo ?? null; + const yearTo = this.value.yearTo ?? null; + + return new SalaryChartGlobalFiltersData( + grade, + profsToInclude, + cities, + skills, + salarySourceType, + quarterTo, + yearTo); } } diff --git a/src/app/services/user-salaries.service.ts b/src/app/services/user-salaries.service.ts index 6be5d7a4..f9ecd06a 100644 --- a/src/app/services/user-salaries.service.ts +++ b/src/app/services/user-salaries.service.ts @@ -117,6 +117,7 @@ export interface SalariesChartFilterData { grade: DeveloperGrade | null; profsInclude: Array | null; cities: Array | null; + skills: Array | null; salarySourceType: SalarySourceType | null; quarterTo: number | null; yearTo: number | null; From 95cc49e622a41263f62e7cb2f63259d07c14a825 Mon Sep 17 00:00:00 2001 From: "maxim.gorbatyuk" Date: Sun, 30 Jun 2024 15:12:20 +0400 Subject: [PATCH 3/4] Adjusted code --- src/app/models/salaries/salary.model.ts | 2 +- ...aries-admin-paginated-table.component.html | 2 +- .../components/salaries/salary-admin-item.ts | 6 ++--- .../salaries-chart.component.html | 6 ++--- .../salaries-chart.component.ts | 19 ++++++++++++-- ...salary-chart-global-filters.component.html | 10 +++++++ .../salaries-paginated-table.component.ts | 6 ++++- .../shared/global-filters-form-group.ts | 26 ++++++++++++++++--- src/app/services/user-salaries.service.ts | 4 +++ 9 files changed, 66 insertions(+), 15 deletions(-) diff --git a/src/app/models/salaries/salary.model.ts b/src/app/models/salaries/salary.model.ts index 53967073..12b6a3eb 100644 --- a/src/app/models/salaries/salary.model.ts +++ b/src/app/models/salaries/salary.model.ts @@ -29,7 +29,7 @@ export interface UserSalary extends UserSalarySimple { skillId: number | null; workIndustryId: number | null; professionId: number | null; - salarySourceType: SalarySourceType | null; + sourceType: SalarySourceType | null; } export interface UserSalaryAdminDto extends UserSalary { diff --git a/src/app/modules/admin/components/salaries/salaries-admin-paginated-table/salaries-admin-paginated-table.component.html b/src/app/modules/admin/components/salaries/salaries-admin-paginated-table/salaries-admin-paginated-table.component.html index bb5784aa..42dd4a3a 100644 --- a/src/app/modules/admin/components/salaries/salaries-admin-paginated-table/salaries-admin-paginated-table.component.html +++ b/src/app/modules/admin/components/salaries/salaries-admin-paginated-table/salaries-admin-paginated-table.component.html @@ -114,7 +114,7 @@ {{ item.city }} {{ item.skill }} {{ item.industry }} - {{ item.salarySourceType }} + {{ item.sourceType }} {{ item.updatedAt | date : "yyyy-MM-dd HH:mm" }} + + + -
- - - -
- -
-
- - -
- -
- - - -
-
- + +