diff --git a/pyconbalkan/cfp/__init__.py b/pyconbalkan/cfp/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/pyconbalkan/cfp/admin.py b/pyconbalkan/cfp/admin.py new file mode 100644 index 00000000..8c38f3f3 --- /dev/null +++ b/pyconbalkan/cfp/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/pyconbalkan/cfp/api_urls.py b/pyconbalkan/cfp/api_urls.py new file mode 100644 index 00000000..e69de29b diff --git a/pyconbalkan/cfp/apps.py b/pyconbalkan/cfp/apps.py new file mode 100644 index 00000000..86053027 --- /dev/null +++ b/pyconbalkan/cfp/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class CfpConfig(AppConfig): + name = 'cfp' diff --git a/pyconbalkan/cfp/migrations/__init__.py b/pyconbalkan/cfp/migrations/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/pyconbalkan/cfp/models.py b/pyconbalkan/cfp/models.py new file mode 100644 index 00000000..71a83623 --- /dev/null +++ b/pyconbalkan/cfp/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here. diff --git a/pyconbalkan/cfp/templates/cfp.html b/pyconbalkan/cfp/templates/cfp.html new file mode 100644 index 00000000..55e5c236 --- /dev/null +++ b/pyconbalkan/cfp/templates/cfp.html @@ -0,0 +1,11 @@ +{% extends "base.html" %} + +{% block main_content %} + + + + + + + +{% endblock %} \ No newline at end of file diff --git a/pyconbalkan/cfp/tests.py b/pyconbalkan/cfp/tests.py new file mode 100644 index 00000000..7ce503c2 --- /dev/null +++ b/pyconbalkan/cfp/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/pyconbalkan/cfp/views.py b/pyconbalkan/cfp/views.py new file mode 100644 index 00000000..91ea44a2 --- /dev/null +++ b/pyconbalkan/cfp/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here. diff --git a/pyconbalkan/core/static/css/style.css b/pyconbalkan/core/static/css/style.css index cc8da6a1..5b09ef80 100644 --- a/pyconbalkan/core/static/css/style.css +++ b/pyconbalkan/core/static/css/style.css @@ -62,6 +62,11 @@ body { font-weight: 900; } +.font400 { + font-family: 'Montserrat', sans-serif; + font-weight: 400; +} + .one { margin-bottom: -12px; font-size: 4.5rem; @@ -99,13 +104,25 @@ hr { } .font-yellow { - color: #F3D66C; + color: #FFD54F; } .font-blue { color: #22A4D9; } +.font-white { + color: white; +} + +.font-grey { + color: darkgrey; +} + +.font-small { + font-size: 0.8em; +} + .fa-calendar-alt, .fa-users, .fa-globe{ color: #22A4D9; display: inline-block; @@ -185,7 +202,7 @@ ul.countdown li div { } .moveDown { - margin-top: 50px; + margin-top: 30px; } #btnBuyNow { @@ -259,4 +276,198 @@ ul.countdown li div { color: #FFFFFF; font-size: 32px; font-weight: bold; +} + +table.ticket { + border-collapse: separate; +} + +.input_border { + width: 100%; + box-sizing:border-box; + border: none; + border-radius: 30px; + -moz-border-radius: 30px; + -webkit-border-radius: 30px; + -moz-box-shadow: 0px 0px 0px #FFF; + -webkit-box-shadow: 0px 0px 0px #FFF; + box-shadow: 0px 0px 0px #FFF; + outline: 0; + padding: 4px 20px; + -webkit-appearance: none; + line-height: 2.2; + background-color: #FFF; +} + + +select, option { + margin: 0; + display: inline-block; + cursor: pointer; +} + +.b-select-wrap { + width: 100%; + overflow: hidden; + position: relative; +} + +.b-select-wrap:after { + content: "⌄"; + padding: 0%; + position: absolute; + top: 25%; + right: 15px; + z-index: 1; + text-align: center; + width: 20px; + height: 50%; + pointer-events: none; + color: #FFF; + font-size: 12px; + border-radius: 30px; + background-color: #0080C6; + font-weight: bolder; +} + +.b-input-date-wrap { + width: 100%; + overflow: hidden; + position: relative; +} + +.b-input-date-wrap:after { + content: "📅"; + padding: 1% 0% 0% 0%; + position: absolute; + top: 25%; + right: 15px; + z-index: 1; + text-align: center; + width: 20px; + height: 50%; + pointer-events: none; + color: #FFF; + font-size: 12px; + border-radius: 30px; + background-color: #0080C6; + font-weight: bolder; +} + +.b-input-time-wrap { + width: 100%; + overflow: hidden; + position: relative; +} + +.b-input-time-wrap:after { + content: "🕒"; + padding: 1% 0% 0% 0%; + position: absolute; + top: 25%; + right: 15px; + z-index: 1; + text-align: center; + width: 20px; + height: 50%; + pointer-events: none; + color: #FFF; + font-size: 12px; + border-radius: 30px; + background-color: #0080C6; + font-weight: bolder; +} + +input[type="date"]::-webkit-inner-spin-button, +input[type="date"]::-webkit-outer-spin-button, +input[type="time"]::-webkit-inner-spin-button, +input[type="time"]::-webkit-outer-spin-button, +input[type="time"]::-webkit-clear-button { + display: none; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + margin: 0; +} + +input[type="date"]::-webkit-datetime-edit{ + color: transparent; +} + +input[type="date"]:focus::-webkit-datetime-edit{ + color: #000; +} + +.button-style { + width: 100%; + border: 3px solid #FFD54F; + border-radius: 30px; + -moz-border-radius: 30px; + -webkit-border-radius: 30px; + -moz-box-shadow: 0px 0px 0px #FFF; + -webkit-box-shadow: 0px 0px 0px #FFF; + box-shadow: 0px 0px 0px #FFF; + outline: 0; + padding: 4px 20px; + -webkit-appearance: none; +} +button { + background-color: #333B3D; +} + +input[type="button"]{ + background-color: #FFD54F; +} + +input[type="checkbox"] +{ + border: 5px #FFF; + border-radius: 10px; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; + -moz-box-shadow: 0px 0px 0px #FFF; + -webkit-box-shadow: 0px 0px 0px #FFF; + box-shadow: 0px 0px 0px #FFF; + outline: 0; + padding: 10px 10px; + -webkit-appearance: none; + line-height: 1.5; + background-color: #FFF; + width: 15px; + height: 10px; + margin-bottom: 0px; +} + +input[type="checkbox"]:checked { + background-color: #0080C6; +} + + +.left { + float: left; + color: #FFD54F; +} + +.right { + float: right; + color: #FFF; +} + +.yellow-table { + border-collapse: separate; + width: 100%; + height: 100%; + box-sizing: border-box; + box-shadow: #FFF 0px 0px 0px; + -webkit-appearance: none; + line-height: 2.2; + background: #FFD54F; + -moz-border-radius: 20px; + -webkit-border-radius: 20px; + -moz-box-shadow: 0px 0px 0px #FFF; + -webkit-box-shadow: 0px 0px 0px #FFF; + border-image: initial; + border-radius: 20px; + outline: 0px; + padding: 4px 20px; } \ No newline at end of file diff --git a/pyconbalkan/core/static/js/level.js b/pyconbalkan/core/static/js/level.js new file mode 100644 index 00000000..dfd0ba27 --- /dev/null +++ b/pyconbalkan/core/static/js/level.js @@ -0,0 +1,13 @@ +function radio() { + var content = document.querySelector('input[name="level"]:checked'); + var label = document.getElementById('label_name'); + label.innerText = content.value + ":"; + + + $(content).each(function() { + var idVal = $(this).attr("id"); + var level_value = $("label[id='"+idVal+"_value']"); + var label_value = document.getElementById('total'); + label_value.innerText = level_value.text(); + }); +} diff --git a/pyconbalkan/core/templates/base.html b/pyconbalkan/core/templates/base.html index 73faa740..273ce7cd 100644 --- a/pyconbalkan/core/templates/base.html +++ b/pyconbalkan/core/templates/base.html @@ -54,18 +54,18 @@
diff --git a/pyconbalkan/core/views.py b/pyconbalkan/core/views.py index 26bb591e..ae1fccb6 100644 --- a/pyconbalkan/core/views.py +++ b/pyconbalkan/core/views.py @@ -5,25 +5,38 @@ from pyconbalkan.speaker.models import Speaker -def home(request): +def get_conference_context(context): conference = Conference.objects.filter(active=True) + if conference: + context['conference'] = conference.first() + return context + +def home(request): count_down = CountDown.objects.filter(active=True) - speakers = Speaker.objects.filter(active=True) context = { - 'speakers': speakers, - 'conference': conference.first() if conference else None, + 'speakers': Speaker.objects.filter(active=True), 'count_down': count_down.first() if count_down else None, } + get_conference_context(context) return render(request, 'home.html', context) def organizers(request): - volunteers = Volunteer.objects.filter(type=Volunteer.VOLUNTEER, active=True) - organizers = Volunteer.objects.filter(type=Volunteer.ORGANIZER, active=True) - conference = Conference.objects.filter(active=True) context = { - 'volunteers': volunteers, - 'organizers': organizers, - 'conference': conference.first() if conference else None, + 'volunteers': Volunteer.objects.filter(type=Volunteer.VOLUNTEER, active=True), + 'organizers': Volunteer.objects.filter(type=Volunteer.ORGANIZER, active=True), } + get_conference_context(context) return render(request, 'organizers.html', context) + + +def sponsors(request): + context = {} + get_conference_context(context) + return render(request, 'sponsors.html', context) + + +def cfp(request): + context = {} + get_conference_context(context) + return render(request, 'cfp.html', context) \ No newline at end of file diff --git a/pyconbalkan/settings.py b/pyconbalkan/settings.py index 0ee9a231..b77efa10 100644 --- a/pyconbalkan/settings.py +++ b/pyconbalkan/settings.py @@ -44,6 +44,8 @@ 'pyconbalkan.conference', 'pyconbalkan.speaker', 'pyconbalkan.organizers', + 'pyconbalkan.cfp', + 'pyconbalkan.sponsors', # others 'rest_framework', 'django_countries', diff --git a/pyconbalkan/sponsors/__init__.py b/pyconbalkan/sponsors/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/pyconbalkan/sponsors/admin.py b/pyconbalkan/sponsors/admin.py new file mode 100644 index 00000000..8c38f3f3 --- /dev/null +++ b/pyconbalkan/sponsors/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/pyconbalkan/sponsors/api_urls.py b/pyconbalkan/sponsors/api_urls.py new file mode 100644 index 00000000..cb282ea4 --- /dev/null +++ b/pyconbalkan/sponsors/api_urls.py @@ -0,0 +1,3 @@ +from rest_framework import routers + +router = routers.DefaultRouter() diff --git a/pyconbalkan/sponsors/apps.py b/pyconbalkan/sponsors/apps.py new file mode 100644 index 00000000..4db5584e --- /dev/null +++ b/pyconbalkan/sponsors/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class SponsorsConfig(AppConfig): + name = 'sponsors' diff --git a/pyconbalkan/sponsors/migrations/__init__.py b/pyconbalkan/sponsors/migrations/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/pyconbalkan/sponsors/models.py b/pyconbalkan/sponsors/models.py new file mode 100644 index 00000000..71a83623 --- /dev/null +++ b/pyconbalkan/sponsors/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here. diff --git a/pyconbalkan/sponsors/templates/sponsors.html b/pyconbalkan/sponsors/templates/sponsors.html new file mode 100644 index 00000000..01409ca9 --- /dev/null +++ b/pyconbalkan/sponsors/templates/sponsors.html @@ -0,0 +1,118 @@ +{% extends "base.html" %} + +{% block main_content %} + + + +
+ + + |
+ + |
+ + + + + + |
+ ||||||||||||
+ Contact+ |
+ + |
+
|
+ ||||||||||||
+ + + | ++ | |||||||||||||
+ + + | ++ | |||||||||||||
+ + + |
+ + | |||||||||||||
+ | + + | ++ + | +