Skip to content
Open

FIXES #424

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
105 changes: 60 additions & 45 deletions app/hackathon_variables.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,61 +4,72 @@

from django.utils import timezone

HACKATHON_NAME = 'HackUPC'
HACKATHON_NAME = "HackUPC"
# What's the name for the application
HACKATHON_APPLICATION_NAME = 'My HackUPC'
HACKATHON_APPLICATION_NAME = "My HackUPC"
# Hackathon timezone
TIME_ZONE = 'CET'
TIME_ZONE = "CET"
# This description will be used on the html and sharing meta tags
HACKATHON_DESCRIPTION = 'Join us for BarcelonaTech\'s hackathon. 36h. May 3 - 5.'
HACKATHON_DESCRIPTION = "Join us for BarcelonaTech's hackathon. 36h. April 24 - 26."
# Domain where application is deployed, can be set by env variable
HACKATHON_DOMAIN = os.environ.get('DOMAIN', None)
HEROKU_APP_NAME = os.environ.get('HEROKU_APP_NAME', None)
HACKATHON_DOMAIN = os.environ.get("DOMAIN", None)
HEROKU_APP_NAME = os.environ.get("HEROKU_APP_NAME", None)
if HEROKU_APP_NAME and not HACKATHON_DOMAIN:
HACKATHON_DOMAIN = '%s.herokuapp.com' % HEROKU_APP_NAME
HACKATHON_DOMAIN = "%s.herokuapp.com" % HEROKU_APP_NAME
elif not HACKATHON_DOMAIN:
HACKATHON_DOMAIN = 'localhost:8000'
HACKATHON_DOMAIN = "localhost:8000"
# Hackathon contact email: where should all hackers contact you. It will also be used as a sender for all emails
HACKATHON_CONTACT_EMAIL = 'contact@hackupc.com'
HACKATHON_CONTACT_EMAIL = "contact@hackupc.com"
# Hackathon logo url, will be used on all emails
HACKATHON_LOGO_URL = 'https://my.hackupc.com/static/logo.png'
HACKATHON_LOGO_URL = "https://my.hackupc.com/static/logo.png"

HACKATHON_OG_IMAGE = 'https://hackupc.com/ogimage.png?v=2021'
HACKATHON_OG_IMAGE = "https://hackupc.com/ogimage.png?v=2021"
# (OPTIONAL) Track visits on your website
HACKATHON_GOOGLE_ANALYTICS = 'UA-69542332-2'
HACKATHON_GOOGLE_ANALYTICS = "UA-69542332-2"
# (OPTIONAL) Hackathon Twitter user
HACKATHON_TWITTER_ACCOUNT = 'hackupc'
HACKATHON_TWITTER_ACCOUNT = "hackupc"
# (OPTIONAL) Hackathon Facebook page
HACKATHON_FACEBOOK_PAGE = 'hackupc'
HACKATHON_FACEBOOK_PAGE = "hackupc"
# (OPTIONAL) Hackathon YouTube channel
HACKATHON_YOUTUBE_PAGE = 'UCiiRorGg59Xd5Sjj9bjIt-g'
HACKATHON_YOUTUBE_PAGE = "UCiiRorGg59Xd5Sjj9bjIt-g"
# (OPTIONAL) Hackathon Instagram user
HACKATHON_INSTAGRAM_ACCOUNT = 'hackupc'
HACKATHON_INSTAGRAM_ACCOUNT = "hackupc"
# (OPTIONAL) Hackathon Medium user
HACKATHON_MEDIUM_ACCOUNT = 'hackupc'
HACKATHON_MEDIUM_ACCOUNT = "hackupc"
# (OPTIONAL) Github Repo for this project (so meta)
HACKATHON_GITHUB_REPO = 'https://github.com/hackupc/myhackupc/'
HACKATHON_GITHUB_REPO = "https://github.com/hackupc/myhackupc/"

