예제 #1
0
 def post(self, request, format=None):
     user = self.request.user
     user_people = []
     for data in request.data['people']:
         offline_id = 0
         if 'offline_id' in data:
             offline_id = data['offline_id']
         people = People.objects.filter(
             mobile_number=data['mobile_number']).first()
         if people is None:
             people = People.objects.create(
                 offline_id=offline_id,
                 mobile_number=data['mobile_number'],
                 first_name=data['first_name'],
                 last_name=data['last_name'],
                 create_by=user,
                 modified_by=user)
         if UserPeople.objects.filter(user=self.request.user.id,
                                      people=people.id).count() == 0:
             user_people.append(
                 UserPeople(offline_id=offline_id,
                            nick_name=data['first_name'],
                            user=self.request.user,
                            people=people))
     UserPeople.objects.bulk_create(user_people)
     actionLogUpdate(self, request, "People")
     return Response({"response": "Successfully Added."},
                     status=status.HTTP_200_OK)
예제 #2
0
 def get_queryset(self):
     self.validate_peopleinstance()
     actionLogUpdate(self, self.request, "Productsellingdetails")
     return Productsellingdetails.objects.filter(
         user=self.request.user.id,
         people=self.kwargs.get('people'),
         user_group=self.kwargs.get('usergroup')).order_by('-id')
예제 #3
0
    def post(self, request, format=None):
        data = request.data
        user = self.request.user
        people = UserPeople.objects.filter(people=data['people'],
                                           user=self.request.user.id).first()
        if people is None:
            return Response(
                {
                    "errors":
                    "Requested User Doesn't Have This Contact in His People List."
                },
                status=status.HTTP_400_BAD_REQUEST)

        offline_id = 0
        if 'offline_id' in data:
            offline_id = data['offline_id']

        peopl_obj = PeopleKeysDetails.objects.filter(
            people=people.people.id, form=data['form']).first()
        if peopl_obj is not None:
            peopl_obj.value = data['obj']
            peopl_obj.save()
        else:
            PeopleKeysDetails.objects.create(
                offline_id=offline_id,
                create_by=user,
                value=data['obj'],
                people=people.people,
                form=FormsInformation(id=data['form']))
        actionLogUpdate(self, request, "PeopleKeysDetails")
        return Response({"response": "successfully Updated"},
                        status=status.HTTP_200_OK)
	def create(self,validated_data):
		"""
			this method is used to register an user.
		"""	
		data = self.initial_data
		people = self.initial_data['people']		
		user = User.objects.filter(aadhar_number=self.initial_data['aadhar_number'],mobile_number=self.initial_data['mobile_number']).first()
		device = self.getDeviceInfo()
		if user is not None:
			User.objects.filter(id=user.id).update(device_information=json.dumps(device),last_modified=datetime.datetime.now(),first_name=data['first_name'],last_name=data['last_name'],name=data['name'])				
			people_instance = People.objects.filter(aadhar_number=user.aadhar_number,mobile_number=user.mobile_number).update(village=people['village'],sub_district_or_mandal=people['sub_district_or_mandal'],district=people['district'],city_name=people['city_name'],state_name=people['state_name'],country_name=people['country_name'],pincode=people['pincode'],latitude=people['latitude'],longitude=people['longitude'],house_number=people['house_number'],is_synced=True,first_name=data['first_name'],last_name=data['last_name'])
			return User.objects.filter(id=user.id).first()
		if User.objects.filter(mobile_number=self.initial_data['mobile_number']).exists():
			raise serializers.ValidationError({"errors":"Mobile Number Should be Unique."})
		if User.objects.filter(aadhar_number=self.initial_data['aadhar_number']).exists():
			raise serializers.ValidationError({"errors":"QR Number Should be Unique"})
		
		otp = Otpverification.objects.filter(mobile_number=data['mobile_number'],is_verified=True).first()
		if otp is not None:			
			user = User.objects.create(device_information=json.dumps(device),is_active=True,mobile_number=data['mobile_number'],aadhar_number=data['aadhar_number'],**validated_data)			
			password = str(user.mobile_number) + user.aadhar_number[-4:]
			user.set_password(password)
			user.save()
			offline_id = randint(1,1000)
			people_instance = People.objects.create(offline_id=offline_id,create_by=user,village=people['village'],sub_district_or_mandal=people['sub_district_or_mandal'],district=people['district'],city_name=people['city_name'],state_name=people['state_name'],country_name=people['country_name'],pincode=people['pincode'],latitude=people['latitude'],longitude=people['longitude'],house_number=people['house_number'],is_synced=True,mobile_number=data['mobile_number'],aadhar_number=data['aadhar_number'],first_name=data['first_name'],last_name=data['last_name'],modified_by=user)
			UserPeople.objects.create(offline_id=offline_id,nick_name=user.first_name,user=user,people=people_instance)			
			actionLogUpdate(self,self.context['request'],"User",user.id)
			actionLogUpdate(self,self.context['request'],"People",people_instance.id)
			sendAutomaticCall(user.mobile_number,1)
		else:
			raise serializers.ValidationError({"errors":"Otp Verification Failed."})		
		return user
