Exemplo n.º 1
0
def postNewRule(request):
    #Modification.objects.all().delete()
    #Rule.objects.all().delete()

    if request.is_ajax():
        if request.method == 'POST':
            jdata = json.loads(request.raw_post_data)
            print jdata

            # if jdata['rules'][0]['scope'] == 'this_place':
            #     filteredRuleSet = RuleSet.objects.filter(userId=jdata['userName']).filter(\
            #                     appliesTo=jdata['urn']).filter(name=jdata['ruleSetName'])
            # elif jdata['rules'][0]['scope'] == 'this_entity':
            #     print "this_entity"
            # elif jdata['rules'][0]['scope'] == 'this_place':
            #     print "all_places"

            filteredRuleSet = RuleSet.objects.filter(userId=jdata['userName']).filter(\
                             appliesTo=jdata['urn']).filter(name=jdata['ruleSetName'])

            if filteredRuleSet and filteredRuleSet.count() == 1:
                filteredModifications = Modification.objects.filter(userId=jdata['userName']).filter(\
                    modification_type=jdata['rules'][0]['modifications'][0]['modification_type']).filter(\
                    dateTime=jdata['rules'][0]['modifications'][0]['dateTime'])

                found = False
                for rule in filteredRuleSet[0].rules.all():
                    if (rule.appliesTo == jdata['urn'] and rule.action == \
                        jdata['rules'][0]['action'] and rule.scope == jdata['rules'][0]['scope'] \
                        and rule.token == jdata['rules'][0]['token']):
                        found = True

                if not filteredModifications and not found:
                    m = Modification()
                    m.userId = jdata['userName']
                    m.modification_type = jdata['rules'][0]['modifications'][
                        0]['modification_type']
                    m.dateTime = jdata['rules'][0]['modifications'][0][
                        'dateTime']
                    m.save()

                    r = Rule()
                    r.appliesTo = jdata['urn']
                    r.action = jdata['rules'][0]['action']
                    r.scope = jdata['rules'][0]['scope']
                    r.token = jdata['rules'][0]['token']
                    r.save()
                    r.modifications.add(m)
                    filteredRuleSet[0].rules.add(r)
                else:
                    print "error: filteredModifications OR filteredRules"
            else:
                print "error: filteredRuleSet"

    return HttpResponse("OK")
Exemplo n.º 2
0
def postNewRule(request):
    #Modification.objects.all().delete()
    #Rule.objects.all().delete()
    
    if request.is_ajax():
        if request.method == 'POST':
            jdata = json.loads(request.raw_post_data)
            print jdata

            # if jdata['rules'][0]['scope'] == 'this_place':
            #     filteredRuleSet = RuleSet.objects.filter(userId=jdata['userName']).filter(\
            #                     appliesTo=jdata['urn']).filter(name=jdata['ruleSetName'])
            # elif jdata['rules'][0]['scope'] == 'this_entity':
            #     print "this_entity"
            # elif jdata['rules'][0]['scope'] == 'this_place':
            #     print "all_places"

            filteredRuleSet = RuleSet.objects.filter(userId=jdata['userName']).filter(\
                             appliesTo=jdata['urn']).filter(name=jdata['ruleSetName'])

            if filteredRuleSet and filteredRuleSet.count() == 1:
                filteredModifications = Modification.objects.filter(userId=jdata['userName']).filter(\
                    modification_type=jdata['rules'][0]['modifications'][0]['modification_type']).filter(\
                    dateTime=jdata['rules'][0]['modifications'][0]['dateTime'])
                
                found = False
                for rule in filteredRuleSet[0].rules.all():
                    if (rule.appliesTo == jdata['urn'] and rule.action == \
                        jdata['rules'][0]['action'] and rule.scope == jdata['rules'][0]['scope'] \
                        and rule.token == jdata['rules'][0]['token']):
                        found = True
                        
                if not filteredModifications and not found:
                    m = Modification()
                    m.userId = jdata['userName']
                    m.modification_type = jdata['rules'][0]['modifications'][0]['modification_type']
                    m.dateTime = jdata['rules'][0]['modifications'][0]['dateTime']
                    m.save()
                    
                    r = Rule()
                    r.appliesTo = jdata['urn']
                    r.action = jdata['rules'][0]['action']
                    r.scope = jdata['rules'][0]['scope']
                    r.token = jdata['rules'][0]['token']
                    r.save()
                    r.modifications.add(m)
                    filteredRuleSet[0].rules.add(r)
                else:
                    print "error: filteredModifications OR filteredRules"
            else:
                print "error: filteredRuleSet"
                
    return HttpResponse("OK")