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
25 changes: 5 additions & 20 deletions pyconbalkan/conference/abstractions.py
Original file line number Diff line number Diff line change
@@ -1,36 +1,21 @@
from django.contrib import admin
from django.db import models
from django.utils.translation import ugettext_lazy as _

from pyconbalkan.conference.models import Conference


def _get_default_conference():
if Conference.objects.exists():
return Conference.objects.first().id


class AbstractConference(models.Model):
conference = models.ForeignKey(
Conference, on_delete=models.CASCADE, default=_get_default_conference
)

class Meta:
abstract = True


class ConferenceFilter(admin.SimpleListFilter):
title = _('Conference year')
parameter_name = 'conference'
title = _("Conference year")
parameter_name = "conference"

def choices(self, changelist):
for lookup, title in self.lookup_choices:
yield {
'selected': self.value() is lookup or self.value() == str(lookup),
'query_string': changelist.get_query_string(
"selected": self.value() is lookup or self.value() == str(lookup),
"query_string": changelist.get_query_string(
{self.parameter_name: lookup}
),
'display': title,
"display": title,
}

def lookups(self, request, model_admin):
Expand Down
5 changes: 3 additions & 2 deletions pyconbalkan/conference/admin.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from django.contrib import admin

from pyconbalkan.conference.abstractions import ConferenceAbstractAdmin
from pyconbalkan.conference.models import Conference, CountDown, MissionStatement
from markdownx.admin import MarkdownxModelAdmin

Expand All @@ -9,12 +10,12 @@ class Meta:
model = Conference


class CountDownAdmin(admin.ModelAdmin):
class CountDownAdmin(ConferenceAbstractAdmin):
class Meta:
model = CountDown


class MissionStatementAdmin(MarkdownxModelAdmin):
class MissionStatementAdmin(ConferenceAbstractAdmin, MarkdownxModelAdmin):
class Meta:
model = MissionStatement

Expand Down
25 changes: 25 additions & 0 deletions pyconbalkan/conference/migrations/0008_auto_20190303_1800.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Generated by Django 2.1.2 on 2019-03-03 18:00

from django.db import migrations, models
import django.db.models.deletion
import pyconbalkan.conference.models


class Migration(migrations.Migration):

dependencies = [
('conference', '0007_auto_20190227_0738'),
]

operations = [
migrations.AddField(
model_name='countdown',
name='conference',
field=models.ForeignKey(default=pyconbalkan.conference.models._get_default_conference, on_delete=django.db.models.deletion.CASCADE, to='conference.Conference'),
),
migrations.AddField(
model_name='missionstatement',
name='conference',
field=models.ForeignKey(default=pyconbalkan.conference.models._get_default_conference, on_delete=django.db.models.deletion.CASCADE, to='conference.Conference'),
),
]
22 changes: 19 additions & 3 deletions pyconbalkan/conference/models.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
from django.db import models
from django_countries.fields import CountryField
from markdownx.models import MarkdownxField
from meta.models import ModelMeta

from pyconbalkan.core.models import SingleActiveModel
from markdownx.models import MarkdownxField


class Conference(SingleActiveModel, ModelMeta):
Expand Down Expand Up @@ -53,16 +53,32 @@ def __str__(self):
return '{} {} {}'.format(self.event, self.name, self.year)


class CountDown(SingleActiveModel):
def _get_default_conference():
if Conference.objects.exists():
return Conference.objects.first().id


class AbstractConference(models.Model):
conference = models.ForeignKey(
Conference, on_delete=models.CASCADE, default=_get_default_conference
)

class Meta:
abstract = True


class CountDown(AbstractConference, SingleActiveModel):
title = models.CharField(null=True, blank=True, max_length=100)
count_down = models.DateTimeField(null=True, blank=True)

def __str__(self):
return self.title


class MissionStatement(SingleActiveModel):
class MissionStatement(AbstractConference, SingleActiveModel):
content = MarkdownxField(null=True, blank=True)

def __str__(self):
return self.content


39 changes: 21 additions & 18 deletions pyconbalkan/core/views.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
from django.db.models import Q
from django.shortcuts import render

from pyconbalkan.conference.models import CountDown, MissionStatement
Expand All @@ -6,26 +7,28 @@


def home(request):
count_down = CountDown.objects.filter(active=True)
keynotes = Speaker.objects.filter(active=True, keynote=True).order_by('full_name')
q = Q(conference=request.conference)

keystone_sponsors = Sponsor.objects.filter(level=SponsorshipLevel.keystone)
platinum_sponsors = Sponsor.objects.filter(level=SponsorshipLevel.platinum)
gold_sponsors = Sponsor.objects.filter(level=SponsorshipLevel.gold)
silver_sponsors = Sponsor.objects.filter(level=SponsorshipLevel.silver)
partners = Sponsor.objects.filter(level=SponsorshipLevel.partner)
count_down = CountDown.objects.filter(active=True).filter(q)
keynotes = Speaker.objects.filter(active=True, keynote=True).order_by("full_name").filter(q)

mission_statement = MissionStatement.objects.filter(active=True)
keystone_sponsors = Sponsor.objects.filter(level=SponsorshipLevel.keystone).filter(q)
platinum_sponsors = Sponsor.objects.filter(level=SponsorshipLevel.platinum).filter(q)
gold_sponsors = Sponsor.objects.filter(level=SponsorshipLevel.gold).filter(q)
silver_sponsors = Sponsor.objects.filter(level=SponsorshipLevel.silver).filter(q)
partners = Sponsor.objects.filter(level=SponsorshipLevel.partner).filter(q)

mission_statement = MissionStatement.objects.filter(active=True).filter(q)

context = {
'keynotes': keynotes,
'keystone_sponsors': keystone_sponsors,
'platinum_sponsors': platinum_sponsors,
'gold_sponsors': gold_sponsors,
'silver_sponsors': silver_sponsors,
'partners': partners,
'count_down': count_down.first() if count_down else None,
'mission_statement': mission_statement.first() if mission_statement else None,
'meta': request.conference.as_meta(),
"keynotes": keynotes,
"keystone_sponsors": keystone_sponsors,
"platinum_sponsors": platinum_sponsors,
"gold_sponsors": gold_sponsors,
"silver_sponsors": silver_sponsors,
"partners": partners,
"count_down": count_down.first() if count_down else None,
"mission_statement": mission_statement.first() if mission_statement else None,
"meta": request.conference.as_meta(),
}
return render(request, 'home.html', context)
return render(request, "home.html", context)
2 changes: 1 addition & 1 deletion pyconbalkan/news/migrations/0008_post_conference.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,6 @@ class Migration(migrations.Migration):
migrations.AddField(
model_name='post',
name='conference',
field=models.ForeignKey(default=pyconbalkan.conference.abstractions._get_default_conference, on_delete=django.db.models.deletion.CASCADE, to='conference.Conference'),
field=models.ForeignKey(default=pyconbalkan.conference.models._get_default_conference, on_delete=django.db.models.deletion.CASCADE, to='conference.Conference'),
),
]
2 changes: 1 addition & 1 deletion pyconbalkan/news/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from markdownx.models import MarkdownxField
from taggit.managers import TaggableManager

