diff --git a/profiles/migrations/0011_alter_historicalpeoplefinderprofile_additional_roles_and_more.py b/profiles/migrations/0011_alter_historicalpeoplefinderprofile_additional_roles_and_more.py new file mode 100644 index 0000000..923eb92 --- /dev/null +++ b/profiles/migrations/0011_alter_historicalpeoplefinderprofile_additional_roles_and_more.py @@ -0,0 +1,539 @@ +# Generated by Django 5.1.5 on 2025-03-06 12:36 + +from django.db import migrations, models + +import core.models + + +class Migration(migrations.Migration): + + dependencies = [ + ("profiles", "0010_alter_historicalpeoplefinderteam_team_type_and_more"), + ] + + operations = [ + migrations.AlterField( + model_name="historicalpeoplefinderprofile", + name="additional_roles", + field=core.models.ChoiceArrayField( + base_field=models.CharField( + blank=True, + choices=[ + ("fire_warden", "Fire warden"), + ("first_aider", "First aider"), + ("mental_health_first_aider", "Mental health first aider"), + ("mentor", "Mentor"), + ("network_lead", "Network lead"), + ("network_deputy_lead", "Network deputy lead"), + ("cirrus_champion", "Cirrus champion"), + ("health_wellbeing_champion", "Health & wellbeing champion"), + ("fast_stream_rep", "Fast stream rep"), + ("overseas_staff_rep", "Overseas staff rep"), + ("digital_champion", "Digital champion"), + ("information_manager", "Information manager"), + ("independent_panel_member", "Independent panel member"), + ( + "divisional_security_coordinator", + "Divisional security coordinator", + ), + ("ddat_champion", "DDaT champion"), + ("honours_champion", "Honours champion"), + ], + verbose_name="Additional roles or responsibilities", + ), + blank=True, + null=True, + size=None, + ), + ), + migrations.AlterField( + model_name="historicalpeoplefinderprofile", + name="grade", + field=models.CharField( + blank=True, + choices=[ + ("fco_s1", "FCO S1"), + ("fco_s2", "FCO S2"), + ("fco_s3", "FCO S3"), + ("admin_assistant", "Administrative assistant (AA)"), + ("admin_officer", "Administrative officer (AO/A2)"), + ("executive_officer", "Executive officer (EO/B3)"), + ("higher_executive_officer", "Higher executive officer (HEO/C4)"), + ("senior_executive_officer", "Senior executive officer (SEO/C5)"), + ("grade_7", "Grade 7 (G7/D6)"), + ("grade_6", "Grade 6 (G6/D7)"), + ("scs_1", "Senior civil service 1 (SCS1/SMS1)"), + ("scs_2", "Senior civil service 2 (SCS2/SMS2)"), + ("scs_3", "Senior civil service 3 (SCS3/SMS3)"), + ("scs_4", "Senior civil service 4 (SCS4/SMS4)"), + ("fast_stream", "Fast Stream"), + ("fast_track", "Fast Track"), + ("apprentice", "Apprentice"), + ( + "non_graded_special_advisor", + "Non graded - special advisor (SPAD)", + ), + ("non_graded_contractor", "Non graded - contractor"), + ("non_graded_secondee", "Non graded - secondee"), + ("non_graded_post", "Non graded - post"), + ], + max_length=80, + null=True, + ), + ), + migrations.AlterField( + model_name="historicalpeoplefinderprofile", + name="key_skills", + field=core.models.ChoiceArrayField( + base_field=models.CharField( + blank=True, + choices=[ + ("asset_management", "Asset management"), + ("assurance", "Assurance"), + ("benefits_realisation", "Benefits realisation"), + ("change_management", "Change management"), + ("coaching", "Coaching"), + ("commercial_specialist", "Commercial specialist"), + ("commissioning", "Commissioning"), + ("contract_management", "Contract management"), + ("credit_risk_analysis", "Credit risk analysis"), + ("customer_service", "Customer service"), + ("digital", "Digital"), + ("digital_workspace_publisher", "Digital Workspace publisher"), + ("economist", "Economist"), + ("financial_reporting", "Financial reporting"), + ("graphic_design", "Graphic Design"), + ("hr", "HR"), + ("income_generation", "Income generation"), + ("information_management", "Information management"), + ("interviewing", "Interviewing"), + ("it", "IT"), + ("law", "Law"), + ("lean", "Lean/ Six sigma"), + ("line_management", "Line management"), + ("media_trained", "Media trained"), + ("mentoring", "Mentoring"), + ("policy_design", "Policy design"), + ("policy_implementation", "Policy implementation"), + ("presenting", "Presenting"), + ("project_delivery", "Project delivery"), + ("project_management", "Project management"), + ("property_estates", "Property / Estates"), + ("research_operational", "Research - operational"), + ("research_economic", "Research - economic"), + ("research_statistical", "Research - statistical"), + ("research_social", "Research - social"), + ("risk_management", "Risk management"), + ("security", "Security"), + ("service_design", "Service and process design"), + ("skills_and_capability", "Skills and capability management"), + ("sponsorship", "Sponsorship and partnerships"), + ("stakeholder_management", "Stakeholder management"), + ("statistics", "Statistics"), + ("strategy", "Strategy"), + ("submission_writing", "Submission writing"), + ("talent_management", "Talent Management"), + ("tax", "Tax"), + ("training", "Training"), + ("underwriting", "Underwriting"), + ("user_research", "User research"), + ("valution", "Valuation"), + ( + "working_with_devolved_admin", + "Working with Devolved Administrations", + ), + ("working_with_ministers", "Working with Ministers"), + ( + "working_with_govt_depts", + "Working with other government departments", + ), + ], + ), + blank=True, + null=True, + size=None, + ), + ), + migrations.AlterField( + model_name="historicalpeoplefinderprofile", + name="learning_interests", + field=core.models.ChoiceArrayField( + base_field=models.CharField( + blank=True, + choices=[ + ("shadowing", "Work shadowing"), + ("mentoring", "Mentoring"), + ("research", "Research"), + ("overseas_posts", "Overseas posts"), + ("secondment", "Secondment"), + ("parliamentary_work", "Parliamentary work"), + ("ministerial_submissions", "Ministerial submissions"), + ("coding", "Coding"), + ], + ), + blank=True, + null=True, + size=None, + ), + ), + migrations.AlterField( + model_name="historicalpeoplefinderprofile", + name="professions", + field=core.models.ChoiceArrayField( + base_field=models.CharField( + blank=True, + choices=[ + ("commercial", "Government commercial and contract management"), + ("corp_finance", "Corporate finance profession"), + ("counter_fraud", "Counter-fraud standards and profession"), + ( + "digital_data_tech", + "Digital, data and technology profession", + ), + ("gov_comms", "Government communication service"), + ("gov_economics", "Government economic service"), + ("gov_finance", "Government finance profession"), + ("gov_it", "Government IT profession"), + ( + "gov_knowledge", + "Government knowledge and information management profession", + ), + ("gov_legal", "Government legal service"), + ( + "gov_occupational", + "Government occupational psychology profession", + ), + ("gov_operational", "Government operational research service"), + ("gov_planning_inspectors", "Government planning inspectors"), + ("gov_planning_profession", "Government planning profession"), + ("gov_property", "Government property profession"), + ("gov_security", "Government security profession"), + ( + "gov_science", + "Government science and engineering profession", + ), + ("gov_social", "Government social research profession"), + ( + "gov_statistical", + "Government statistical service profession", + ), + ("gov_tax", "Government tax profession"), + ("gov_vet", "Government veterinary profession"), + ("human_resources", "Human resources profession"), + ("intelligence_analysis", "Intelligence analysis"), + ("internal_audit", "Internal audit profession"), + ("medical_profession", "Medical profession"), + ("operation_delivery", "Operational delivery profession"), + ("policy_profiession", "Policy profession"), + ("procurement_profession", "Procurement profession"), + ("project_delivery", "Project delivery profession"), + ("international_trade", "International trade profession"), + ], + ), + blank=True, + null=True, + size=None, + ), + ), + migrations.AlterField( + model_name="historicalpeoplefinderprofile", + name="remote_working", + field=models.CharField( + blank=True, + choices=[ + ("office_worker", "Office worker"), + ("remote_worker", "Remote worker"), + ("split", "Split"), + ], + max_length=80, + null=True, + verbose_name="Usual working location", + ), + ), + migrations.AlterField( + model_name="historicalpeoplefinderprofile", + name="workdays", + field=core.models.ChoiceArrayField( + base_field=models.CharField( + blank=True, + choices=[ + ("mon", "Monday"), + ("tue", "Tuesday"), + ("wed", "Wednesday"), + ("thu", "Thursday"), + ("fri", "Friday"), + ("sat", "Saturday"), + ("sun", "Sunday"), + ], + max_length=80, + null=True, + verbose_name="Usual work days", + ), + blank=True, + null=True, + size=None, + ), + ), + migrations.AlterField( + model_name="peoplefinderprofile", + name="additional_roles", + field=core.models.ChoiceArrayField( + base_field=models.CharField( + blank=True, + choices=[ + ("fire_warden", "Fire warden"), + ("first_aider", "First aider"), + ("mental_health_first_aider", "Mental health first aider"), + ("mentor", "Mentor"), + ("network_lead", "Network lead"), + ("network_deputy_lead", "Network deputy lead"), + ("cirrus_champion", "Cirrus champion"), + ("health_wellbeing_champion", "Health & wellbeing champion"), + ("fast_stream_rep", "Fast stream rep"), + ("overseas_staff_rep", "Overseas staff rep"), + ("digital_champion", "Digital champion"), + ("information_manager", "Information manager"), + ("independent_panel_member", "Independent panel member"), + ( + "divisional_security_coordinator", + "Divisional security coordinator", + ), + ("ddat_champion", "DDaT champion"), + ("honours_champion", "Honours champion"), + ], + verbose_name="Additional roles or responsibilities", + ), + blank=True, + null=True, + size=None, + ), + ), + migrations.AlterField( + model_name="peoplefinderprofile", + name="grade", + field=models.CharField( + blank=True, + choices=[ + ("fco_s1", "FCO S1"), + ("fco_s2", "FCO S2"), + ("fco_s3", "FCO S3"), + ("admin_assistant", "Administrative assistant (AA)"), + ("admin_officer", "Administrative officer (AO/A2)"), + ("executive_officer", "Executive officer (EO/B3)"), + ("higher_executive_officer", "Higher executive officer (HEO/C4)"), + ("senior_executive_officer", "Senior executive officer (SEO/C5)"), + ("grade_7", "Grade 7 (G7/D6)"), + ("grade_6", "Grade 6 (G6/D7)"), + ("scs_1", "Senior civil service 1 (SCS1/SMS1)"), + ("scs_2", "Senior civil service 2 (SCS2/SMS2)"), + ("scs_3", "Senior civil service 3 (SCS3/SMS3)"), + ("scs_4", "Senior civil service 4 (SCS4/SMS4)"), + ("fast_stream", "Fast Stream"), + ("fast_track", "Fast Track"), + ("apprentice", "Apprentice"), + ( + "non_graded_special_advisor", + "Non graded - special advisor (SPAD)", + ), + ("non_graded_contractor", "Non graded - contractor"), + ("non_graded_secondee", "Non graded - secondee"), + ("non_graded_post", "Non graded - post"), + ], + max_length=80, + null=True, + ), + ), + migrations.AlterField( + model_name="peoplefinderprofile", + name="key_skills", + field=core.models.ChoiceArrayField( + base_field=models.CharField( + blank=True, + choices=[ + ("asset_management", "Asset management"), + ("assurance", "Assurance"), + ("benefits_realisation", "Benefits realisation"), + ("change_management", "Change management"), + ("coaching", "Coaching"), + ("commercial_specialist", "Commercial specialist"), + ("commissioning", "Commissioning"), + ("contract_management", "Contract management"), + ("credit_risk_analysis", "Credit risk analysis"), + ("customer_service", "Customer service"), + ("digital", "Digital"), + ("digital_workspace_publisher", "Digital Workspace publisher"), + ("economist", "Economist"), + ("financial_reporting", "Financial reporting"), + ("graphic_design", "Graphic Design"), + ("hr", "HR"), + ("income_generation", "Income generation"), + ("information_management", "Information management"), + ("interviewing", "Interviewing"), + ("it", "IT"), + ("law", "Law"), + ("lean", "Lean/ Six sigma"), + ("line_management", "Line management"), + ("media_trained", "Media trained"), + ("mentoring", "Mentoring"), + ("policy_design", "Policy design"), + ("policy_implementation", "Policy implementation"), + ("presenting", "Presenting"), + ("project_delivery", "Project delivery"), + ("project_management", "Project management"), + ("property_estates", "Property / Estates"), + ("research_operational", "Research - operational"), + ("research_economic", "Research - economic"), + ("research_statistical", "Research - statistical"), + ("research_social", "Research - social"), + ("risk_management", "Risk management"), + ("security", "Security"), + ("service_design", "Service and process design"), + ("skills_and_capability", "Skills and capability management"), + ("sponsorship", "Sponsorship and partnerships"), + ("stakeholder_management", "Stakeholder management"), + ("statistics", "Statistics"), + ("strategy", "Strategy"), + ("submission_writing", "Submission writing"), + ("talent_management", "Talent Management"), + ("tax", "Tax"), + ("training", "Training"), + ("underwriting", "Underwriting"), + ("user_research", "User research"), + ("valution", "Valuation"), + ( + "working_with_devolved_admin", + "Working with Devolved Administrations", + ), + ("working_with_ministers", "Working with Ministers"), + ( + "working_with_govt_depts", + "Working with other government departments", + ), + ], + ), + blank=True, + null=True, + size=None, + ), + ), + migrations.AlterField( + model_name="peoplefinderprofile", + name="learning_interests", + field=core.models.ChoiceArrayField( + base_field=models.CharField( + blank=True, + choices=[ + ("shadowing", "Work shadowing"), + ("mentoring", "Mentoring"), + ("research", "Research"), + ("overseas_posts", "Overseas posts"), + ("secondment", "Secondment"), + ("parliamentary_work", "Parliamentary work"), + ("ministerial_submissions", "Ministerial submissions"), + ("coding", "Coding"), + ], + ), + blank=True, + null=True, + size=None, + ), + ), + migrations.AlterField( + model_name="peoplefinderprofile", + name="professions", + field=core.models.ChoiceArrayField( + base_field=models.CharField( + blank=True, + choices=[ + ("commercial", "Government commercial and contract management"), + ("corp_finance", "Corporate finance profession"), + ("counter_fraud", "Counter-fraud standards and profession"), + ( + "digital_data_tech", + "Digital, data and technology profession", + ), + ("gov_comms", "Government communication service"), + ("gov_economics", "Government economic service"), + ("gov_finance", "Government finance profession"), + ("gov_it", "Government IT profession"), + ( + "gov_knowledge", + "Government knowledge and information management profession", + ), + ("gov_legal", "Government legal service"), + ( + "gov_occupational", + "Government occupational psychology profession", + ), + ("gov_operational", "Government operational research service"), + ("gov_planning_inspectors", "Government planning inspectors"), + ("gov_planning_profession", "Government planning profession"), + ("gov_property", "Government property profession"), + ("gov_security", "Government security profession"), + ( + "gov_science", + "Government science and engineering profession", + ), + ("gov_social", "Government social research profession"), + ( + "gov_statistical", + "Government statistical service profession", + ), + ("gov_tax", "Government tax profession"), + ("gov_vet", "Government veterinary profession"), + ("human_resources", "Human resources profession"), + ("intelligence_analysis", "Intelligence analysis"), + ("internal_audit", "Internal audit profession"), + ("medical_profession", "Medical profession"), + ("operation_delivery", "Operational delivery profession"), + ("policy_profiession", "Policy profession"), + ("procurement_profession", "Procurement profession"), + ("project_delivery", "Project delivery profession"), + ("international_trade", "International trade profession"), + ], + ), + blank=True, + null=True, + size=None, + ), + ), + migrations.AlterField( + model_name="peoplefinderprofile", + name="remote_working", + field=models.CharField( + blank=True, + choices=[ + ("office_worker", "Office worker"), + ("remote_worker", "Remote worker"), + ("split", "Split"), + ], + max_length=80, + null=True, + verbose_name="Usual working location", + ), + ), + migrations.AlterField( + model_name="peoplefinderprofile", + name="workdays", + field=core.models.ChoiceArrayField( + base_field=models.CharField( + blank=True, + choices=[ + ("mon", "Monday"), + ("tue", "Tuesday"), + ("wed", "Wednesday"), + ("thu", "Thursday"), + ("fri", "Friday"), + ("sat", "Saturday"), + ("sun", "Sunday"), + ], + max_length=80, + null=True, + verbose_name="Usual work days", + ), + blank=True, + null=True, + size=None, + ), + ), + ] diff --git a/profiles/models/generic.py b/profiles/models/generic.py index 64fce70..3e131dd 100644 --- a/profiles/models/generic.py +++ b/profiles/models/generic.py @@ -7,70 +7,91 @@ class Workday(models.TextChoices): - MON = "Monday" - TUE = "Tuesday" - WED = "Wednesday" - THU = "Thursday" - FRI = "Friday" - SAT = "Saturday" - SUN = "Sunday" + MON = "mon", "Monday" + TUE = "tue", "Tuesday" + WED = "wed", "Wednesday" + THU = "thu", "Thursday" + FRI = "fri", "Friday" + SAT = "sat", "Saturday" + SUN = "sun", "Sunday" class Grade(models.TextChoices): - FCO_S1 = "FCO S1" - FCO_S2 = "FCO S2" - FCO_S3 = "FCO S3" - ADMIN_ASSISTANT = "Administrative assistant (AA)" - ADMIN_OFFICER = "Administrative officer (AO/A2)" - EXECUTIVE_OFFICER = "Executive officer (EO/B3)" - HIGHER_EXECUTIVE_OFFICER = "Higher executive officer (HEO/C4)" - SENIOR_EXECUTIVE_OFFICER = "Senior executive officer (SEO/C5)" - GRADE_7 = "Grade 7 (G7/D6)" - GRADE_6 = "Grade 6 (G6/D7)" - SCS_1 = "Senior civil service 1 (SCS1/SMS1)" - SCS_2 = "Senior civil service 2 (SCS2/SMS2)" - SCS_3 = "Senior civil service 3 (SCS3/SMS3)" - SCS_4 = "Senior civil service 4 (SCS4/SMS4)" - FAST_STREAM = "Fast Stream" - FAST_TRACK = "Fast Track" - APPRENTICE = "Apprentice" - NON_GRADED_SPECIAL_ADVISOR = "Non graded - special advisor (SPAD)" - NON_GRADED_CONTRACTOR = "Non graded - contractor" - NON_GRADED_SECONDEE = "Non graded - secondee" - NON_GRADED_POST = "Non graded - post" + FCO_S1 = "fco_s1", "FCO S1" + FCO_S2 = "fco_s2", "FCO S2" + FCO_S3 = "fco_s3", "FCO S3" + ADMIN_ASSISTANT = "admin_assistant", "Administrative assistant (AA)" + ADMIN_OFFICER = "admin_officer", "Administrative officer (AO/A2)" + EXECUTIVE_OFFICER = "executive_officer", "Executive officer (EO/B3)" + HIGHER_EXECUTIVE_OFFICER = ( + "higher_executive_officer", + "Higher executive officer (HEO/C4)", + ) + SENIOR_EXECUTIVE_OFFICER = ( + "senior_executive_officer", + "Senior executive officer (SEO/C5)", + ) + GRADE_7 = "grade_7", "Grade 7 (G7/D6)" + GRADE_6 = "grade_6", "Grade 6 (G6/D7)" + SCS_1 = "scs_1", "Senior civil service 1 (SCS1/SMS1)" + SCS_2 = "scs_2", "Senior civil service 2 (SCS2/SMS2)" + SCS_3 = "scs_3", "Senior civil service 3 (SCS3/SMS3)" + SCS_4 = "scs_4", "Senior civil service 4 (SCS4/SMS4)" + FAST_STREAM = "fast_stream", "Fast Stream" + FAST_TRACK = "fast_track", "Fast Track" + APPRENTICE = "apprentice", "Apprentice" + NON_GRADED_SPECIAL_ADVISOR = ( + "non_graded_special_advisor", + "Non graded - special advisor (SPAD)", + ) + NON_GRADED_CONTRACTOR = "non_graded_contractor", "Non graded - contractor" + NON_GRADED_SECONDEE = "non_graded_secondee", "Non graded - secondee" + NON_GRADED_POST = "non_graded_post", "Non graded - post" class Profession(models.TextChoices): - COMMERCIAL = "Government commercial and contract management" - CORP_FINANCE = "Corporate finance profession" - COUNTER_FRAUD = "Counter-fraud standards and profession" - DIGITAL_DATA_TECH = "Digital, data and technology profession" - GOV_COMMS = "Government communication service" - GOV_ECONOMICS = "Government economic service" - GOV_FINANCE = "Government finance profession" - GOV_IT = "Government IT profession" - GOV_KNOWLEDGE = "Government knowledge and information management profession" - GOV_LEGAL = "Government legal service" - GOV_OCCUPATIONAL = "Government occupational psychology profession" - GOV_OPERATIONAL = "Government operational research service" - GOV_PLANNING_INSPECTORS = "Government planning inspectors" - GOV_PLANNING_PROFESSION = "Government planning profession" - GOV_PROPERTY = "Government property profession" - GOV_SECURITY = "Government security profession" - GOV_SCIENCE = "Government science and engineering profession" - GOV_SOCIAL = "Government social research profession" - GOV_STATISTICAL = "Government statistical service profession" - GOV_TAX = "Government tax profession" - GOV_VET = "Government veterinary profession" - HUMAN_RESOURCES = "Human resources profession" - INTELLIGENCE_ANALYSIS = "Intelligence analysis" - INTERNAL_AUDIT = "Internal audit profession" - MEDICAL_PROFESSION = "Medical profession" - OPERATION_DELIVERY = "Operational delivery profession" - POLICY_PROFIESSION = "Policy profession" - PROCUREMENT_PROFESSION = "Procurement profession" - PROJECT_DELIVERY = "Project delivery profession" - INTERNATIONAL_TRADE = "International trade profession" + COMMERCIAL = "commercial", "Government commercial and contract management" + CORP_FINANCE = "corp_finance", "Corporate finance profession" + COUNTER_FRAUD = "counter_fraud", "Counter-fraud standards and profession" + DIGITAL_DATA_TECH = "digital_data_tech", "Digital, data and technology profession" + GOV_COMMS = "gov_comms", "Government communication service" + GOV_ECONOMICS = "gov_economics", "Government economic service" + GOV_FINANCE = "gov_finance", "Government finance profession" + GOV_IT = "gov_it", "Government IT profession" + GOV_KNOWLEDGE = ( + "gov_knowledge", + "Government knowledge and information management profession", + ) + GOV_LEGAL = "gov_legal", "Government legal service" + GOV_OCCUPATIONAL = ( + "gov_occupational", + "Government occupational psychology profession", + ) + GOV_OPERATIONAL = "gov_operational", "Government operational research service" + GOV_PLANNING_INSPECTORS = ( + "gov_planning_inspectors", + "Government planning inspectors", + ) + GOV_PLANNING_PROFESSION = ( + "gov_planning_profession", + "Government planning profession", + ) + GOV_PROPERTY = "gov_property", "Government property profession" + GOV_SECURITY = "gov_security", "Government security profession" + GOV_SCIENCE = "gov_science", "Government science and engineering profession" + GOV_SOCIAL = "gov_social", "Government social research profession" + GOV_STATISTICAL = "gov_statistical", "Government statistical service profession" + GOV_TAX = "gov_tax", "Government tax profession" + GOV_VET = "gov_vet", "Government veterinary profession" + HUMAN_RESOURCES = "human_resources", "Human resources profession" + INTELLIGENCE_ANALYSIS = "intelligence_analysis", "Intelligence analysis" + INTERNAL_AUDIT = "internal_audit", "Internal audit profession" + MEDICAL_PROFESSION = "medical_profession", "Medical profession" + OPERATION_DELIVERY = "operation_delivery", "Operational delivery profession" + POLICY_PROFIESSION = "policy_profiession", "Policy profession" + PROCUREMENT_PROFESSION = "procurement_profession", "Procurement profession" + PROJECT_DELIVERY = "project_delivery", "Project delivery profession" + INTERNATIONAL_TRADE = "international_trade", "International trade profession" class Email(AbstractHistoricalModel): diff --git a/profiles/models/peoplefinder.py b/profiles/models/peoplefinder.py index c1f1d3a..1703929 100644 --- a/profiles/models/peoplefinder.py +++ b/profiles/models/peoplefinder.py @@ -22,95 +22,110 @@ def person_photo_small_path(instance, filename): class LearningInterest(models.TextChoices): - SHADOWING = "Work shadowing" - MENTORING = "Mentoring" - RESEARCH = "Research" - OVERSEAS_POSTS = "Overseas posts" - SECONDMENT = "Secondment" - PARLIAMENTARY_WORK = "Parliamentary work" - MINISTERIAL_SUBMISSIONS = "Ministerial submissions" - CODING = "Coding" + SHADOWING = "shadowing", "Work shadowing" + MENTORING = "mentoring", "Mentoring" + RESEARCH = "research", "Research" + OVERSEAS_POSTS = "overseas_posts", "Overseas posts" + SECONDMENT = "secondment", "Secondment" + PARLIAMENTARY_WORK = "parliamentary_work", "Parliamentary work" + MINISTERIAL_SUBMISSIONS = "ministerial_submissions", "Ministerial submissions" + CODING = "coding", "Coding" class KeySkill(models.TextChoices): - ASSET_MANAGEMENT = "Asset management" - ASSURANCE = "Assurance" - BENEFITS_REALISATION = "Benefits realisation" - CHANGE_MANAGEMENT = "Change management" - COACHING = "Coaching" - COMMERCIAL_SPECIALIST = "Commercial specialist" - COMMISSIONING = "Commissioning" - CONTRACT_MANAGEMENT = "Contract management" - CREDIT_RISK_ANALYSIS = "Credit risk analysis" - CUSTOMER_SERVICE = "Customer service" - DIGITAL = "Digital" - DIGITAL_WORKSPACE_PUBLISHER = "Digital Workspace publisher" - ECONOMIST = "Economist" - FINANCIAL_REPORTING = "Financial reporting" - GRAPHIC_DESIGN = "Graphic Design" - HR = "HR" - INCOME_GENERATION = "Income generation" - INFORMATION_MANAGEMENT = "Information management" - INTERVIEWING = "Interviewing" - IT = "IT" - LAW = "Law" - LEAN = "Lean/ Six sigma" - LINE_MANAGEMENT = "Line management" - MEDIA_TRAINED = "Media trained" - MENTORING = "Mentoring" - POLICY_DESIGN = "Policy design" - POLICY_IMPLEMENTATION = "Policy implementation" - PRESENTING = "Presenting" - PROJECT_DELIVERY = "Project delivery" - PROJECT_MANAGEMENT = "Project management" - PROPERTY_ESTATES = "Property / Estates" - RESEARCH_OPERATIONAL = "Research - operational" - RESEARCH_ECONOMIC = "Research - economic" - RESEARCH_STATISTICAL = "Research - statistical" - RESEARCH_SOCIAL = "Research - social" - RISK_MANAGEMENT = "Risk management" - SECURITY = "Security" - SERVICE_DESIGN = "Service and process design" - SKILLS_AND_CAPABILITY = "Skills and capability management" - SPONSORSHIP = "Sponsorship and partnerships" - STAKEHOLDER_MANAGEMENT = "Stakeholder management" - STATISTICS = "Statistics" - STRATEGY = "Strategy" - SUBMISSION_WRITING = "Submission writing" - TALENT_MANAGEMENT = "Talent Management" - TAX = "Tax" - TRAINING = "Training" - UNDERWRITING = "Underwriting" - USER_RESEARCH = "User research" - VALUTION = "Valuation" - WORKING_WITH_DEVOLVED_ADMIN = "Working with Devolved Administrations" - WORKING_WITH_MINISTERS = "Working with Ministers" - WORKING_WITH_GOVT_DEPTS = "Working with other government departments" + ASSET_MANAGEMENT = "asset_management", "Asset management" + ASSURANCE = "assurance", "Assurance" + BENEFITS_REALISATION = "benefits_realisation", "Benefits realisation" + CHANGE_MANAGEMENT = "change_management", "Change management" + COACHING = "coaching", "Coaching" + COMMERCIAL_SPECIALIST = "commercial_specialist", "Commercial specialist" + COMMISSIONING = "commissioning", "Commissioning" + CONTRACT_MANAGEMENT = "contract_management", "Contract management" + CREDIT_RISK_ANALYSIS = "credit_risk_analysis", "Credit risk analysis" + CUSTOMER_SERVICE = "customer_service", "Customer service" + DIGITAL = "digital", "Digital" + DIGITAL_WORKSPACE_PUBLISHER = ( + "digital_workspace_publisher", + "Digital Workspace publisher", + ) + ECONOMIST = "economist", "Economist" + FINANCIAL_REPORTING = "financial_reporting", "Financial reporting" + GRAPHIC_DESIGN = "graphic_design", "Graphic Design" + HR = "hr", "HR" + INCOME_GENERATION = "income_generation", "Income generation" + INFORMATION_MANAGEMENT = "information_management", "Information management" + INTERVIEWING = "interviewing", "Interviewing" + IT = "it", "IT" + LAW = "law", "Law" + LEAN = "lean", "Lean/ Six sigma" + LINE_MANAGEMENT = "line_management", "Line management" + MEDIA_TRAINED = "media_trained", "Media trained" + MENTORING = "mentoring", "Mentoring" + POLICY_DESIGN = "policy_design", "Policy design" + POLICY_IMPLEMENTATION = "policy_implementation", "Policy implementation" + PRESENTING = "presenting", "Presenting" + PROJECT_DELIVERY = "project_delivery", "Project delivery" + PROJECT_MANAGEMENT = "project_management", "Project management" + PROPERTY_ESTATES = "property_estates", "Property / Estates" + RESEARCH_OPERATIONAL = "research_operational", "Research - operational" + RESEARCH_ECONOMIC = "research_economic", "Research - economic" + RESEARCH_STATISTICAL = "research_statistical", "Research - statistical" + RESEARCH_SOCIAL = "research_social", "Research - social" + RISK_MANAGEMENT = "risk_management", "Risk management" + SECURITY = "security", "Security" + SERVICE_DESIGN = "service_design", "Service and process design" + SKILLS_AND_CAPABILITY = "skills_and_capability", "Skills and capability management" + SPONSORSHIP = "sponsorship", "Sponsorship and partnerships" + STAKEHOLDER_MANAGEMENT = "stakeholder_management", "Stakeholder management" + STATISTICS = "statistics", "Statistics" + STRATEGY = "strategy", "Strategy" + SUBMISSION_WRITING = "submission_writing", "Submission writing" + TALENT_MANAGEMENT = "talent_management", "Talent Management" + TAX = "tax", "Tax" + TRAINING = "training", "Training" + UNDERWRITING = "underwriting", "Underwriting" + USER_RESEARCH = "user_research", "User research" + VALUTION = "valution", "Valuation" + WORKING_WITH_DEVOLVED_ADMIN = ( + "working_with_devolved_admin", + "Working with Devolved Administrations", + ) + WORKING_WITH_MINISTERS = "working_with_ministers", "Working with Ministers" + WORKING_WITH_GOVT_DEPTS = ( + "working_with_govt_depts", + "Working with other government departments", + ) class AdditionalRole(models.TextChoices): - FIRE_WARDEN = "Fire warden" - FIRST_AIDER = "First aider" - MENTAL_HEALTH_FIRST_AIDER = "Mental health first aider" - MENTOR = "Mentor" - NETWORK_LEAD = "Network lead" - NETWORK_DEPUTY_LEAD = "Network deputy lead" - CIRRUS_CHAMPION = "Cirrus champion" - HEALTH_WELLBEING_CHAMPION = "Health & wellbeing champion" - FAST_STREAM_REP = "Fast stream rep" - OVERSEAS_STAFF_REP = "Overseas staff rep" - DIGITAL_CHAMPION = "Digital champion" - INFORMATION_MANAGER = "Information manager" - INDEPENDENT_PANEL_MEMBER = "Independent panel member" - DIVISIONAL_SECURITY_COORDINATOR = "Divisional security coordinator" - DDAT_CHAMPION = "DDaT champion" - HONOURS_CHAMPION = "Honours champion" + FIRE_WARDEN = "fire_warden", "Fire warden" + FIRST_AIDER = "first_aider", "First aider" + MENTAL_HEALTH_FIRST_AIDER = "mental_health_first_aider", "Mental health first aider" + MENTOR = "mentor", "Mentor" + NETWORK_LEAD = "network_lead", "Network lead" + NETWORK_DEPUTY_LEAD = "network_deputy_lead", "Network deputy lead" + CIRRUS_CHAMPION = "cirrus_champion", "Cirrus champion" + HEALTH_WELLBEING_CHAMPION = ( + "health_wellbeing_champion", + "Health & wellbeing champion", + ) + FAST_STREAM_REP = "fast_stream_rep", "Fast stream rep" + OVERSEAS_STAFF_REP = "overseas_staff_rep", "Overseas staff rep" + DIGITAL_CHAMPION = "digital_champion", "Digital champion" + INFORMATION_MANAGER = "information_manager", "Information manager" + INDEPENDENT_PANEL_MEMBER = "independent_panel_member", "Independent panel member" + DIVISIONAL_SECURITY_COORDINATOR = ( + "divisional_security_coordinator", + "Divisional security coordinator", + ) + DDAT_CHAMPION = "ddat_champion", "DDaT champion" + HONOURS_CHAMPION = "honours_champion", "Honours champion" class RemoteWorking(models.TextChoices): - OFFICE_WORKER = "office_worker" - REMOTE_WORKER = "remote_worker" - SPLIT = "split" + OFFICE_WORKER = "office_worker", "Office worker" + REMOTE_WORKER = "remote_worker", "Remote worker" + SPLIT = "split", "Split" class PeopleFinderProfile(AbstractHistoricalModel): diff --git a/profiles/tests/test_services_peoplefinder.py b/profiles/tests/test_services_peoplefinder.py index e39f22d..e22dde8 100644 --- a/profiles/tests/test_services_peoplefinder.py +++ b/profiles/tests/test_services_peoplefinder.py @@ -166,8 +166,8 @@ def test_get_remote_working_options(): options = peoplefinder_services.get_remote_working() assert options == [ - ("office_worker", "Office Worker"), - ("remote_worker", "Remote Worker"), + ("office_worker", "Office worker"), + ("remote_worker", "Remote worker"), ("split", "Split"), ] @@ -176,13 +176,13 @@ def test_get_workday_options(): options = peoplefinder_services.get_workdays() assert options == [ - ("Monday", "Mon"), - ("Tuesday", "Tue"), - ("Wednesday", "Wed"), - ("Thursday", "Thu"), - ("Friday", "Fri"), - ("Saturday", "Sat"), - ("Sunday", "Sun"), + ("mon", "Monday"), + ("tue", "Tuesday"), + ("wed", "Wednesday"), + ("thu", "Thursday"), + ("fri", "Friday"), + ("sat", "Saturday"), + ("sun", "Sunday"), ] @@ -190,14 +190,14 @@ def test_get_learning_interest_options(): options = peoplefinder_services.get_learning_interests() assert options == [ - ("Work shadowing", "Shadowing"), - ("Mentoring", "Mentoring"), - ("Research", "Research"), - ("Overseas posts", "Overseas Posts"), - ("Secondment", "Secondment"), - ("Parliamentary work", "Parliamentary Work"), - ("Ministerial submissions", "Ministerial Submissions"), - ("Coding", "Coding"), + ("shadowing", "Work shadowing"), + ("mentoring", "Mentoring"), + ("research", "Research"), + ("overseas_posts", "Overseas posts"), + ("secondment", "Secondment"), + ("parliamentary_work", "Parliamentary work"), + ("ministerial_submissions", "Ministerial submissions"), + ("coding", "Coding"), ] @@ -205,36 +205,36 @@ def test_get_professions(): options = peoplefinder_services.get_professions() assert options == [ - ("Government commercial and contract management", "Commercial"), - ("Corporate finance profession", "Corp Finance"), - ("Counter-fraud standards and profession", "Counter Fraud"), - ("Digital, data and technology profession", "Digital Data Tech"), - ("Government communication service", "Gov Comms"), - ("Government economic service", "Gov Economics"), - ("Government finance profession", "Gov Finance"), - ("Government IT profession", "Gov It"), - ("Government knowledge and information management profession", "Gov Knowledge"), - ("Government legal service", "Gov Legal"), - ("Government occupational psychology profession", "Gov Occupational"), - ("Government operational research service", "Gov Operational"), - ("Government planning inspectors", "Gov Planning Inspectors"), - ("Government planning profession", "Gov Planning Profession"), - ("Government property profession", "Gov Property"), - ("Government security profession", "Gov Security"), - ("Government science and engineering profession", "Gov Science"), - ("Government social research profession", "Gov Social"), - ("Government statistical service profession", "Gov Statistical"), - ("Government tax profession", "Gov Tax"), - ("Government veterinary profession", "Gov Vet"), - ("Human resources profession", "Human Resources"), - ("Intelligence analysis", "Intelligence Analysis"), - ("Internal audit profession", "Internal Audit"), - ("Medical profession", "Medical Profession"), - ("Operational delivery profession", "Operation Delivery"), - ("Policy profession", "Policy Profiession"), - ("Procurement profession", "Procurement Profession"), - ("Project delivery profession", "Project Delivery"), - ("International trade profession", "International Trade"), + ("commercial", "Government commercial and contract management"), + ("corp_finance", "Corporate finance profession"), + ("counter_fraud", "Counter-fraud standards and profession"), + ("digital_data_tech", "Digital, data and technology profession"), + ("gov_comms", "Government communication service"), + ("gov_economics", "Government economic service"), + ("gov_finance", "Government finance profession"), + ("gov_it", "Government IT profession"), + ("gov_knowledge", "Government knowledge and information management profession"), + ("gov_legal", "Government legal service"), + ("gov_occupational", "Government occupational psychology profession"), + ("gov_operational", "Government operational research service"), + ("gov_planning_inspectors", "Government planning inspectors"), + ("gov_planning_profession", "Government planning profession"), + ("gov_property", "Government property profession"), + ("gov_security", "Government security profession"), + ("gov_science", "Government science and engineering profession"), + ("gov_social", "Government social research profession"), + ("gov_statistical", "Government statistical service profession"), + ("gov_tax", "Government tax profession"), + ("gov_vet", "Government veterinary profession"), + ("human_resources", "Human resources profession"), + ("intelligence_analysis", "Intelligence analysis"), + ("internal_audit", "Internal audit profession"), + ("medical_profession", "Medical profession"), + ("operation_delivery", "Operational delivery profession"), + ("policy_profiession", "Policy profession"), + ("procurement_profession", "Procurement profession"), + ("project_delivery", "Project delivery profession"), + ("international_trade", "International trade profession"), ]