alfortville: dg summary table (#10089)

This commit is contained in:
Frédéric Péters 2016-03-22 13:25:48 +01:00
parent 42e4c24cc1
commit c009f03989
10 changed files with 59 additions and 12 deletions

View File

@ -21,8 +21,8 @@ from .views import (dgs, dga, copies, copies_ajax, table_info, table_avis,
count_avis, count_mandatory_avis)
urlpatterns = patterns('',
url('^dgs/$', dgs, name='alfortville-dgs'),
url('^dga/$', dga, name='alfortville-dga'),
url(r'^dgs/(?P<table>table/)?$', dgs, name='alfortville-dgs'),
url(r'^dga/(?P<table>table/)?$', dga, name='alfortville-dga'),
url('^copies/(?P<pk>\w+)/$', copies, name='alfortville-copies'),
url('^ajax/copies/(?P<pk>\w+)/$', copies_ajax, name='alfortville-copies-ajax'),
url('^table/info/$', table_info, name='alfortville-table-info'),

View File

@ -28,12 +28,17 @@ from hobo.agent.common.models import Role
from .models import Inbox
from welco.sources.mail.models import Mail
from welco.sources.mail.views import Home as MailHome
from welco.sources.mail.views import Home as MailOriginalHome
from welco.qualif.models import Association
from welco.utils import get_wcs_data, get_wcs_options, response_for_json
from welco.views import HomeMail as HomeScreen
class MailHome(MailOriginalHome):
def get_template(self):
return super(MailHome, self).get_template()
class DgsMailHome(MailHome):
display_filter = True
allow_reject = False
@ -41,8 +46,23 @@ class DgsMailHome(MailHome):
def get_queryset(self):
return Mail.objects.filter(status='done-qualif')
class Dgs(HomeScreen):
class DgHomeScreen(HomeScreen):
def get_template_names(self):
if self.kwargs.get('table') == 'table/':
return ['alfortville/dg-table.html']
return [self.template_name]
def get_context_data(self, **kwargs):
context = super(DgHomeScreen, self).get_context_data(**kwargs)
context['home_screen_title'] = self.home_screen_title
context['mails'] = context['source'].get_queryset()
return context
class Dgs(DgHomeScreen):
source_klass = DgsMailHome
home_screen_title = _('DGS Validation')
def check_user_ok(self):
return 'DGS' in [x.name for x in self.request.user.groups.all()]
@ -71,9 +91,9 @@ class DgaMailHome(MailHome):
return Mail.objects.filter(status='done-dgs',
associations__formdef_reference__in=formdef_references)
class Dga(HomeScreen):
class Dga(DgHomeScreen):
source_klass = DgaMailHome
home_screen_title = _('DGA Validation')
def check_user_ok(self):
user_roles = [x.name for x in self.request.user.groups.all()]

View File

@ -47,6 +47,10 @@ class Association(models.Model):
def formdef_name(self):
return get_wcs_formdef_details(self.formdef_reference).get('title')
@property
def formdef_category(self):
return get_wcs_formdef_details(self.formdef_reference).get('category')
@property
def formdata_url(self):
site, formdef = self.formdef_reference.split(':')

View File

@ -31,8 +31,9 @@ from .models import CounterPresence
class Home(object):
source_key = 'counter'
def __init__(self, request):
def __init__(self, request, **kwargs):
self.request = request
self.kwargs = kwargs
def render(self):
zone = CounterZone()

View File

@ -86,6 +86,15 @@ class Mail(models.Model):
def html_note(self):
return re.sub(r'[\r?\n]+', '<br><br>', self.note, re.DOTALL)
def categories(self):
categories = {}
for association in self.associations.all():
if association.formdef_category:
categories[association.formdef_category] = True
if not categories:
return '-'
return categories.keys()
@receiver(post_save, sender=Mail)
def create_thumbnail(sender, instance, created, **kwargs):

View File

@ -58,12 +58,16 @@ class Home(object):
display_filter = False
allow_reject = True
def __init__(self, request):
def __init__(self, request, **kwargs):
self.request = request
self.kwargs = kwargs
def get_queryset(self):
return Mail.objects.exclude(status__startswith='done-')
def get_template(self):
return 'welco/mail_home.html'
def render(self):
context = RequestContext(self.request)
context['mails'] = self.get_queryset().order_by('creation_timestamp')
@ -73,7 +77,7 @@ class Home(object):
if self.allow_reject:
context['reject_url'] = reverse('mail-reject')
context['display_filter'] = self.display_filter
tmpl = template.loader.get_template('welco/mail_home.html')
tmpl = template.loader.get_template(self.get_template())
return tmpl.render(context)

View File

@ -32,8 +32,9 @@ from .models import PhoneCall, PhoneLine
class Home(object):
source_key = 'phone'
def __init__(self, request):
def __init__(self, request, **kwargs):
self.request = request
self.kwargs = kwargs
def render(self):
zone = PhoneZone()

View File

@ -7,6 +7,10 @@ body.welco-home div#main-content {
height: calc(100vh - 8em);
}
body.mail-dg-table div#main-content {
height: calc(100vh - 8em);
}
body.mail-table div#more-user-links,
body.dgs-home div#more-user-links,
body.welco-home div#more-user-links {

View File

@ -301,7 +301,11 @@ $(function() {
});
$('#pdf-viewer').on('load', function() {
$('.mails ul li[data-pdf-href]:first-child').trigger('click');
if (window.location.search) {
$('.mails ul li[data-pdf-href][data-source-pk=' + window.location.search.substr(1) + ']').trigger('click');
} else {
$('.mails ul li[data-pdf-href]:first-child').trigger('click');
}
});
$(document).on('gadjo:dialog-done welco:load-mail-note', function(ev) {

View File

@ -113,7 +113,7 @@ class ChannelHome(TemplateView):
if not self.check_user_ok():
raise PermissionDenied()
context = super(ChannelHome, self).get_context_data(**kwargs)
context['source'] = self.source_klass(self.request)
context['source'] = self.source_klass(self.request, **kwargs)
context['kb'] = KbHomeZone(self.request)
context['contacts'] = ContactsHomeZone(self.request)
context['channels'] = []