Exemple #1
0
def getPremi(request, pk_premi ):
    
    visitant = hlp_visitant_checkUser( request.user )   
    
    #frmFact = modelform_factory( CapturaDePremi, fields = ('captures_qr', ) )
    premi = get_object_or_404( Premi, pk = pk_premi)
    
    captura = CapturaDePremi( premi = premi, visitant = visitant, codi_de_recollida = str(pk_premi) )  #TODO
    if request.method == 'POST':
        #frm = frmFact( request.POST, instance = captura )
        frm = getPremiForm( request.POST )
        frm.fields['captures_qr'].queryset = visitant.capturadeqr_set.filter( bescanviat_cache = False, caduca_dia__gte = date.today() )
        if frm.is_valid():
            try:
                #captura = frm.save( commit = False )
                premi.bind_to_owner( frm.cleaned_data["captures_qr"]  )
                url = reverse( 'visitant:play_estat' )
                messages.success(request, u'Premi capturat.')
                return HttpResponseRedirect( url )

            except ValidationError, e:
                frm._errors.setdefault(NON_FIELD_ERRORS, []).extend(  e.messages  )
Exemple #2
0
            except ValidationError, e:
                frm._errors.setdefault(NON_FIELD_ERRORS, []).extend(  e.messages  )
                

    else:
        capturesDeQR = visitant.capturadeqr_set.filter( bescanviat_cache = False, caduca_dia__gte = date.today() )
        capturesNecessaries = []
        suma = 0
        for c in sorted(  capturesDeQR, key = lambda x:  x.caduca_dia):
            capturesNecessaries.append( c )
            suma += c.punts_cache
            if suma >= premi.punts_cache:
                break
        
        #frm = frmFact( instance = captura, initial = { 'captures_qr': capturesNecessaries , } )
        frm = getPremiForm( initial = { 'captures_qr': capturesNecessaries , } )
        frm.fields['captures_qr'].queryset = visitant.capturadeqr_set.filter( bescanviat_cache = False )
        
    frm.fields['captures_qr'].widget = CheckboxSelectMultiple( ) 
        
    frm.helper = FormHelper()
    frm.helper.form_class = 'form-horizontal'
    frm.helper.layout = Layout(
                            'captures_qr',
                            FormActions(
                                Submit('save_changes', u"Me'l quedo!"),
                                #Button('cancel', 'Cancel'),
                            )
                )
        
    return render_to_response( 'form_getPremi.html',