Skip to content

Commit

Permalink
Merge pull request #81 from jandd/sponsoring-app
Browse files Browse the repository at this point in the history
Sponsoring app
  • Loading branch information
Stefan Bethke committed Oct 25, 2018
2 parents a2918ed + 62ef457 commit 95ae24f
Show file tree
Hide file tree
Showing 30 changed files with 932 additions and 14 deletions.
1 change: 1 addition & 0 deletions Pipfile
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ django-registration = "*"
"html2text" = "*"
lorem = "*"
luhn = "*"
django-ordered-model = "<3.0"

[dev-packages]
beautifulsoup4 = "*"
Expand Down
32 changes: 19 additions & 13 deletions Pipfile.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions devday/devday/settings/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,7 @@ def get_variable_cascade(var_name, type=str, default_value=None):
'event.apps.EventsConfig',
'attendee.apps.AttendeeConfig',
'talk.apps.SessionsConfig',
'sponsoring',
'cms',
'menus',
'sekizai',
Expand Down Expand Up @@ -232,6 +233,8 @@ def get_variable_cascade(var_name, type=str, default_value=None):
SECRET_KEY = get_vault_variable('secret_key')

SPONSORING_OPEN = get_variable_cascade('sponsoring_open', bool, False)
SPONSORING_FROM_EMAIL = 'info@devday.de'
SPONSORING_RECIPIENTS = ['info@devday.de']

SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')

Expand Down
49 changes: 49 additions & 0 deletions devday/devday/static/css/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -9065,5 +9065,54 @@ table.table.session {
table.session tbody tr td:nth-child(9)::after {
background: #171034; } }

.sponsor-deck {
padding: 20px 0; }
.sponsor-deck .bronze {
background: #35a4a3;
color: #ffffff; }
.sponsor-deck .silver {
background: #35a4a3;
color: #ffffff; }
.sponsor-deck .gold {
background: #35a4a3;
color: #ffffff; }
.sponsor-deck .card-title {
color: #ffffff;
font-size: 38px;
margin-top: 20px; }
.sponsor-deck .card {
border: 0; }
.sponsor-deck .card .card-header {
padding: 0.75rem 0;
border: 1px solid #488483; }
.sponsor-deck .card .card-header h4 {
border-bottom: 1px solid #488483;
padding-bottom: 15px; }
.sponsor-deck .card-body {
padding: 0; }
.sponsor-deck .card-body > ul {
border: 1px solid #171034;
border-top: 0;
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px; }
.sponsor-deck .card-body > ul > li .list-header {
padding: 10px 0;
border-bottom: 1px solid #ffffff;
display: block;
background: #3a3f69;
color: #ffffff; }
.sponsor-deck .card-body > ul > li:last-child .list-header {
border-bottom: 0; }
.sponsor-deck .card-body > ul > li ul {
margin: 0;
padding: 0;
list-style: none;
border-bottom: 1px solid #ffffff; }
.sponsor-deck .card-body > ul > li ul li {
padding: 4px;
border-bottom: 1px solid #c4c7de; }
.sponsor-deck .card-body > ul > li ul li:last-child {
border-bottom: none; }

.visible-to-editor-only {
outline: 2px solid yellow; }
2 changes: 1 addition & 1 deletion devday/setup.cfg
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[coverage:run]
branch = true
source = devday,attendee,event,speaker,talk,twitterfeed
source = devday,attendee,event,speaker,sponsoring,talk,twitterfeed
omit = */migrations/*,devday/settings/*,*/tests/*

[coverage:paths]
Expand Down
1 change: 1 addition & 0 deletions devday/sponsoring/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
default_app_config = 'sponsoring.apps.SponsoringConfig'
27 changes: 27 additions & 0 deletions devday/sponsoring/admin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
from django import forms
from django.contrib import admin
from ordered_model.admin import OrderedTabularInline

from sponsoring.models import SponsoringPackageItem, SponsoringPackage


class SponsoringPackageItemForm(forms.ModelForm):
class Meta:
widgets = {'description': forms.Textarea(attrs={'rows': 1}), }


class SponsoringPackageItemTabularInline(OrderedTabularInline):
model = SponsoringPackageItem
fields = (
'name', 'description', 'is_header', 'order', 'move_up_down_links',)
readonly_fields = ('order', 'move_up_down_links',)
extra = 1
ordering = ('order',)
form = SponsoringPackageItemForm


@admin.register(SponsoringPackage)
class SponsoringPackageAdmin(admin.ModelAdmin):
list_display = ('package_type', 'event', 'pricing',)
list_filter = ('event',)
inlines = (SponsoringPackageItemTabularInline,)
7 changes: 7 additions & 0 deletions devday/sponsoring/apps.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from django.apps import AppConfig
from django.utils.translation import ugettext_lazy as _


class SponsoringConfig(AppConfig):
name = 'sponsoring'
verbose_name = _('Sponsor Management')
11 changes: 11 additions & 0 deletions devday/sponsoring/cms_apps.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
from cms.app_base import CMSApp
from cms.apphook_pool import apphook_pool
from django.utils.translation import ugettext_lazy as _


@apphook_pool.register
class SponsoringApphook(CMSApp):
name = _('Sponsoring')

def get_urls(self, page=None, language=None, **kwargs):
return ['sponsoring.urls']
84 changes: 84 additions & 0 deletions devday/sponsoring/forms.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Div, Field, HTML, Layout, Submit
from django import forms
from django.urls import reverse
from django.utils.translation import ugettext_lazy as _


class SponsoringContactForm(forms.Form):
organization = forms.CharField(
label=_('Your organization'), max_length=100)
email = forms.EmailField(label=_('Contact email address'))
body = forms.CharField(
label=_('Your request'), widget=forms.Textarea(attrs={'rows': 5}))
sponsoring_options = forms.MultipleChoiceField(
label=_('Interested in sponsoring packages'),
widget=forms.CheckboxSelectMultiple())

event = None

def get_possible_choices(self):
choices = []
for package in self.event.sponsoringpackage_set.all():
choices.append((
package.package_type,
package.get_type_label()))
choices.append((-1, _('Custom')))
return choices

def __init__(self, **kwargs):
self.event = kwargs.pop('event')
super().__init__(**kwargs)
self.fields['sponsoring_options'].choices = self.get_possible_choices()
self.helper = FormHelper()
self.helper.form_action = reverse(
'sponsoring_view', kwargs={'event': self.event.slug})
self.helper.layout = Layout(
Div(
Div(
Div(
HTML('<h1>{}</h1>'.format(_('Sponsoring request'))),
css_class='offset-lg-2 col-lg-8 col-12',
),
css_class='form-row'
),
Div(
Field(
'organization',
wrapper_class='offset-lg-2 col-lg-8 col-12',
),
css_class='form-row'
),
Div(
Field(
'email',
wrapper_class='offset-lg-2 col-lg-8 col-12',
),
css_class='form-row'
),
Div(
Field(
'sponsoring_options',
wrapper_class='offset-lg-2 col-lg-8 col-12',
),
css_class='form-row'
),
Div(
Field(
'body',
wrapper_class='offset-lg-2 col-lg-8 col-12',
),
css_class='form-row'
),
Div(
Div(
Submit(
'submit', _('Send sponsoring request'),
css_class='m-0 btn btn-primary',
),
css_class='offset-lg-2 col-lg-8 col-12',
),
css_class='form-row'
)
)
)
Loading

0 comments on commit 95ae24f

Please sign in to comment.