Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
f6091cd
Merge pull request #1 from rithik/master
rithik Dec 24, 2020
c7c4ab2
Merge branch 'rithik:master' into master
rithik Nov 2, 2021
1f46484
updating for 22
wmueller49 Jan 8, 2022
875436d
adding sh file
wmueller49 Jan 8, 2022
bd081c9
updating for 22
wmueller49 Jan 8, 2022
243c54e
updated python version
wmueller49 Jan 8, 2022
9d05268
updated python version
wmueller49 Jan 8, 2022
9325aa3
initial commit for new version
dylanherbig Dec 9, 2022
1dec5b5
- updated sendgrid api key
dylanherbig Dec 17, 2022
c6fb5ff
- updated application to include travel and dietary restriction
dylanherbig Dec 23, 2022
3faa8a6
created a registration page for onboarding:
dylanherbig Jan 22, 2023
3d3ce45
merged registration into v2
dylanherbig Jan 22, 2023
e31f5c9
fixed too many fatal requests error
dylanherbig Jan 30, 2023
8c3161f
fixed ‘confirm password’ input box
dylanherbig Feb 9, 2023
871661a
adding dietary restriction to csv, updating confirmation email
wmueller49 Feb 9, 2023
1dd5b7b
Merge pull request #2 from hoohacks/dietary_and_email
wmueller49 Feb 9, 2023
d47ee34
Revert "adding dietary restriction to csv, updating confirmation email"
wmueller49 Feb 9, 2023
d9c25b7
Merge pull request #3 from hoohacks/revert-2-dietary_and_email
wmueller49 Feb 9, 2023
661d3e9
removing verification email requirment, adding resend verification op…
wmueller49 Feb 10, 2023
08dcaab
Merge pull request #4 from hoohacks/email
wmueller49 Feb 10, 2023
3bace6f
fixed settings
wmueller49 Feb 10, 2023
755900d
Merge pull request #5 from hoohacks/email
wmueller49 Feb 10, 2023
eb7289f
fixing settings pt 2
wmueller49 Feb 10, 2023
84d6509
Merge pull request #6 from hoohacks/email
wmueller49 Feb 10, 2023
8caa314
fixed weird redirect bug after registration
wmueller49 Feb 10, 2023
99e0c9a
Merge pull request #7 from hoohacks/email
wmueller49 Feb 10, 2023
be4f1ca
fixing resend verification
wmueller49 Feb 12, 2023
86834fc
Merge pull request #8 from hoohacks/email
wmueller49 Feb 12, 2023
8b41980
integrated dynamic bar chart for temporal application statistics, and…
dylanherbig Feb 13, 2023
b2d49f0
removed extraneous html element
dylanherbig Feb 13, 2023
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
2 changes: 1 addition & 1 deletion Procfile
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
release: python3 manage.py migrate
web: bin/start-pgbouncer-stunnel daphne hoohacks.asgi:application --port $PORT --bind 0.0.0.0 -v2
web: gunicorn -k uvicorn.workers.UvicornWorker hoohacks.asgi --preload
worker: python manage.py runworker channels -v2
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Generated by Django 4.1.3 on 2022-12-21 10:56

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('administration', '0002_settings_judging_deadline'),
]

