示例#1
0
 def obj_create(self, bundle, **kwargs):
     bundle = super(MediatorResource, self).obj_create(bundle, **kwargs)
     vil_list = bundle.data.get('assigned_villages')
     for vil in vil_list:
         vil = Village.objects.get(id=int(vil.split('/')[-2]))
         u = AnimatorAssignedVillage(animator=bundle.obj, village=vil)
         u.save()
     bundle.obj.role = 0
     return bundle
示例#2
0
    def obj_create(self, bundle, **kwargs):
        bundle = super(MediatorResource, self).obj_create(bundle, **kwargs)
        vil_list = bundle.data.get('assigned_villages')
        for vil in vil_list:
            vil = Village.objects.get(id = int(vil.split('/')[-2]))
            u = AnimatorAssignedVillage(animator=bundle.obj, village=vil)
            u.save()

        return bundle
示例#3
0
文件: api.py 项目: Flimon1317/dg
 def obj_create(self, bundle, **kwargs):
     attempt = Animator.objects.filter(partner_id=bundle.data['partner']['online_id'], gender=bundle.data[
                                       'gender'], district_id=bundle.data['district']['online_id'], name=bundle.data['name'], phone_no=bundle.data['phone_no'])
     if attempt.count() < 1:
         bundle = super(MediatorResource, self).obj_create(bundle, **kwargs)
         vil_list = bundle.data.get('assigned_villages')
         for vil in vil_list:
             vil = Village.objects.get(id=int(vil.split('/')[-2]))
             u = AnimatorAssignedVillage(animator=bundle.obj, village=vil)
             u.save()
     else:
         send_duplicate_message(int(attempt[0].id))
     return bundle
示例#4
0
 def obj_create(self, bundle, **kwargs):
     attempt = Animator.objects.filter(partner_id=bundle.data['partner']['online_id'], gender=bundle.data[
                                       'gender'], district_id=bundle.data['district']['online_id'], name=bundle.data['name'], phone_no=bundle.data['phone_no'])
     if attempt.count() < 1:
         bundle = super(MediatorResource, self).obj_create(bundle, **kwargs)
         vil_list = bundle.data.get('assigned_villages')
         for vil in vil_list:
             vil = Village.objects.get(id=int(vil.split('/')[-2]))
             u = AnimatorAssignedVillage(animator=bundle.obj, village=vil)
             u.save()
     else:
         raise MediatorNotSaved(
             {"online_id": int(attempt[0].id), "error": "Duplicate"})
     return bundle
示例#5
0
    def obj_update(self, bundle, **kwargs):
        #Edit case many to many handling. First clear out the previous related objects and create new objects
        bundle = super(MediatorResource, self).obj_update(bundle, **kwargs)
        mediator_id = bundle.data.get('id')
        vil_id_list = []
        for vil_resource in bundle.data.get('assigned_villages'):
            vil_id_list.append(int(vil_resource.split('/')[-2]))
        existing_vil_ids = AnimatorAssignedVillage.objects.filter(animator__id=mediator_id).values_list('village__id', flat=True)
        #delete only if assigned villages are different
        if len(list(set(vil_id_list) & set(existing_vil_ids))) != len(vil_id_list) :
            #first delete the old associations
            del_objs = AnimatorAssignedVillage.objects.filter(animator__id=mediator_id).delete()
            #add new villages again
            vil_list = bundle.data.get('assigned_villages')
            for vil in vil_list:
                vil = Village.objects.get(id = int(vil.split('/')[-2]))
                u = AnimatorAssignedVillage(animator=bundle.obj, village=vil)
                u.save()

        return bundle
示例#6
0
 def obj_update(self, bundle, **kwargs):
     #Edit case many to many handling. First clear out the previous related objects and create new objects
     bundle = super(MediatorResource, self).obj_update(bundle, **kwargs)
     mediator_id = bundle.data.get('id')
     vil_id_list = []
     for vil_resource in bundle.data.get('assigned_villages'):
         vil_id_list.append(int(vil_resource.split('/')[-2]))
     existing_vil_ids = AnimatorAssignedVillage.objects.filter(animator__id=mediator_id).values_list('village__id', flat=True)
     #delete only if assigned villages are different
     if len(list(set(vil_id_list) & set(existing_vil_ids))) != len(vil_id_list) :
         #first delete the old associations
         del_objs = AnimatorAssignedVillage.objects.filter(animator__id=mediator_id).delete()
         #add new villages again
         vil_list = bundle.data.get('assigned_villages')
         for vil in vil_list:
             vil = Village.objects.get(id = int(vil.split('/')[-2]))
             u = AnimatorAssignedVillage(animator=bundle.obj, village=vil)
             u.save()
 
     return bundle