--- /dev/null
+# -*- coding: utf-8 -*-
+
+import datetime
+
+from django import template
+from django.contrib.admin import helpers
+from django.shortcuts import render_to_response
+from django.utils.translation import ugettext as _
+
+from models import Rappel, RappelUser
+
+
+def rappel(modeladmin, request, queryset):
+
+ opts = modeladmin.model._meta
+ app_label = opts.app_label
+
+ if request.POST.get('post'):
+
+ today = datetime.date.today()
+ lastyear = today - datetime.timedelta(days=365)
+
+ rappel = Rappel()
+ rappel.user_creation = request.user
+ rappel.date_cible = lastyear
+ rappel.date_limite = today + datetime.timedelta(days=30)
+ rappel.sujet = "Savoirs en partage : vérification de votre fiche chercheur"
+ rappel.contenu = "Bla"
+ rappel.save()
+
+ for chercheur in queryset:
+ rappeluser = RappelUser()
+ rappeluser.rappel = rappel
+ rappeluser.user = chercheur.user
+ rappeluser.save()
+
+ n = queryset.count()
+
+ modeladmin.message_user(
+ request,
+ u"%(count)d rappel(s) ont été envoyé(s)." % {"count": n}
+ )
+
+ return None
+
+ context = {
+ "title": _("Are you sure?"),
+ "queryset": queryset,
+ "app_label": app_label,
+ "opts": opts,
+ "action_checkbox_name": helpers.ACTION_CHECKBOX_NAME,
+ }
+
+ return render_to_response("admin/rappels/chercheurrappel/rappel_selected_confirmation.html",
+ context, context_instance=template.RequestContext(request))
+
+rappel.short_description = 'Envoyer rappel: Vérification fiche chercheur'
from chercheurs.admin import ChercheurAdmin
from rappels.models import ChercheurRappel
+from rappels import actions
class ChercheurRappelAdmin(ChercheurAdmin):
list_display = ['__unicode__', 'last_login']
-
list_editable = []
+
+ actions = [actions.rappel]
+
fields = ['salutation', 'nom', 'prenom', 'courriel', 'afficher_courriel',
'fonction', 'date_naissance', 'sousfonction', 'telephone',
'adresse_postale', 'genre', 'commentaire',
def queryset(self, request):
return ChercheurRappel.objects
+ def has_delete_permission(self, request, obj=None):
+ return False
+
+ def get_actions(self, request):
+ actions = super(ChercheurRappelAdmin, self).get_actions(request)
+
+ del actions['delete_selected']
+ del actions['export_as_ods']
+ del actions['export_as_csv']
+ if 'remove_from_group' in actions:
+ del actions['remove_from_group']
+
+ return actions
+
+
admin.site.register(ChercheurRappel, ChercheurRappelAdmin)
super(RappelUser, self).save(*args, **kwargs)
# Envoi du courriel...
+ print "Envoi du courriel à %s" % self.user.email
class ChercheurRappelManager(models.Manager):
--- /dev/null
+{% extends "admin/base_site.html" %}
+{% load i18n %}
+
+{% block breadcrumbs %}
+<div class="breadcrumbs">
+ <a href="../../">{% trans "Home" %}</a> ›
+ <a href="../">{{ app_label|capfirst }}</a> ›
+ <a href="./">{{ opts.verbose_name_plural|capfirst }}</a> ›
+ Rappel
+</div>
+{% endblock %}
+
+{% block content %}
+ <p>Êtes vous sûr d'envoyer tous ces rappels</p>
+ <ul>
+ {% for object in queryset %}
+ <li>{{ object }}</li>
+ {% endfor %}
+ </ul>
+ <form action="" method="post">{% csrf_token %}
+ <div>
+ {% for obj in queryset %}
+ <input type="hidden" name="{{ action_checkbox_name }}" value="{{ obj.pk }}" />
+ {% endfor %}
+ <input type="hidden" name="action" value="rappel" />
+ <input type="hidden" name="post" value="yes" />
+ <input type="submit" value="Confirmer et envoyer le rappel" />
+ </div>
+ </form>
+{% endblock %}