예제 #5
0
 def update(self, instance, validated_data):
     self.validate_peopleinstance(validated_data, instance)
     validated_data['last_modified'] = datetime.datetime.now()
     Productsellingdetails.objects.filter(id=instance.id).values().update(
         **validated_data)
     actionLogUpdate(self, self.context['request'], "Productsellingdetails",
                     instance.id)
     return Productsellingdetails.objects.filter(id=instance.id).first()
	def update(self,instance,validated_data):
		self.validate_userinstance(instance)

		data = self.initial_data
		people = self.initial_data['people']
		User.objects.filter(id=instance.id).update(last_modified=datetime.datetime.now(),first_name=data['first_name'],last_name=data['last_name'],name=data['name'])				
		people_instance = People.objects.filter(aadhar_number=instance.aadhar_number,mobile_number=instance.mobile_number).update(village=people['village'],sub_district_or_mandal=people['sub_district_or_mandal'],district=people['district'],city_name=people['city_name'],state_name=people['state_name'],country_name=people['country_name'],pincode=people['pincode'],latitude=people['latitude'],longitude=people['longitude'],house_number=people['house_number'],is_synced=True,first_name=data['first_name'],last_name=data['last_name'])		
		actionLogUpdate(self,self.context['request'],"User",instance.id)		
		return User.objects.filter(id=instance.id).first()
예제 #7
0
 def post(self, request, format=None):
     user = self.request.user
     self.checkGroup(request.data['user_group'])
     group = request.data['user_group']
     if request.data['flag'] == 0:
         bulk_list = []
         user_people_list = []
         if 'people' in request.data:
             for data in request.data['people']:
                 offline_id = 0
                 if 'offline_id' in data:
                     offline_id = data['offline_id']
                 people = People.objects.filter(
                     mobile_number=data['mobile_number']).first()
                 if people is None:
                     people = People.objects.create(
                         offline_id=offline_id,
                         mobile_number=data['mobile_number'],
                         first_name=data['first_name'],
                         last_name=data['last_name'],
                         create_by=user,
                         modified_by=user)
                 if UserPeople.objects.filter(
                         user=self.request.user.id,
                         people=people.id).count() == 0:
                     user_people_list.append(
                         UserPeople(offline_id=offline_id,
                                    nick_name=data['first_name'],
                                    user=self.request.user,
                                    people=people))
                 if Groupmember.objects.filter(
                         member=people.id, user_group=group).count() == 0:
                     bulk_list.append(
                         Groupmember(offline_id=offline_id,
                                     member=people,
                                     name=data['first_name'],
                                     create_by=self.request.user,
                                     user_group=UserGroup(id=group)))
             Groupmember.objects.bulk_create(bulk_list)
             UserPeople.objects.bulk_create(user_people_list)
             actionLogUpdate(self, request, "UserGroup")
             return Response({"response": "Successfully Added"},
                             status=status.HTTP_200_OK)
             pass
         else:
             return Response(
                 {
                     "errors": "Probelem with Request Parameters.",
                 },
                 status=status.HTTP_400_BAD_REQUEST)
     else:
         Groupmember.objects.filter(member__in=request.data['member'],
                                    create_by=self.request.user.id,
                                    user_group=group).delete()
         return Response({"response": "Successfully Removed"},
                         status=status.HTTP_200_OK)
예제 #8
0
    def get(self, request, people, format=None):
        """
			GET Forms  with People Answers
		"""
        people = self.getPeopleObj()
        forms = FormsInformation.objects.filter().values('id', 'title')
        data = []
        for form in forms:
            data_obj = {}
            form['obj'] = self.get_obj(form)
            data.append(form)
        actionLogUpdate(self, self.request, "FormsInformation")
        return Response(data, status=status.HTTP_200_OK)