from pyconbalkan.conference.abstractions import AbstractConference
from pyconbalkan.conference.models import AbstractConference
from pyconbalkan.core.models import ActiveModel


Expand Down
2 changes: 1 addition & 1 deletion pyconbalkan/speaker/migrations/0011_speaker_conference.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,6 @@ class Migration(migrations.Migration):
migrations.AddField(
model_name='speaker',
name='conference',
field=models.ForeignKey(default=pyconbalkan.conference.abstractions._get_default_conference, on_delete=django.db.models.deletion.CASCADE, to='conference.Conference'),
field=models.ForeignKey(default=pyconbalkan.conference.models._get_default_conference, on_delete=django.db.models.deletion.CASCADE, to='conference.Conference'),
),
]
2 changes: 1 addition & 1 deletion pyconbalkan/speaker/models.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from django.db import models
from django.db.models import CASCADE

from pyconbalkan.conference.abstractions import AbstractConference
from pyconbalkan.conference.models import AbstractConference
from pyconbalkan.core.models import Person, ActiveModel


Expand Down
2 changes: 1 addition & 1 deletion pyconbalkan/sponsors/migrations/0010_sponsor_conference.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,6 @@ class Migration(migrations.Migration):
migrations.AddField(
model_name='sponsor',
name='conference',
field=models.ForeignKey(default=pyconbalkan.conference.abstractions._get_default_conference, on_delete=django.db.models.deletion.CASCADE, to='conference.Conference'),
field=models.ForeignKey(default=pyconbalkan.conference.models._get_default_conference, on_delete=django.db.models.deletion.CASCADE, to='conference.Conference'),
),
]
2 changes: 1 addition & 1 deletion pyconbalkan/sponsors/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from markdownx.models import MarkdownxField
from djmoney.models.fields import MoneyField

from pyconbalkan.conference.abstractions import AbstractConference
from pyconbalkan.conference.models import AbstractConference
from pyconbalkan.core.models import ActiveModel


Expand Down