@@ -2,25 +2,25 @@
from datetime import datetime
from decimal import Decimal
from django.db import models
from django.db.models import Q
from django.db.models.signals import post_save
from django.contrib.auth.models import User
from markitup.fields import MarkupField
from symposion.proposals.models import ProposalBase
# from symposion.schedule.models import Presentation
from symposion.schedule.models import Presentation
class ProposalScoreExpression(object):
def as_sql(self, qn, connection=None):
sql = "((3 * plus_one + plus_zero) - (minus_zero + 3 * minus_one))"
return sql, []
def prepare_database_save(self, unused):
return self
@@ -270,40 +270,39 @@ class Comment(models.Model):
commenter = models.ForeignKey(User)
text = MarkupField()
# Or perhaps more accurately, can the user see this comment.
public = models.BooleanField(choices=[
(True, "public"),
(False, "private"),
])
commented_at = models.DateTimeField(default=datetime.now)
def promote_proposal(proposal):
raise NotImplementedError()
# presentation, created = Presentation.objects.get_or_create(
# pk=proposal.pk,
# defaults=dict(
# title=proposal.title,
# description=proposal.description,
# kind=proposal.kind,
# category=proposal.category,
# duration=proposal.duration,
# abstract=proposal.abstract,
# audience_level=proposal.audience_level,
# submitted=proposal.submitted,
# speaker=proposal.speaker,
# )
# if created:
# for speaker in proposal.additional_speakers.all():
# presentation.additional_speakers.add(speaker)
# presentation.save()
# return presentation
if hasattr(proposal, "presentation") and proposal.presentation:
# already promoted
presentation = proposal.presentation
else:
presentation = Presentation(
title = proposal.title,
description = proposal.description,
abstract = proposal.abstract,
speaker = proposal.speaker,
section = proposal.section,
_proposal = proposal,
)
presentation.save()
for speaker in proposal.additional_speakers.all():
presentation.additional_speakers.add(speaker)
return presentation
def accepted_proposal(sender, instance=None, **kwargs):
if instance is None:
return
if instance.accepted == True:
promote_proposal(instance.proposal)
post_save.connect(accepted_proposal, sender=ProposalResult)