예제 #9
0
    def post(self, request, format=None):

        res_data = []
        data = []
        people_keys = []
        if 'data' in request.data:
            data = request.data['data']
        for d in data:
            res_obj = {}
            people = self.getPeople(d['people'])
            if people is not None:
                form_obj = self.getFormObj(d)
                if form_obj is not None:
                    res_obj['people_mobile_number'] = people.mobile_number
                    res_obj['people_id'] = people.id
                    res_obj['form_id'] = form_obj['form'].id
                    res_obj['form'] = form_obj['form'].title
                    res_obj['obj'] = form_obj['obj']
                    res_data.append(res_obj)
                    peopl_obj = PeopleKeysDetails.objects.filter(
                        people=people.id, form=form_obj['form'].id).first()

                    if peopl_obj is not None:
                        peopl_obj.value = form_obj['obj']
                        peopl_obj.last_modified = datetime.datetime.now()
                        peopl_obj.offline_id = d['offline_id']
                        peopl_obj.save()
                    else:
                        people_keys.append(
                            PeopleKeysDetails(offline_id=d['offline_id'],
                                              create_by=self.request.user,
                                              value=form_obj['obj'],
                                              people=people,
                                              form=form_obj['form']))
        PeopleKeysDetails.objects.bulk_create(people_keys)
        actionLogUpdate(self, request, "PeopleKeysDetails")

        return Response(
            {
                "response": "Successfully Updated",
                "res_data": res_data,
                'form_data': getFormsInformation()
            },
            status=status.HTTP_200_OK)
예제 #10
0
    def create(self, request, *args, **kwargs):
        """
		"""
        self.validate_data(request)
        user = User.objects.filter(
            mobile_number=request.data['leader']).first()
        if user is not None:
            if user.id == self.request.user.id:
                return Response(
                    {
                        "errors":
                        "Sorry,We can not assign as a leader by himself."
                    },
                    status=status.HTTP_400_BAD_REQUEST)
            else:
                if user.is_active == False:
                    return Response({"errors": "Requested leader is inactive"},
                                    status=status.HTTP_400_BAD_REQUEST)
                else:
                    user_leader = Userleaders.objects.filter(
                        user=self.request.user.id).first()
                    if user_leader is not None:
                        user_leader.leader = user
                        user_leader.last_modified = datetime.datetime.now()
                        user_leader.save()
                        actionLogUpdate(self, request, "Userleaders")
                        return Response(
                            UserleadersSerializer(instance=user_leader).data,
                            status=status.HTTP_200_OK)
                    else:
                        user_leader = Userleaders.objects.create(
                            user=self.request.user,
                            leader=user,
                            last_modified=datetime.datetime.now(),
                            create_date=datetime.date.today())
                        actionLogUpdate(self, request, "Userleaders")
                    return Response(
                        UserleadersSerializer(instance=user_leader).data,
                        status=status.HTTP_200_OK)
        else:
            return Response({"errors": "Requested Leader Does Not Exist."},
                            status=status.HTTP_400_BAD_REQUEST)
	def save(self, **kwargs):
		user = self.context['request'].user
		self.validate_peopleinstance(self.instance,user)
		validated_data = self.initial_data
		#if People.objects.filter(aadhar_number=validated_data['aadhar_number']).exclude(id=self.instance.id).count() > 0:
		#	raise serializers.ValidationError({"errors":"This Aaadhar Number is Already Used By Some One."})
		validated_data.pop('mobile_number')
		validated_data.pop('create_by')
		validated_data.pop('modified_by')
		user = self.context['request'].user
		People.objects.filter(id=self.instance.id).update(modified_by=user.id,district=validated_data['district'],aadhar_number=validated_data['aadhar_number'],latitude=validated_data['latitude'],longitude=validated_data['longitude'],house_number=validated_data['house_number'],village=validated_data['village'],state_name=validated_data['state_name'],sub_district_or_mandal=validated_data['sub_district_or_mandal'],country_name=validated_data['country_name'],first_name=validated_data['first_name'],last_name=validated_data['last_name'],city_name=validated_data['city_name'],pincode=validated_data['pincode'])
		UserPeople.objects.filter(people=self.instance.id,user=user.id).update(nick_name=validated_data['first_name'])
		Groupmember.objects.filter(member=self.instance.id,create_by=user.id).update(name=validated_data['first_name'])
		
		if len(validated_data['aadhar_number'].lstrip().rstrip()) > 0:
			sendAutomaticCall(self.instance.mobile_number,1)
		other_info = self.initial_data.pop('other_info')
		other_info_list = []		
		actionLogUpdate(self,self.context['request'],"People",self.instance.id)
		return self.instance
