app/soc/views/models/program.py
changeset 2055 b4375ec63de5
parent 2004 4d9e41c947fd
child 2064 031406b4789d
equal deleted inserted replaced
2054:4df153b8424c 2055:b4375ec63de5
   374     For params see base.view.Public().
   374     For params see base.view.Public().
   375     """
   375     """
   376 
   376 
   377     from django.utils import simplejson
   377     from django.utils import simplejson
   378 
   378 
       
   379     from soc.logic.models.proposal_duplicates import logic as duplicates_logic
       
   380 
   379     program_entity = program_logic.logic.getFromKeyFieldsOr404(kwargs)
   381     program_entity = program_logic.logic.getFromKeyFieldsOr404(kwargs)
       
   382 
       
   383     if request.POST and request.POST.get('result'):
       
   384       # store result in the datastore
       
   385       fields = {'link_id': program_entity.link_id,
       
   386                 'scope': program_entity,
       
   387                 'scope_path': program_entity.key().name(),
       
   388                 'json_representation' : request.POST['result']
       
   389                 }
       
   390       key_name = duplicates_logic.getKeyNameFromFields(fields)
       
   391       duplicates_logic.updateOrCreateFromKeyName(fields, key_name)
       
   392       return http.HttpResponse('Done')
   380 
   393 
   381     context = helper.responses.getUniversalContext(request)
   394     context = helper.responses.getUniversalContext(request)
   382     helper.responses.useJavaScript(context, params['js_uses_all'])
   395     helper.responses.useJavaScript(context, params['js_uses_all'])
   383     context['uses_duplicates'] = True
   396     context['uses_duplicates'] = True
   384     context['uses_json'] = True
   397     context['uses_json'] = True
   394     to_json = {
   407     to_json = {
   395         'nr_of_orgs': query.count(),
   408         'nr_of_orgs': query.count(),
   396         'program_key': program_entity.key().name()}
   409         'program_key': program_entity.key().name()}
   397     json = simplejson.dumps(to_json)
   410     json = simplejson.dumps(to_json)
   398     context['info'] = json
   411     context['info'] = json
   399 
       
   400     # TODO(ljvderijk) cache the result of the duplicate calculation
       
   401     context['duplicate_cache_content'] = simplejson.dumps({})
       
   402     context['offset_length'] = 10
   412     context['offset_length'] = 10
       
   413 
       
   414     fields = {'link_id': program_entity.link_id,
       
   415               'scope': program_entity}
       
   416     duplicates = duplicates_logic.getForFields(fields, unique=True)
       
   417 
       
   418     if duplicates:
       
   419       # we have stored information
       
   420       context['duplicate_cache_content'] = duplicates.json_representation
       
   421       context['date_of_calculation'] = duplicates.calculated_on
       
   422     else:
       
   423       # no information stored
       
   424       context['duplicate_cache_content'] = simplejson.dumps({})
   403 
   425 
   404     template = 'soc/program/show_duplicates.html'
   426     template = 'soc/program/show_duplicates.html'
   405 
   427 
   406     return helper.responses.respond(request, template=template, context=context)
   428     return helper.responses.respond(request, template=template, context=context)
   407 
   429