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
23 changes: 23 additions & 0 deletions pyconbalkan/conference/migrations/0005_auto_20180804_2148.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Generated by Django 2.0.5 on 2018-08-04 21:48

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('conference', '0004_auto_20180802_2008'),
]

operations = [
migrations.AddField(
model_name='conference',
name='contact_email',
field=models.EmailField(blank=True, max_length=254, null=True),
),
migrations.AddField(
model_name='conference',
name='sponsor_email',
field=models.EmailField(blank=True, max_length=254, null=True),
),
]
2 changes: 2 additions & 0 deletions pyconbalkan/conference/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ class Conference(SingleActiveModel, ModelMeta):
to_date = models.DateField(null=True, blank=True)
max_attendees = models.PositiveIntegerField(null=True, blank=True)
type = models.IntegerField(choices=CONF_TYPE)
sponsor_email = models.EmailField(null=True, blank=True)
contact_email = models.EmailField(null=True, blank=True)

# Links
tickets = models.URLField(blank=True, null=True)
Expand Down
20 changes: 20 additions & 0 deletions pyconbalkan/contact/forms.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
from django import forms
from django.forms import ModelForm

from pyconbalkan.contact.models import Contact


class ContactForm(ModelForm):
name = forms.CharField(widget=forms.TextInput(attrs={'placeholder': 'Name', 'class': 'form-control'}),
max_length=256, error_messages={'required': 'Please, enter your name.'}, label='')
company = forms.CharField(widget=forms.TextInput(attrs={'placeholder': 'Company', 'class': 'form-control'}),
max_length=100, required=False, label='')
email = forms.EmailField(widget=forms.TextInput(attrs={'placeholder': 'Email', 'class': 'form-control'}),
error_messages={'required': 'Please, enter a valid email address.',
'invalid': 'Please enter a valid email address.'}, label='')
message = forms.CharField(widget=forms.Textarea(attrs={'placeholder': 'Message', 'class': 'form-control'}),
error_messages={'required': 'Please, enter your message.'}, label='')

class Meta:
model = Contact
fields = '__all__'
17 changes: 0 additions & 17 deletions pyconbalkan/contact/models.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
from django.db import models
from django import forms
from django.forms import ModelForm


class Contact(models.Model):
Expand All @@ -15,18 +13,3 @@ def __str__(self):
return '{} | {}'.format(contact_str, self.company)
return contact_str


class ContactForm(ModelForm):
name = forms.CharField(widget=forms.TextInput(attrs={'placeholder': 'Name', 'class': 'form-control'}),
max_length=256, error_messages={'required': 'Please, enter your name.'}, label='')
company = forms.CharField(widget=forms.TextInput(attrs={'placeholder': 'Company', 'class': 'form-control'}),
max_length=100, required=False, label='')
email = forms.EmailField(widget=forms.TextInput(attrs={'placeholder': 'Email', 'class': 'form-control'}),
error_messages={'required': 'Please, enter a valid email address.',
'invalid': 'Please enter a valid email address.'}, label='')
message = forms.CharField(widget=forms.Textarea(attrs={'placeholder': 'Message', 'class': 'form-control'}),
error_messages={'required': 'Please, enter your message.'}, label='')

class Meta:
model = Contact
fields = '__all__'
2 changes: 1 addition & 1 deletion pyconbalkan/contact/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

from pyconbalkan.contact.models import Contact
from pyconbalkan.contact.serializers import ContactSerializer
from .models import ContactForm
from .forms import ContactForm


class ContactViewSet(viewsets.ModelViewSet):
Expand Down
40 changes: 40 additions & 0 deletions pyconbalkan/core/static/css/components/card.css
Original file line number Diff line number Diff line change
Expand Up @@ -57,3 +57,43 @@
font-size: 1.8rem;
text-align: center;
}

.sponsoring {
display: flex;
flex-flow: row wrap;
justify-content: flex-start;
align-content: center;
}