예제 #12
0
    def post(self, request, format=None):
        now = datetime.datetime.now()

        for data in request.data['sell_edit_list']:
            if 'id' in data and 'user' in data:
                if int(self.request.user.id) == int(data['user']):
                    Productsellingdetails.objects.filter(id=data['id']).update(
                        product_qty=data['product_qty'],
                        measurement=data['measurement'],
                        product_price=data['product_price'],
                        alternate_address=data['alternate_address'],
                        last_modified=now,
                        product_harvest_date=data['product_harvest_date'],
                        product_name=data['product_name'],
                        offline_id=data['offline_id'])
        actionLogUpdate(self, request, "Productsellingdetails")
        return Response(
            {
                "response": "Successfully Updated",
                'form_data': getFormsInformation()
            },
            status=status.HTTP_200_OK)
예제 #13
0
    def post(self, request, format=None):
        """
			Here,adding and remove members from group
		"""
        data = request.data
        if 'add_data' in data:
            res_data = self.addData(data['add_data'])
            actionLogUpdate(self, request, "UserGroup")
            actionLogUpdate(self, request, "UserPeople")
            actionLogUpdate(self, request, "Groupmember")
            return Response(
                {
                    "response": "successfully added",
                    'form_data': getFormsInformation(),
                    "data": res_data
                },
                status=status.HTTP_200_OK)
        if 'remove_data' in data:
            rt_data = self.removeData(data['remove_data'])
            actionLogUpdate(self, request, "UserPeople")
            actionLogUpdate(self, request, "Groupmember")
            return Response(rt_data, status=status.HTTP_200_OK)
예제 #14
0
 def post(self, request, format=None):
     otp = Otpverification.objects.filter(
         mobile_number=request.data['mobile_number']).first()
     if otp is not None:
         otp.otp_number = request.data['otp_number']
         otp.expired_date = request.data['expired_date']
         otp.create_date = datetime.date.today()
         otp.is_verified = request.data['is_verified']
         otp.save()
     else:
         otp = Otpverification.objects.create(
             is_verified=request.data['is_verified'],
             expired_date=request.data['expired_date'],
             otp_number=request.data['otp_number'],
             mobile_number=request.data['mobile_number'])
         actionLogUpdate(self, request, "Otpverification")
     data = {
         "id": otp.id,
         "mobile_number": otp.mobile_number,
         "create_date": otp.create_date,
         "otp_number": otp.otp_number,
         "expired_date": otp.expired_date
     }
     return Response(data, status=status.HTTP_200_OK)
예제 #15
0
 def post(self, request, format=None):
     obj = {}
     obj['forms_data'] = FormsInformationSerializer(
         FormsInformation.objects.filter(), many=True).data
     obj['people_data'] = UserPeopleListSerializer(
         UserPeople.objects.filter(user=self.request.user.id),
         many=True).data
     obj['groups_data'] = GroupListSerializer(
         UserGroup.objects.filter(create_by=self.request.user.id),
         many=True).data
     obj['form_data'] = getFormsInformation()
     actionLogUpdate(self, request, "FormsInformation")
     actionLogUpdate(self, request, "UserPeople")
     actionLogUpdate(self, request, "UserGroup")
     return Response(obj, status=status.HTTP_200_OK)
예제 #16
0
 def create(self, validated_data):
     self.validate_peopleinstance(validated_data)
     product = Productsellingdetails.objects.create(**validated_data)
     actionLogUpdate(self, self.context['request'], "Productsellingdetails",
                     product.id)
     return product
예제 #17
0
 def get_queryset(self):
     queryset = UserGroup.objects.filter(id=self.kwargs.get('pk'))
     self.validate_requestdata(queryset)
     actionLogUpdate(self, self.request, "UserGroup")
     return queryset
예제 #18
0
 def get_queryset(self):
     self.validate_peopleinstance()
     actionLogUpdate(self, self.request, "People", self.kwargs.get('pk'))
     return People.objects.filter(id=self.kwargs.get('pk'))
예제 #19
0
 def get_queryset(self):
     self.validate_peopleinstance()
     actionLogUpdate(self, self.request, "Productsellingdetails")
     return Productsellingdetails.objects.filter(user=self.request.user.id,
                                                 id=self.kwargs.get('pk'))
