general: push a summary url to wcs

This commit is contained in:
Frédéric Péters 2015-10-09 18:01:00 +02:00
parent ae42e903db
commit e97facafb5
5 changed files with 28 additions and 13 deletions

View File

@ -16,6 +16,7 @@
from django.contrib.contenttypes.models import ContentType
from django.contrib.contenttypes import generic
from django.core.urlresolvers import reverse
from django.db import models
from django.db.models.signals import post_save
from django.dispatch import receiver
@ -32,14 +33,14 @@ class Association(models.Model):
formdef_reference = models.CharField(max_length=250, null=True)
formdata_id = models.CharField(max_length=250, null=True)
def push(self, request, context=None):
def push(self, request):
# push validated request to wcs
if context:
context = context.copy()
else:
context = {}
context = {}
context['user_id'] = self.source.contact_id
context['channel'] = self.source._meta.app_label
context['summary_url'] = request.build_absolute_uri(
reverse('wcs-summary', kwargs={'source_type': self.source_type_id,
'source_pk': self.source_pk}))
self.formdata_id = push_wcs_formdata(request, self.formdef_reference, context)
self.save()

View File

@ -57,13 +57,6 @@ class Mail(models.Model):
def get_qualification_form_submit_url(cls):
return reverse('qualif-mail-save')
def get_source_context(self, request):
return {
'channel': 'mail',
'mail_url': request.build_absolute_uri(self.content.url),
'thumbnail_url': request.build_absolute_uri(self.content.url) + '.png',
}
@receiver(post_save, sender=Mail)
def create_thumbnail(sender, instance, created, **kwargs):

View File

@ -0,0 +1 @@
<p class="thumbnail"><img src="{{ site_base }}{{ object.content.url }}.png" alt=""/></p>

View File

@ -44,6 +44,9 @@ urlpatterns = patterns('',
url(r'^ajax/contacts/(?P<slug>[\w-]+)/$',
'welco.contacts.views.contact_detail_fragment', name='contact-page-fragment'),
url(r'^ajax/summary/(?P<source_type>\w+)/(?P<source_pk>\w+)/$',
'welco.views.wcs_summary', name='wcs-summary'),
url(r'^admin/', include(admin.site.urls)),
url(r'^logout/$', 'welco.views.logout', name='auth_logout'),
url(r'^login/$', 'welco.views.login', name='auth_login'),

View File

@ -132,3 +132,20 @@ def qualification_done(request):
response = HttpResponse(content_type='application/json')
json.dump({'result': 'ok'}, response, indent=2)
return response
@login_required
def wcs_summary(request, *args, **kwargs):
source_class = ContentType.objects.get(id=kwargs.get('source_type')).model_class()
source_object = source_class.objects.get(id=kwargs.get('source_pk'))
tmpl_name = 'welco/%s_summary.html' % source_class._meta.app_label
tmpl = template.loader.get_template(tmpl_name)
context = RequestContext(request)
context['site_base'] = request.build_absolute_uri('/')[:-1]
context['object'] = source_object
json_str = json.dumps({'content': tmpl.render(context)})
for variable in ('jsonpCallback', 'callback'):
if variable in request.GET:
json_str = '%s(%s);' % (request.GET[variable], json_str)
break
return HttpResponse(json_str, content_type='application/javascript')