Skip to content
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
18 changes: 18 additions & 0 deletions applications/forms/hacker.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ class HackerApplicationForm(_BaseApplicationForm):
bootstrap_field_info = {
"🎓 Education Info": {
"fields": [
{"name": "kind_studies", "space": 12},
{"name": "university", "space": 12},
{"name": "degree", "space": 12},
{"name": "graduation_year", "space": 12},
Expand Down Expand Up @@ -131,7 +132,24 @@ def clean_projects(self):
)
return data

def clean_kind_studies(self):
data = self.cleaned_data["kind_studies"]
if not data or data == "":
raise forms.ValidationError("Please select your current studies.")
return data


first_timer = common_first_timer()

kind_studies = forms.ChoiceField(
required=True,
label='What kind of studies are you currently pursuing?',
choices=([('', '- Select an option -')] + models.constants.KIND_STUDIES),
widget=forms.Select(
attrs={'class': 'form-control'}
)
)


university = common_university()

Expand Down
60 changes: 60 additions & 0 deletions applications/migrations/0062_auto_20251228_1817.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# Generated by Django 3.2.23 on 2025-12-28 18:17

import django.core.validators
from django.db import migrations, models
import multiselectfield.db.fields


class Migration(migrations.Migration):

dependencies = [
('applications', '0061_volunteerapplication_other_hear_about_us'),
]

operations = [
migrations.AddField(
model_name='hackerapplication',
name='kind_studies',
field=models.CharField(choices=[('SECONDARY', 'Secondary Education - Baccalaureate'), ('VOCATIONAL', 'Vocational Training (FP)'), ('BACHELOR', 'Bachelor’s Degree'), ('MASTER', 'Master’s Degree'), ('OTHER', 'Other')], default='NA', max_length=300),
),
migrations.AlterField(
model_name='hackerapplication',
name='graduation_year',
field=models.IntegerField(choices=[(2025, '2025'), (2026, '2026'), (2027, '2027'), (2028, '2028'), (2029, '2029'), (2030, '2030'), (2031, '2031'), (2032, '2032')], default=2026),
),
migrations.AlterField(
model_name='hackerapplication',
name='phone_number',
field=models.CharField(blank=True, max_length=16, null=True, validators=[django.core.validators.RegexValidator(message="Phone number must be entered in the format: '+#########'. Up to 16 digits allowed, with optional spaces.", regex='^\\+?1?\\d{1,4}(\\s?\\d{1,4}){2,8}$')]),
),
migrations.AlterField(
model_name='mentorapplication',
name='graduation_year',
field=models.IntegerField(choices=[(2025, '2025'), (2026, '2026'), (2027, '2027'), (2028, '2028'), (2029, '2029'), (2030, '2030'), (2031, '2031'), (2032, '2032')], default=2026),
),
migrations.AlterField(
model_name='mentorapplication',
name='phone_number',
field=models.CharField(blank=True, max_length=16, null=True, validators=[django.core.validators.RegexValidator(message="Phone number must be entered in the format: '+#########'. Up to 16 digits allowed, with optional spaces.", regex='^\\+?1?\\d{1,4}(\\s?\\d{1,4}){2,8}$')]),
),
migrations.AlterField(
model_name='mentorapplication',
name='which_hack',
field=multiselectfield.db.fields.MultiSelectField(blank=True, choices=[(0, 'HackUPC2019 o anterior'), (1, 'HackUPC 2021'), (2, 'HackUPC 2022'), (3, 'HackUPC 2023'), (4, 'HackUPC 2024'), (5, 'HackUPC 2025')], max_length=11, null=True),
),
migrations.AlterField(
model_name='volunteerapplication',
name='graduation_year',
field=models.IntegerField(choices=[(2025, '2025'), (2026, '2026'), (2027, '2027'), (2028, '2028'), (2029, '2029'), (2030, '2030'), (2031, '2031'), (2032, '2032')], default=2026),
),
migrations.AlterField(
model_name='volunteerapplication',
name='phone_number',
field=models.CharField(blank=True, max_length=16, null=True, validators=[django.core.validators.RegexValidator(message="Phone number must be entered in the format: '+#########'. Up to 16 digits allowed, with optional spaces.", regex='^\\+?1?\\d{1,4}(\\s?\\d{1,4}){2,8}$')]),
),
migrations.AlterField(
model_name='volunteerapplication',
name='which_hack',
field=multiselectfield.db.fields.MultiSelectField(choices=[(0, 'HackUPC2019 o anterior'), (1, 'HackUPC 2021'), (2, 'HackUPC 2022'), (3, 'HackUPC 2023'), (4, 'HackUPC 2024'), (5, 'HackUPC 2025')], max_length=11),
),
]
11 changes: 11 additions & 0 deletions applications/models/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,17 @@
(2, "Sunday")
]

ST_SECONDARY = 'SECONDARY'
ST_VOCATIONAL = 'VOCATIONAL'
ST_BACHELOR = 'BACHELOR'
ST_MASTER = 'MASTER'
ST_OTHER = 'OTHER'

KIND_STUDIES = [
(ST_SECONDARY, 'Secondary Education - Baccalaureate'), (ST_VOCATIONAL, 'Vocational Training (FP)'),
(ST_BACHELOR, 'Bachelor’s Degree'), (ST_MASTER, 'Master’s Degree'), (ST_OTHER, 'Other')
]

HACK_NAME = getattr(hackathon_variables, 'HACKATHON_NAME', "HackAssistant")
EXTRA_NAME = ['2019 o anterior', ' 2021', ' 2022', ' 2023', ' 2024', ' 2025']
PREVIOUS_HACKS = [(i, HACK_NAME + EXTRA_NAME[i]) for i in range(0, len(EXTRA_NAME))]
Expand Down
3 changes: 2 additions & 1 deletion applications/models/hacker.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ class HackerApplication(BaseApplication):
# Random lenny face
lennyface = models.CharField(max_length=20, default="-.-")

# University
# Studies
kind_studies = models.CharField(max_length=300, choices=KIND_STUDIES, default=NO_ANSWER)
graduation_year = models.IntegerField(choices=YEARS, default=DEFAULT_YEAR)
university = models.CharField(max_length=300)
degree = models.CharField(max_length=300)
Expand Down