예제 #20
0
 def get_queryset(self):
     actionLogUpdate(self, self.request, "People")
     return UserPeople.objects.filter(user=self.request.user.id).order_by(
         '-id'
     )  #.exclude(people__aadhar_number=self.request.user.aadhar_number,people__mobile_number=self.request.user.mobile_number)
예제 #21
0
 def get_queryset(self):
     self.checkGroup(self.kwargs.get('group'))
     actionLogUpdate(self, self.request, "UserGroup")
     return Groupmember.objects.filter(
         user_group=self.kwargs.get('group'),
         create_by=self.request.user.id).order_by('-id')
예제 #22
0
 def get_queryset(self):
     actionLogUpdate(self, self.request, "UserGroup")
     return UserGroup.objects.filter(
         create_by=self.request.user.id).order_by('-id')
예제 #23
0
    def post(self, request, format=None):
        """
		"""
        user_id = self.request.user.id
        user = self.request.user
        now = datetime.datetime.now()
        date = datetime.date.today()
        user_people_list = []
        people_other_info_list = []
        people_list = []
        call_list = []
        for data in request.data['people_data']:
            """----checking people information----"""
            people = People.objects.filter(
                mobile_number=data['mobile_number']).first()
            if people is None:
                """----adding people information----"""
                people = People.objects.create(
                    date_joined=data['date_joined'],
                    mobile_number=data['mobile_number'],
                    district=data['district'],
                    aadhar_number=data['aadhar_number'],
                    latitude=data['latitude'],
                    longitude=data['longitude'],
                    house_number=data['house_number'],
                    village=data['village'],
                    state_name=data['state_name'],
                    sub_district_or_mandal=data['sub_district_or_mandal'],
                    country_name=data['country_name'],
                    first_name=data['first_name'],
                    last_name=data['last_name'],
                    city_name=data['city_name'],
                    is_synced=True,
                    create_by=user,
                    modified_by=user,
                    pincode=data['pincode'],
                    offline_id=data['offline_id'])
                user_people_list.append(
                    UserPeople(offline_id=data['offline_id'],
                               nick_name=data['first_name'],
                               user=user,
                               people=people))
            else:
                #if len(people.aadhar_number.lstrip().rstrip()) != 0:
                if len(data['aadhar_number'].lstrip().rstrip()) > 0:
                    People.objects.filter(id=people.id).update(
                        district=data['district'],
                        aadhar_number=data['aadhar_number'],
                        latitude=data['latitude'],
                        longitude=data['longitude'],
                        house_number=data['house_number'],
                        village=data['village'],
                        state_name=data['state_name'],
                        sub_district_or_mandal=data['sub_district_or_mandal'],
                        country_name=data['country_name'],
                        first_name=data['first_name'],
                        last_name=data['last_name'],
                        city_name=data['city_name'],
                        is_synced=True,
                        modified_by=user_id,
                        pincode=data['pincode'],
                        offline_id=data['offline_id'])
                if UserPeople.objects.filter(user=self.request.user.id,
                                             people=people.id).count() == 0:
                    """----adding people information----"""
                    user_people_list.append(
                        UserPeople(offline_id=data['offline_id'],
                                   nick_name=data['first_name'],
                                   user=user,
                                   people=people))
                else:
                    UserPeople.objects.filter(
                        user=self.request.user.id,
                        people=people.id).update(nick_name=data['first_name'])
                Groupmember.objects.filter(
                    member=people.id, create_by=self.request.user.id).update(
                        name=data['first_name'])
            people_list.append(people.id)
            if len(data['aadhar_number']) > 0 and data['is_synced'] == False:
                call_list.append(str(people.mobile_number))

        if len(user_people_list) > 0:
            UserPeople.objects.bulk_create(user_people_list)

        if len(call_list) > 0:
            sendAutomaticCall(','.join(call_list), 1)
        actionLogUpdate(self, request, "People")

        people_data = UserPeopleSerializer(UserPeople.objects.filter(
            user=self.request.user.id, people__in=people_list),
                                           many=True).data
        return Response(
            {
                "response": "successfully added",
                'form_data': getFormsInformation(),
                "data": people_data
            },
            status=status.HTTP_200_OK)
예제 #24
0
 def create(self, validated_data):
     self.validate_requestdata(validated_data)
     group = UserGroup.objects.create(**validated_data)
     user = group.create_by
     actionLogUpdate(self, self.context['request'], "UserGroup", group.id)
     return group
예제 #25
0
 def get_queryset(self):
     self.validate_userinstance()
     actionLogUpdate(self, self.request, "User")
     return User.objects.filter(id=self.kwargs.get('pk'))