# (OPTIONAL) Applications deadline
HACKATHON_APP_DEADLINE = timezone.datetime(2030, 4, 24, 23, 59, tzinfo=timezone.pytz.timezone(TIME_ZONE))
VOLUNTEER_APP_DEADLINE = timezone.datetime(2030, 4, 18, 23, 59, tzinfo=timezone.pytz.timezone(TIME_ZONE))
MENTOR_APP_DEADLINE = timezone.datetime(2030, 3, 25, 23, 59, tzinfo=timezone.pytz.timezone(TIME_ZONE))
HACKATHON_APP_DEADLINE = timezone.datetime(
2026, 4, 1, 23, 59, tzinfo=timezone.pytz.timezone(TIME_ZONE)
)
VOLUNTEER_APP_DEADLINE = timezone.datetime(
2026, 3, 27, 23, 59, tzinfo=timezone.pytz.timezone(TIME_ZONE)
)
MENTOR_APP_DEADLINE = timezone.datetime(
2026, 3, 27, 23, 59, tzinfo=timezone.pytz.timezone(TIME_ZONE)
)

# (OPTIONAL) Online checkin activated
ONLINE_CHECKIN = timezone.datetime(2020, 5, 3, 17, 00, tzinfo=timezone.pytz.timezone(TIME_ZONE))
ONLINE_CHECKIN = timezone.datetime(
2020, 5, 3, 17, 00, tzinfo=timezone.pytz.timezone(TIME_ZONE)
)
# (OPTIONAL) When to arrive at the hackathon
HACKATHON_ARRIVE = ''
HACKATHON_ARRIVE = ""

# (OPTIONAL) When to arrive at the hackathon
HACKATHON_LEAVE = ''
HACKATHON_LEAVE = ""

# (OPTIONAL) Hackathon live page
HACKATHON_LIVE_PAGE = 'https://live.hackupc.com'
HACKATHON_LIVE_PAGE = "https://live.hackupc.com"

# (OPTIONAL) Regex to automatically match organizers emails and set them as organizers when signing up
REGEX_HACKATHON_ORGANIZER_EMAIL = '^.*@hackupc\.com$'
REGEX_HACKATHON_ORGANIZER_EMAIL = "^.*@hackupc\.com$"

# (OPTIONAL) Send 500 errors to email while on production mode
HACKATHON_DEV_EMAILS = ['devs@hackupc.com', ]
HACKATHON_DEV_EMAILS = [
"devs@hackupc.com",
]

# Baggage configuration
BAGGAGE_ENABLED = True
Expand All @@ -67,10 +78,14 @@
# Reimbursement configuration
REIMBURSEMENT_ENABLED = True
DEFAULT_REIMBURSEMENT_AMOUNT = 100
CURRENCY = '€'
REIMBURSEMENT_EXPIRY_DATE = timezone.datetime(2025, 5, 2, 17, 00, tzinfo=timezone.pytz.timezone(TIME_ZONE))
REIMBURSEMENT_REQUIREMENTS = 'You have to submit a project and demo it during the event in order to get reimbursed'
REIMBURSEMENT_DEADLINE = timezone.datetime(2025, 5, 5, 23, 59, tzinfo=timezone.pytz.timezone(TIME_ZONE))
CURRENCY = "€"
REIMBURSEMENT_EXPIRY_DATE = timezone.datetime(
2025, 5, 2, 17, 00, tzinfo=timezone.pytz.timezone(TIME_ZONE)
)
REIMBURSEMENT_REQUIREMENTS = "You have to submit a project and demo it during the event in order to get reimbursed"
REIMBURSEMENT_DEADLINE = timezone.datetime(
2025, 5, 5, 23, 59, tzinfo=timezone.pytz.timezone(TIME_ZONE)
)

# (OPTIONAL) Max team members. Defaults to 4
TEAMS_ENABLED = True
Expand All @@ -82,9 +97,9 @@
# (OPTIONAL) Slack credentials
# Highly recommended to create a separate user account to extract the token from
SLACK = {
'team': os.environ.get('SL_TEAM', 'test'),
"team": os.environ.get("SL_TEAM", "test"),
# Get it here: https://api.slack.com/custom-integrations/legacy-tokens
'token': os.environ.get('SL_TOKEN', None)
"token": os.environ.get("SL_TOKEN", None),
}