.sponsoring__item {
flex: 0 0 30%;
padding: 40px;
margin: 0 40px 40px 0;
background-color: #f3d66c;
color: #32383A;
border-radius: 20px;
}

.sponsoring__item:hover {
background-color: #22A4D9;
color: white;
}

.sponsoring__item:hover h1,
.sponsoring__item:hover .package__description {
color: white;
}

.sponsoring__item h1,
.sponsoring__item .package__description {
margin-top: 0;
color: #32383A;
}

.sponsoring__item h1 span.sponsoring--limit {
font-weight: normal;
}

.sponsoring__item h1 span.sponsoring--amount {
font-size: 22px;
}
31 changes: 29 additions & 2 deletions pyconbalkan/core/static/css/components/form.css
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,22 @@
justify-content: flex-start;
align-items: flex-start;
}

.form-group p label {
display: block;
margin-top: 20px;
font-size: 18px;
font-weight: bold;
line-height: 20px;
}

.form-group input[type=radio] {
display: inline-block;
vertical-align: middle;
width: 20px;
height: 20px;
margin-right: 10px;
}

@media (max-width: 1280px) {
.form-group {
Expand All @@ -30,7 +46,6 @@

@media (max-width: 1280px) {
.form .form-group .button--fullwidth {
width: 80%;
align-self: center;
}
}
Expand All @@ -44,10 +59,22 @@
@media (max-width: 1280px) {
.form p {
flex: 1;
width: 80%;
}
}

.form ul,
.form li {
padding: 0;
margin: 0;
list-style: none;
text-align: left;
width: 100%;
}

.form-group li {
height: 25px;
}

.form .form-control {
display: block;
width: 100%;
Expand Down
8 changes: 8 additions & 0 deletions pyconbalkan/core/static/css/components/person.css
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,14 @@
align-content: flex-start;
}

@media (max-width: 1024px) {
.speaker,
.organizer,
.sponsor {
flex-flow: column wrap;
}
}

.speaker__image,
.organizer__image,
.sponsor__image {
Expand Down
12 changes: 6 additions & 6 deletions pyconbalkan/core/static/css/components/sponsors.css
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,14 @@
}

.sponsor {
width: 350px;
height: 300px;
color: #F3D66C;
margin: 5px 10px;
}

.sponsor p {
padding: 10px;
@media (max-width: 1024px) {
.sponsor {
width: 350px;
height: 300px;
}
}

.sponsor img {
Expand All @@ -65,6 +65,6 @@
@media (max-width: 767px) {
.card__info {
top: -170px;
left: 160px;
left: 160px;
}
}
Binary file added pyconbalkan/core/static/pdf/pycon_brochure.pdf
Binary file not shown.
1 change: 1 addition & 0 deletions pyconbalkan/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@
'raven.contrib.django.raven_compat',
'meta',
'taggit',
'djmoney',
]

MIDDLEWARE = [
Expand Down
5 changes: 4 additions & 1 deletion pyconbalkan/sponsors/admin.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
from django.contrib import admin
from pyconbalkan.sponsors.models import Sponsor
from pyconbalkan.sponsors.models import Package, PackageItem, Sponsor, Sponsoring

admin.site.register(Sponsor)
admin.site.register(Sponsoring)
admin.site.register(Package)
admin.site.register(PackageItem)
12 changes: 12 additions & 0 deletions pyconbalkan/sponsors/apps.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,15 @@

class SponsorsConfig(AppConfig):
name = 'sponsors'


class SponsoringConfig(AppConfig):
name = 'sponsoring'


class PackageConfig(AppConfig):
name = 'package'


class PackageItemConfig(AppConfig):
name = 'package_item'
42 changes: 42 additions & 0 deletions pyconbalkan/sponsors/forms.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
from django import forms
from django.forms import ModelForm
from django.forms.widgets import RadioSelect

from pyconbalkan.sponsors.models import Sponsoring, ORGANIZATION_CHOICES, SponsorshipLevel


class SponsoringForm(ModelForm):
name = forms.CharField(
widget=forms.TextInput(attrs={'placeholder': 'Name', 'class': 'form-control'}),
max_length=256,
error_messages={'required': 'Please, enter your name.'}, label='')
phone = forms.CharField(
widget=forms.TextInput(attrs={'placeholder': 'Phone number', 'class': 'form-control'}),
max_length=17,
error_messages={
'required': 'Please, enter your phone number.',
'invalid': 'Please, enter a valid phone number.'
}, label='')
email = forms.EmailField(
widget=forms.TextInput(attrs={'placeholder': 'Email', 'class': 'form-control'}),
error_messages={
'required': 'Please, enter your email address.',
'invalid': 'Please, enter a valid email address.'
}, label='')
organization = forms.CharField(
widget=forms.TextInput(attrs={'placeholder': 'Company / Organization', 'class': 'form-control'}),
max_length=100,
required=False, label='')
organization_type = forms.ChoiceField(choices=ORGANIZATION_CHOICES, label='Organization Type', widget=RadioSelect())
level = forms.ChoiceField(choices=SponsorshipLevel.choices, label='Level of Interest', widget=RadioSelect())

class Meta:
model = Sponsoring
fields = (
'name',
'phone',
'email',
'organization',
'organization_type',
'level'
)
25 changes: 25 additions & 0 deletions pyconbalkan/sponsors/migrations/0004_sponsoring.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Generated by Django 2.0.5 on 2018-08-04 19:58

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


class Migration(migrations.Migration):

dependencies = [
('sponsors', '0003_auto_20180604_1346'),
]

operations = [
migrations.CreateModel(
name='Sponsoring',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('organization', models.CharField(blank=True, max_length=100, null=True)),
('name', models.CharField(max_length=256)),
('phone', models.CharField(blank=True, max_length=17, validators=[django.core.validators.RegexValidator(message="Phone number must be entered in the format: '+999999999'. Up to 15 digits allowed.", regex='^\\+?1?\\d{9,15}$')])),
('email', models.EmailField(max_length=254)),
('approved', models.BooleanField(default=False)),
],
),
]
46 changes: 46 additions & 0 deletions pyconbalkan/sponsors/migrations/0005_auto_20180804_2052.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Generated by Django 2.0.5 on 2018-08-04 20:52

from decimal import Decimal
from django.db import migrations, models
import djmoney.models.fields
import markdownx.models


class Migration(migrations.Migration):

dependencies = [
('sponsors', '0004_sponsoring'),
]

operations = [
migrations.CreateModel(
name='Package',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('active', models.BooleanField(default=False)),
('level', models.CharField(choices=[('Keystone', 'keystone'), ('Platinum', 'platinum'), ('Gold', 'gold'), ('Silver', 'silver'), ('Partner', 'partner')], max_length=16)),
('amount_currency', djmoney.models.fields.CurrencyField(choices=[('XUA', 'ADB Unit of Account'), ('AFN', 'Afghani'), ('DZD', 'Algerian Dinar'), ('ARS', 'Argentine Peso'), ('AMD', 'Armenian Dram'), ('AWG', 'Aruban Guilder'), ('AUD', 'Australian Dollar'), ('AZN', 'Azerbaijanian Manat'), ('BSD', 'Bahamian Dollar'), ('BHD', 'Bahraini Dinar'), ('THB', 'Baht'), ('PAB', 'Balboa'), ('BBD', 'Barbados Dollar'), ('BYN', 'Belarussian Ruble'), ('BYR', 'Belarussian Ruble'), ('BZD', 'Belize Dollar'), ('BMD', 'Bermudian Dollar (customarily known as Bermuda Dollar)'), ('BTN', 'Bhutanese ngultrum'), ('VEF', 'Bolivar Fuerte'), ('BOB', 'Boliviano'), ('XBA', 'Bond Markets Units European Composite Unit (EURCO)'), ('BRL', 'Brazilian Real'), ('BND', 'Brunei Dollar'), ('BGN', 'Bulgarian Lev'), ('BIF', 'Burundi Franc'), ('XOF', 'CFA Franc BCEAO'), ('XAF', 'CFA franc BEAC'), ('XPF', 'CFP Franc'), ('CAD', 'Canadian Dollar'), ('CVE', 'Cape Verde Escudo'), ('KYD', 'Cayman Islands Dollar'), ('CLP', 'Chilean peso'), ('XTS', 'Codes specifically reserved for testing purposes'), ('COP', 'Colombian peso'), ('KMF', 'Comoro Franc'), ('CDF', 'Congolese franc'), ('BAM', 'Convertible Marks'), ('NIO', 'Cordoba Oro'), ('CRC', 'Costa Rican Colon'), ('HRK', 'Croatian Kuna'), ('CUP', 'Cuban Peso'), ('CUC', 'Cuban convertible peso'), ('CZK', 'Czech Koruna'), ('GMD', 'Dalasi'), ('DKK', 'Danish Krone'), ('MKD', 'Denar'), ('DJF', 'Djibouti Franc'), ('STD', 'Dobra'), ('DOP', 'Dominican Peso'), ('VND', 'Dong'), ('XCD', 'East Caribbean Dollar'), ('EGP', 'Egyptian Pound'), ('SVC', 'El Salvador Colon'), ('ETB', 'Ethiopian Birr'), ('EUR', 'Euro'), ('XBB', 'European Monetary Unit (E.M.U.-6)'), ('XBD', 'European Unit of Account 17(E.U.A.-17)'), ('XBC', 'European Unit of Account 9(E.U.A.-9)'), ('FKP', 'Falkland Islands Pound'), ('FJD', 'Fiji Dollar'), ('HUF', 'Forint'), ('GHS', 'Ghana Cedi'), ('GIP', 'Gibraltar Pound'), ('XAU', 'Gold'), ('XFO', 'Gold-Franc'), ('PYG', 'Guarani'), ('GNF', 'Guinea Franc'), ('GYD', 'Guyana Dollar'), ('HTG', 'Haitian gourde'), ('HKD', 'Hong Kong Dollar'), ('UAH', 'Hryvnia'), ('ISK', 'Iceland Krona'), ('INR', 'Indian Rupee'), ('IRR', 'Iranian Rial'), ('IQD', 'Iraqi Dinar'), ('IMP', 'Isle of Man Pound'), ('JMD', 'Jamaican Dollar'), ('JOD', 'Jordanian Dinar'), ('KES', 'Kenyan Shilling'), ('PGK', 'Kina'), ('LAK', 'Kip'), ('KWD', 'Kuwaiti Dinar'), ('AOA', 'Kwanza'), ('MMK', 'Kyat'), ('GEL', 'Lari'), ('LVL', 'Latvian Lats'), ('LBP', 'Lebanese Pound'), ('ALL', 'Lek'), ('HNL', 'Lempira'), ('SLL', 'Leone'), ('LSL', 'Lesotho loti'), ('LRD', 'Liberian Dollar'), ('LYD', 'Libyan Dinar'), ('SZL', 'Lilangeni'), ('LTL', 'Lithuanian Litas'), ('MGA', 'Malagasy Ariary'), ('MWK', 'Malawian Kwacha'), ('MYR', 'Malaysian Ringgit'), ('TMM', 'Manat'), ('MUR', 'Mauritius Rupee'), ('MZN', 'Metical'), ('MXV', 'Mexican Unidad de Inversion (UDI)'), ('MXN', 'Mexican peso'), ('MDL', 'Moldovan Leu'), ('MAD', 'Moroccan Dirham'), ('BOV', 'Mvdol'), ('NGN', 'Naira'), ('ERN', 'Nakfa'), ('NAD', 'Namibian Dollar'), ('NPR', 'Nepalese Rupee'), ('ANG', 'Netherlands Antillian Guilder'), ('ILS', 'New Israeli Sheqel'), ('RON', 'New Leu'), ('TWD', 'New Taiwan Dollar'), ('NZD', 'New Zealand Dollar'), ('KPW', 'North Korean Won'), ('NOK', 'Norwegian Krone'), ('PEN', 'Nuevo Sol'), ('MRO', 'Ouguiya'), ('TOP', 'Paanga'), ('PKR', 'Pakistan Rupee'), ('XPD', 'Palladium'), ('MOP', 'Pataca'), ('PHP', 'Philippine Peso'), ('XPT', 'Platinum'), ('GBP', 'Pound Sterling'), ('BWP', 'Pula'), ('QAR', 'Qatari Rial'), ('GTQ', 'Quetzal'), ('ZAR', 'Rand'), ('OMR', 'Rial Omani'), ('KHR', 'Riel'), ('MVR', 'Rufiyaa'), ('IDR', 'Rupiah'), ('RUB', 'Russian Ruble'), ('RWF', 'Rwanda Franc'), ('XDR', 'SDR'), ('SHP', 'Saint Helena Pound'), ('SAR', 'Saudi Riyal'), ('RSD', 'Serbian Dinar'), ('SCR', 'Seychelles Rupee'), ('XAG', 'Silver'), ('SGD', 'Singapore Dollar'), ('SBD', 'Solomon Islands Dollar'), ('KGS', 'Som'), ('SOS', 'Somali Shilling'), ('TJS', 'Somoni'), ('SSP', 'South Sudanese Pound'), ('LKR', 'Sri Lanka Rupee'), ('XSU', 'Sucre'), ('SDG', 'Sudanese Pound'), ('SRD', 'Surinam Dollar'), ('SEK', 'Swedish Krona'), ('CHF', 'Swiss Franc'), ('SYP', 'Syrian Pound'), ('BDT', 'Taka'), ('WST', 'Tala'), ('TZS', 'Tanzanian Shilling'), ('KZT', 'Tenge'), ('XXX', 'The codes assigned for transactions where no currency is involved'), ('TTD', 'Trinidad and Tobago Dollar'), ('MNT', 'Tugrik'), ('TND', 'Tunisian Dinar'), ('TRY', 'Turkish Lira'), ('TMT', 'Turkmenistan New Manat'), ('TVD', 'Tuvalu dollar'), ('AED', 'UAE Dirham'), ('XFU', 'UIC-Franc'), ('USD', 'US Dollar'), ('USN', 'US Dollar (Next day)'), ('UGX', 'Uganda Shilling'), ('CLF', 'Unidad de Fomento'), ('COU', 'Unidad de Valor Real'), ('UYI', 'Uruguay Peso en Unidades Indexadas (URUIURUI)'), ('UYU', 'Uruguayan peso'), ('UZS', 'Uzbekistan Sum'), ('VUV', 'Vatu'), ('CHE', 'WIR Euro'), ('CHW', 'WIR Franc'), ('KRW', 'Won'), ('YER', 'Yemeni Rial'), ('JPY', 'Yen'), ('CNY', 'Yuan Renminbi'), ('ZMK', 'Zambian Kwacha'), ('ZMW', 'Zambian Kwacha'), ('ZWD', 'Zimbabwe Dollar A/06'), ('ZWN', 'Zimbabwe dollar A/08'), ('ZWL', 'Zimbabwe dollar A/09'), ('PLN', 'Zloty')], default='EUR', editable=False, max_length=3)),
('amount', djmoney.models.fields.MoneyField(decimal_places=0, default=Decimal('0.0'), default_currency='EUR', max_digits=16)),
('description', markdownx.models.MarkdownxField()),
],
options={
'abstract': False,
},
),
migrations.CreateModel(
name='PackageItem',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('active', models.BooleanField(default=False)),
('description', markdownx.models.MarkdownxField()),
],
options={
'abstract': False,
},
),
migrations.AddField(
model_name='package',
name='items',
field=models.ManyToManyField(to='sponsors.PackageItem'),
),
]
Loading