operations = [
migrations.AlterField(
model_name='settings',
name='application_confirmation_deadline',
field=models.DateTimeField(),
),
migrations.AlterField(
model_name='settings',
name='application_submission_deadline',
field=models.DateTimeField(),
),
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Generated by Django 4.1.3 on 2022-12-21 10:58

from django.db import migrations


class Migration(migrations.Migration):

dependencies = [
('administration', '0003_alter_settings_application_confirmation_deadline_and_more'),
]

operations = [
migrations.RemoveField(
model_name='settings',
name='application_confirmation_deadline',
),
migrations.RemoveField(
model_name='settings',
name='application_submission_deadline',
),
]
16 changes: 12 additions & 4 deletions administration/models.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
from django.db import models
from django.conf import settings
import datetime
from pytz import timezone
from datetime import datetime

class Settings(models.Model):
'''
Expand All @@ -11,9 +10,18 @@ class Settings(models.Model):
APPLICATION_CONFIRMATION_DEADLINE = tz.localize(datetime.datetime(2019, 11, 21, 23, 59, 59, 0))
APPLICATION_CONFIRMATION_DEADLINE_FMT = APPLICATION_CONFIRMATION_DEADLINE.strftime("%B %d, %Y %I:%M:%S %Z")
'''
application_submission_deadline = models.DateTimeField(auto_now_add=True)
application_confirmation_deadline = models.DateTimeField(auto_now_add=True)

'''
CODE AS OF 12/08/2022, edited
application_submission_deadline = settings.TZ.localize(datetime(2023, 11, 20, 23, 59, 59, 0))
application_confirmation_deadline = settings.TZ.localize(datetime(2023, 11, 20, 23, 59, 59, 0))
judging_deadline = models.DateTimeField(auto_now_add=True)
'''

application_submission_deadline = settings.TZ.localize(datetime(2023, 2, 25, 23, 59, 59, 0))
application_confirmation_deadline = settings.TZ.localize(datetime(2023, 3, 4, 23, 59, 59, 0))
judging_deadline = models.DateTimeField(auto_now_add=True)


def application_submission_deadline_fmt(self):
return self.application_submission_deadline.astimezone(settings.TZ).strftime("%B %d, %Y %I:%M %p %Z")
Expand Down
2 changes: 1 addition & 1 deletion administration/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.conf.urls import url, include
from django.conf.urls import include
from django.urls import path
from . import views

Expand Down
19 changes: 16 additions & 3 deletions administration/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,8 @@
from django.http import HttpResponse, Http404, JsonResponse
from django.core.files import File

import glob
import uuid
from pytz import timezone
import pytz
from datetime import datetime
from applications.models import Application, Confirmation, TshirtOrder
from users.models import Puzzle, PuzzleTeam, User, EmailView
Expand All @@ -20,7 +18,7 @@
from asgiref.sync import async_to_sync
from . import nametag
from zipfile import ZipFile
import os
from collections import Counter
import json
import random
from itertools import product
Expand Down Expand Up @@ -217,6 +215,20 @@ def get_stats():
schools[a.school]['rejected']+=1
if a.app_complete:
schools[a.school]['complete']+=1

applications_completed = Counter()
for row in Application.objects.filter(app_complete=True).order_by('created_at'):
yymmdd = row.created_at.strftime("%m/%d/%Y")
applications_completed[yymmdd] += 1

# unpack dict keys / values into two lists
labels, values = zip(*applications_completed.items())

applications_completed_stats = {
"labels": labels,
"values": values,
}


for c in Confirmation.objects.all():
school = c.user.application.school
Expand Down Expand Up @@ -248,6 +260,7 @@ def get_stats():
"declined": Confirmation.objects.filter(declined=True).count(),
"reimbursement": Application.objects.filter(travel=True).count(),
"total_reimbursement": "${}".format(total_reimbursement),
"applications_completed": applications_completed_stats,
"total_accepted_reimbursement": "${}".format(total_accepted_reimbursement),
"tshirt": "XS({}) S({}) M({}) L({}) XL({})".format(
Confirmation.objects.filter(tshirt="XS").count(),
Expand Down
18 changes: 18 additions & 0 deletions applications/migrations/0011_application_dietary_restriction.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Generated by Django 4.1.3 on 2022-12-21 10:56

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('applications', '0010_confirmation_discord_id'),
]

operations = [
migrations.AddField(
model_name='application',
name='dietary_restriction',
field=models.CharField(default='', max_length=100),
),
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Generated by Django 4.1.3 on 2023-02-13 06:20

from django.db import migrations, models
import django.utils.timezone


class Migration(migrations.Migration):

dependencies = [
('applications', '0011_application_dietary_restriction'),
]

operations = [
migrations.AddField(
model_name='application',
name='created_at',
field=models.DateTimeField(auto_now_add=True, default=django.utils.timezone.now),
preserve_default=False,
),
migrations.AddField(
model_name='application',
name='updated_at',
field=models.DateTimeField(auto_now=True),
),
migrations.AddField(
model_name='confirmation',
name='created_at',
field=models.DateTimeField(auto_now_add=True, default=django.utils.timezone.now),
preserve_default=False,
),
migrations.AddField(
model_name='confirmation',
name='updated_at',
field=models.DateTimeField(auto_now=True),
),
migrations.AddField(
model_name='tshirtorder',
name='created_at',
field=models.DateTimeField(auto_now_add=True, default=django.utils.timezone.now),
preserve_default=False,
),
migrations.AddField(
model_name='tshirtorder',
name='updated_at',
field=models.DateTimeField(auto_now=True),
),
]
15 changes: 12 additions & 3 deletions applications/models.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,15 @@
from django.db import models
from users.models import User

class Application(models.Model):
# Abstract Model to record time of any POST and PUT operation
class TimeStampMixin(models.Model):
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)

class Meta:
abstract = True

class Application(TimeStampMixin):
user = models.OneToOneField(
User,
on_delete=models.CASCADE,
Expand All @@ -18,6 +26,7 @@ class Application(models.Model):
describe = models.CharField(max_length=200, default="")
why = models.CharField(max_length=1800, default="")
major = models.CharField(max_length=1000, default="")
dietary_restriction = models.CharField(max_length=100, default="")

birthday = models.CharField(max_length=1000, default="")
mlh_rules = models.BooleanField(default=False)
Expand Down Expand Up @@ -45,7 +54,7 @@ def full_name(self):
def __str__(self):
return "Application - {}".format(self.user)

class Confirmation(models.Model):
class Confirmation(TimeStampMixin):
user = models.OneToOneField(
User,
on_delete=models.CASCADE,
Expand All @@ -67,7 +76,7 @@ class Confirmation(models.Model):
def __str__(self):
return "Confirmation: {}".format(self.user)

class TshirtOrder(models.Model):
class TshirtOrder(TimeStampMixin):
user = models.OneToOneField(
User,
on_delete=models.CASCADE,
Expand Down
2 changes: 1 addition & 1 deletion applications/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.conf.urls import url, include
from django.conf.urls import include
from django.urls import path
from . import views

Expand Down
20 changes: 8 additions & 12 deletions applications/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ def application(request, msg=''):
"grad_year": settings.GRADUATION_YEARS,
"highlight": "application",
"travel_methods": settings.TRAVEL_METHODS,
"dietary_restrictions": settings.DIETARY_RESTRICTIONS,
"msg": msg,
"allow": ALLOW
})
Expand Down Expand Up @@ -77,6 +78,11 @@ def application(request, msg=''):
mlh = request.POST.get('mlh', '')
mlh_consent = request.POST.get('mlh-consent', '')
referrer = request.POST.get('referrer', '')
dietary_restriction = request.POST.get('dietary-restriction', '')
travel = True if request.POST.get('travel', '') == "Yes" else False

if dietary_restriction == "Other":
dietary_restriction = request.POST.get('dietary-other', '')

a.first_name = first_name
a.last_name = last_name
Expand All @@ -89,6 +95,8 @@ def application(request, msg=''):
a.major = major
a.hackathons = hackathons
a.why = why
a.dietary_restriction = dietary_restriction
a.travel = travel

friends = User.objects.filter(email=base64.b64decode(referrer).decode("utf-8", "ignore"))
if friends.count() == 1 and friends.first() != u and not a.referrer_locked:
Expand Down Expand Up @@ -117,18 +125,6 @@ def application(request, msg=''):
a.save()

return redirect(application, msg='saved')
# render(request, "application.html", {
# "user": u,
# "app": a,
# "schools": settings.SCHOOLS,
# "genders": settings.GENDERS,
# "races": settings.RACES,
# "grad_year": settings.GRADUATION_YEARS,
# "highlight": "application",
# "travel_methods": settings.TRAVEL_METHODS,
# "msg": "Your application has been submitted!",
# "allow": ALLOW
# })

@login_required
def confirmation(request):
Expand Down
19 changes: 14 additions & 5 deletions hoohacks/asgi.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,16 @@
"""
ASGI config for wordOfmouth project.

It exposes the ASGI callable as a module-level variable named ``application``.

For more information on this file, see
https://docs.djangoproject.com/en/3.2/howto/deployment/asgi/
"""

import os
import django
from channels.routing import get_default_application

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "hoohacks.settings")
django.setup()
application = get_default_application()
from django.core.asgi import get_asgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'hoohacks.settings')

application = get_asgi_application()
2 changes: 1 addition & 1 deletion hoohacks/data/schools.csv → hoohacks/data/schools.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1201,4 +1201,4 @@ Maine South High School
American High School
Chantilly High School
Oakton High School
Other
Other
13 changes: 0 additions & 13 deletions hoohacks/routing.py

This file was deleted.

16 changes: 0 additions & 16 deletions hoohacks/secret_example.py

This file was deleted.

Loading