729de410404deb76da34d3f0a2003f6b45f89e36
1 # -*- coding: utf-8 -*-
3 from django
.core
.urlresolvers
import reverse
4 from django
import forms
5 from django
.db
import models
6 from reversion
.models
import Revision
8 class ModificationTraite(models
.Model
):
10 Classe utilisée pour marquer les révisions de reversion traitée par
13 revision
= models
.ForeignKey('reversion.Revision')
16 def format_revisions(qs
):
20 # Dans une révision, on loop dans les versions associées, pour trouver
21 # un modèle qui dispose d'une admin (à priori, le parent) dans le cas
28 for v
in rev
.version_set
.all():
31 klass
= v
.content_type
.model_class()
33 objet
= klass
.objects
.get(id=id)
34 change_url
= reverse('admin:rh_%s_change' % v
.content_type
.model
,
36 history_url
= reverse('admin:rh_%s_history' % v
.content_type
.model
,
38 type = klass
._meta
.verbose_name
45 'date_created': rev
.date_created
.strftime("%d-%m-%Y %H:%M:%S"),
46 'short_date_created': rev
.date_created
.strftime("%d-%m-%Y"),
48 'comment': rev
.comment
,
49 'change_url': change_url
,
50 'history_url': history_url
,
57 def get_active_revisions():
58 ids_revisions_traitees
= [m
.revision
.id for m
in
59 ModificationTraite
.objects
.all()]
60 return format_revisions(
62 exclude(user__isnull
=True).
63 exclude(id__in
=ids_revisions_traitees
).
64 order_by('-date_created'))
67 class TodoForm(forms
.Form
):
68 items
= forms
.MultipleChoiceField("Les items traités",
69 widget
=forms
.CheckboxSelectMultiple
)
71 def __init__(self
, *args
, **kwargs
):
72 self
.revisions
= kwargs
.pop('revisions')
73 super(TodoForm
, self
).__init__(*args
, **kwargs
)
74 self
.fields
['items'].choices
= [(r
['id'], r
['id']) for r
in self
.revisions
]