# (OPTIONAL) Logged in cookie
Expand All @@ -95,16 +110,16 @@
# Hardware configuration
# Hardware request time length (in minutes)
HARDWARE_ENABLED = True
#Hardware request time length (in minutes)
# Hardware request time length (in minutes)
HARDWARE_REQUEST_TIME = 15


SLACK_BOT = {
'id': os.environ.get('SL_BOT_ID', None),
'token': os.environ.get('SL_BOT_TOKEN', None),
'channel': os.environ.get('SL_BOT_CHANNEL', None),
'director1': os.environ.get('SL_BOT_DIRECTOR1', None),
'director2': os.environ.get('SL_BOT_DIRECTOR2', None)
"id": os.environ.get("SL_BOT_ID", None),
"token": os.environ.get("SL_BOT_TOKEN", None),
"channel": os.environ.get("SL_BOT_CHANNEL", None),
"director1": os.environ.get("SL_BOT_DIRECTOR1", None),
"director2": os.environ.get("SL_BOT_DIRECTOR2", None),
}
# Enable judging tab
JUDGING_ENABLED = False
Expand All @@ -119,7 +134,7 @@
# Enable blacklist separate pipeline (disabled by default)
BLACKLIST_ENABLED = True

SUPPORTED_RESUME_EXTENSIONS = ['.pdf']
SUPPORTED_RESUME_EXTENSIONS = [".pdf"]

# Mentor/Volunteer applications can expire if they are invited, set to False to not
MENTOR_EXPIRES = False
Expand All @@ -129,9 +144,9 @@
HYBRID_HACKATHON = False
N_MAX_LIVE_HACKERS = 600

SERVER_EMAIL = 'HackUPC Team <noreply@hackupc.com>'
SERVER_EMAIL = "HackUPC Team <noreply@hackupc.com>"

CODE_CONDUCT_LINK = 'https://legal.hackersatupc.org/hackupc/code_of_conduct'
LEGAL_LINK = 'https://legal.hackersatupc.org/hackupc/legal_notice'
PRIVACY_LINK = 'https://legal.hackersatupc.org/hackupc/privacy_and_cookies'
TERMS_LINK = 'https://legal.hackersatupc.org/hackupc/terms_and_conditions'
CODE_CONDUCT_LINK = "https://legal.hackersatupc.org/hackupc/code_of_conduct"
LEGAL_LINK = "https://legal.hackersatupc.org/hackupc/legal_notice"
PRIVACY_LINK = "https://legal.hackersatupc.org/hackupc/privacy_and_cookies"
TERMS_LINK = "https://legal.hackersatupc.org/hackupc/terms_and_conditions"
6 changes: 2 additions & 4 deletions app/templates/base.html
Original file line number Diff line number Diff line change
Expand Up @@ -111,10 +111,8 @@
{% endif %}
</li>
{% if request.user.is_organizer %}
{% if request.user.has_volunteer_access %}
<li class="{% if 'volunteer' in request.build_absolute_uri %}active{% endif %}"><a
href="{% url 'volunteer_list' %}">Volunteer</a></li>
{% endif %}
<li class="{% if 'volunteer' in request.build_absolute_uri %}active{% endif %}"><a
href="{% url 'volunteer_list' %}">Volunteer</a></li>
{% if request.user.has_mentor_access %}
<li class="{% if 'mentor' in request.build_absolute_uri %}active{% endif %}"><a
href="{% url 'mentor_list' %}">Mentor</a></li>
Expand Down
71 changes: 37 additions & 34 deletions organizers/templates/other_application_detail.html
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ <h3>Personal</h3>
{% include 'include/field.html' with desc='Name' value=app.name %}
{% elif app.user.is_volunteer %}
{% include 'include/field.html' with desc='Name' value=app.user.name %}
{% include 'include/field.html' with desc='Is over 18?' value=app.under_age|yesno %}
{% include 'include/field.html' with desc='Is underage?' value=app.under_age|yesno %}
{% include 'include/field.html' with desc='Studies and course/graduation' value=app.studies_and_course %}
{% else %}
{% include 'include/field.html' with desc='Name' value=app.user.name %}
Expand All @@ -35,7 +35,7 @@ <h3>Personal</h3>
{% include 'include/field.html' with desc='Gender' value=app.get_gender_display %}
{% include 'include/field.html' with desc='Other gender' value=app.other_gender %}
{% include 'include/field.html' with desc='In BCN Apr-May' value=app.lennyface|yesno %}
<hr>
<hr>
<dt>
<h3>Validation</h3>
</dt>
Expand All @@ -45,16 +45,18 @@ <h3>Validation</h3>
<form action="" method="post">
{% csrf_token %}
<input type="hidden" name="app_id" value="{{ app.pk }}"/>
<button name="change_valid" class="btn btn-default btn-block" value="valid">
{% if app.valid %}
Invalidate
{% else %}
Validate
{% endif %}
</button>
{% if user.has_volunteer_access %}
<button name="change_valid" class="btn btn-default btn-block" value="valid">
{% if app.valid %}
Invalidate
{% else %}
Validate
{% endif %}
</button>
{% endif %}
</form>
<br>
<hr>
<hr>
<dt>
<h3>Volunteering</h3>
</dt>
Expand Down Expand Up @@ -188,7 +190,7 @@ <h4>{{ comment.text }}</h4>
{% csrf_token %}
<input type="hidden" name="app_id" value="{{ app.pk }}"/>
<textarea name="comment_text" class="form-control" placeholder="Write a comment..."
rows="3" required maxlength="500"></textarea>
rows="3" required maxlength="500"></textarea>
<button name="add_comment" class="btn btn-block btn-default" value="comment">Add comment
</button>
</form>
Expand All @@ -198,28 +200,29 @@ <h4>{{ comment.text }}</h4>

