vote model. still needs views, urls, tests, templates, etc.

This commit is contained in:
Guilhem Saurel 2016-06-30 01:13:59 +02:00
parent 3d9d9a554b
commit 6e0d87ddee
2 changed files with 44 additions and 0 deletions

View File

@ -0,0 +1,33 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.7 on 2016-06-29 23:11
from __future__ import unicode_literals
import django.core.validators
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('accounts', '0001_initial'),
('proposals', '0001_initial'),
]
operations = [
migrations.CreateModel(
name='Vote',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created', models.DateTimeField(auto_now_add=True)),
('updated', models.DateTimeField(auto_now=True)),
('vote', models.IntegerField(default=0, validators=[django.core.validators.MinValueValidator(-2), django.core.validators.MaxValueValidator(2)])),
('talk', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='proposals.Talk')),
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='accounts.Participation')),
],
),
migrations.AlterUniqueTogether(
name='vote',
unique_together=set([('talk', 'user')]),
),
]

View File

@ -4,6 +4,7 @@ from django.contrib.auth.models import User
from django.contrib.sites.managers import CurrentSiteManager
from django.contrib.sites.models import Site
from django.core.urlresolvers import reverse
from django.core.validators import MaxValueValidator, MinValueValidator
from django.db import models
from autoslug import AutoSlugField
@ -64,3 +65,13 @@ class Talk(PonyConfModel):
except Participation.DoesNotExists:
return False
return participation.orga or self.topics.filter(reviewers=participation).exists()
class Vote(PonyConfModel):
talk = models.ForeignKey(Talk)
user = models.ForeignKey(Participation)
vote = models.IntegerField(validators=[MinValueValidator(-2), MaxValueValidator(2)], default=0)
class Meta:
unique_together = ('talk', 'user')