Bifurcation depuis
La Quadrature du Net / Political Memory / memopol
886 validations de retard le dépôt en amont.
-
Nicolas Joyard a rédigéNicolas Joyard a rédigé
models.py 2,23 Kio
# coding: utf-8
from django.db import models
from representatives_votes.contrib.parltrack.import_votes import \
vote_pre_import
from representatives_votes.models import Dossier, Proposal, Vote
from representatives.models import Representative
class DossierScore(models.Model):
id = models.CharField(max_length=255, primary_key=True)
representative = models.ForeignKey(Representative,
on_delete=models.DO_NOTHING)
dossier = models.ForeignKey(Dossier, on_delete=models.DO_NOTHING)
score = models.IntegerField(default=0)
class Meta:
managed = False
db_table = 'representatives_recommendations_dossierscores'
class VoteScore(models.Model):
proposal = models.ForeignKey(Proposal, related_name='votescores')
representative = models.ForeignKey(
Representative, related_name='votescores', null=True)
position = models.CharField(max_length=10)
score = models.IntegerField(default=0)
class Meta:
managed = False
ordering = ['proposal__datetime']
db_table = 'representatives_recommendations_votescores'
class RepresentativeScore(models.Model):
representative = models.OneToOneField('representatives.representative',
primary_key=True, related_name='score')
score = models.IntegerField(default=0)
class Meta:
managed = False
db_table = 'representatives_recommendations_representativescore'
class Recommendation(models.Model):
proposal = models.OneToOneField(
Proposal,
related_name='recommendation'
)
recommendation = models.CharField(max_length=10, choices=Vote.VOTECHOICES)
title = models.CharField(max_length=1000, blank=True)
description = models.TextField(blank=True)
weight = models.IntegerField(default=0)
class Meta:
ordering = ['proposal__datetime']
def skip_votes(sender, vote_data=None, **kwargs):
dossiers = getattr(sender, 'memopol_filters', None)
if dossiers is None:
sender.memopol_filters = dossiers = Dossier.objects.filter(
proposals__recommendation__in=Recommendation.objects.all()
).values_list('reference', flat=True)
if vote_data.get('epref', None) not in dossiers:
return False
vote_pre_import.connect(skip_votes)