{% block out_panel %}
{% if app and not app.user.is_sponsor %}
<div class="panel-footer">

<form action="" method="post">
{% csrf_token %}
<input type="hidden" name="app_id" value="{{ app.pk }}"/>
{% if app.is_pending %}
<button name="invite" class="btn btn-success btn-block" value="invite">Invite</button>
{% elif app.is_expired %}
<button name="invite" class="btn btn-success btn-block" value="invite">Invite again</button>
{% elif app.is_invited %}
<button name="cancel_invite" class="btn btn-danger btn-block" value="cancel_invite">Cancel invitation</button>
{% elif app.is_rejected %}
<button name="cancel_invite" class="btn btn-danger btn-block" value="cancel_invite">Move back to review</button>
{% endif %}
</form>
<br>
<form action="" method="post">
{% csrf_token %}
<input type="hidden" name="app_id" value="{{ app.pk }}"/>
<button name="reject" class="btn btn-danger btn-block" value="reject">Reject</button>
</form>
</div>

{% if app and app.user.is_volunteer and not user.has_volunteer_access %}
{% else %}
<div class="panel-footer">
<form action="" method="post">
{% csrf_token %}
<input type="hidden" name="app_id" value="{{ app.pk }}"/>
{% if app.is_pending %}
<button name="invite" class="btn btn-success btn-block" value="invite">Invite</button>
{% elif app.is_expired %}
<button name="invite" class="btn btn-success btn-block" value="invite">Invite again</button>
{% elif app.is_invited %}
<button name="cancel_invite" class="btn btn-danger btn-block" value="cancel_invite">Cancel invitation</button>
{% elif app.is_rejected %}
<button name="cancel_invite" class="btn btn-danger btn-block" value="cancel_invite">Move back to review</button>
{% endif %}
</form>
<br>
<form action="" method="post">
{% csrf_token %}
<input type="hidden" name="app_id" value="{{ app.pk }}"/>
<button name="reject" class="btn btn-danger btn-block" value="reject">Reject</button>
</form>
</div>
{% endif %}
{% endif %}
{% endblock %}
Loading