Beispiel #1
0
class ReviewSeializer(serializers.ModelSerializer):
    user = UserDetailSerializer(many=False)
    rated_user = UserDetailSerializer(many=False)

    class Meta:
        model = Review
        fields = '__all__'
Beispiel #2
0
    def get(self, request):
        print(self.request.user)
        ser = UserDetailSerializer(request.user)
        exhibitor = Exhibitor.objects.filter(user=self.request.user)
        serializer = ExhibitorSerializer(exhibitor, many=True)
        total = serializer.data
        for elem in total:
            ua = []
            es = Bid.objects.filter(mine_exhib_id=elem['id'], work_status=True)
            if len(es) > 0:
                esr = BidSerializer(es, many=True)
                for delta in esr.data:
                    ua.append(delta["fabs_user"])
            else:
                bs = Bid.objects.filter(mine_exhib_id=elem['id'])
                bsr = BidSerializer(bs, many=True)
                for dub in bsr.data:
                    ua.append(dub["fabs_user"])

            elem["FAB_USER"] = ua

        portfolio = Portfolio.objects.filter(user=self.request.user)
        serial = FabricatorSerializer(portfolio, many=True)
        exi_bid = Bid.objects.filter(mine_exhib__user__id=request.user.id)
        exi_bid_serial = BidSerializer(exi_bid, many=True)
        fab_bid = Bid.objects.filter(fabs_user_id=self.request.user.id,
                                     work_status=False)
        fab_bid_serial = BidDetailSerializer(fab_bid, many=True)
        qoutes_data = []
        if fab_bid_serial.data is not None:
            for data in fab_bid_serial.data:
                quotes_dict = {}
                user_data = User.objects.get(id=data['fabs_user'])
                user_data_serial = UserDetailSerializer(user_data,
                                                        many=False).data
                data['user_company_name'] = user_data_serial['company_name']
                data['user_email'] = user_data_serial['email']
                data['phone'] = user_data_serial['phone']
                data['bid_id'] = data['id']
                quote = Exhibitor.objects.get(id=data['mine_exhib'])
                quote_serial = ExhibitorSerializer(quote, many=False).data
                quotes_dict.update(data)
                quotes_dict.update(quote_serial)
                qoutes_data.append(quotes_dict)

        return Response([
            ser.data, {
                "exhbhition_request": total
            }, {
                "Portfolio": serial.data
            }, {
                "Exhibitor_bid_request": exi_bid_serial.data
            }, {
                "Fabricator_bid_request": qoutes_data
            }
        ])
Beispiel #3
0
 def get(self, request, format=None, pk=None, user_pk=None):
     exi = ExhibitFab.objects.get(exhibition_id=pk, user_id=user_pk)
     serializer = ExhibitFabricators(exi, many=False)
     print(serializer.data)
     user = User.objects.get(id=serializer.data['user'], is_active=True)
     serial = UserDetailSerializer(user, many=False)
     return Response(serial.data)
Beispiel #4
0
 def post(self, request, format=None, exi_pk=None):
     user = self.request.user
     own_ser = UserDetailSerializer(user, many=False)
     my_name = own_ser.data['company_name']
     existed = []
     confirm = []
     for data in request.data['fab_ids']:
         fab_user = User.objects.get(pk=data, is_active=True)
         exhibhition = Exhibitor.objects.get(pk=exi_pk)
         exi_ser = ExhibitorSerializer(exhibhition, many=False)
         exhibition_name = exi_ser.data['exhibition']['exhibition_name']
         ser = UserDetailSerializer(fab_user, many=False)
         devices = FCMDevice.objects.get(user=ser.data['id'])
         devices.send_message(title="Notification",
                              body="Notification from " + my_name +
                              " You have beed Invited for " +
                              exhibition_name)
         bid = Bid.objects.filter(fabs_user_id=fab_user.id,
                                  mine_exhib_id=exhibhition.id)
         if not bid:
             confirm.append(fab_user.company_name)
             bid = Bid(fabs_user_id=fab_user.id,
                       mine_exhib_id=exhibhition.id)
             bid.save()
             serializer = BidSerializer(bid, many=False)
             devices = FCMDevice.objects.get(user=ser.data['id'])
             devices.send_message(title="Notification",
                                  body="Notification from " + my_name +
                                  " You have beed Invited for " +
                                  exhibition_name)
         else:
             existed.append(fab_user.company_name)
     if confirm:
         if existed:
             return Response({
                 "success":
                 True,
                 "Message":
                 "already sended to {}".format(",".join(existed))
             })
     if confirm:
         return Response({"success": True})
     if existed:
         return Response({
             "Message":
             "Bid already sended to {}".format(",".join(existed))
         })
Beispiel #5
0
    def get(self, request, format=None):

        user = User.objects.filter(role='exhibitor',
                                   is_active=True)  #filter(role="exhibitor")
        if len(user) > 0:
            serialzier = UserDetailSerializer(user, many=True)
            return Response(serialzier.data)
        else:
            return Response("Exhibitor List Empty")
Beispiel #6
0
    def get(self, request, format=None):

        user = User.objects.filter(role='fabricator')

        if len(user) > 0:
            serialzier = UserDetailSerializer(user, many=True)
            return Response(serialzier.data)
        else:
            return Response("Fabricator List Empty")
Beispiel #7
0
 def get(self, request, pk=None):
     user = User.objects.get(id=pk)
     serialzizer = UserDetailSerializer(user, many=False)
     senderUser = serialzizer.data
     sender = self.request.user
     my = Message.objects.filter(sender_id=user.id,
                                 receiver_id=sender.fcm_token,
                                 is_read=False)
     serial = MessageSerializer(my, many=True)
     senderUser["messages"] = serial.data
     return Response(senderUser)
Beispiel #8
0
    def get(self, request, format=None, pk=None):
        exi = ExhibitFab.objects.filter(exhibition_id=pk)
        serializer = ExhibitFabricators(exi, many=True)
        user_list = []
        for data in serializer.data:
            user = User.objects.get(id=data['user'], is_active=True)
            serial = UserDetailSerializer(user, many=False)
            tp = serial.data
            tp['selected'] = False
            user_list.append(tp)

        return Response(user_list)
Beispiel #9
0
def UserRating():
    rv = User.objects.filter(cron_review=False,is_active=True,is_superuser=False,is_staff=False).first()
    if rv:
        rv.cron_review = True
        rv.save()
        serila = UserDetailSerializer(rv,many=False)
        ID = serila.data['id']
        us = Review.objects.filter(rated_user_id=ID).aggregate(total=Avg(F('rating')))
        rate = User.objects.get(id=ID)
        rate.avg_rating = us['total']
        rate.save()    
    else:
        pass
Beispiel #10
0
    def post(self, request, pk=None, pk_exi=None):
        sender = self.request.user
        exi_req = Exhibitor.objects.get(id=pk_exi)
        message = request.data.get("message")
        reciever = User.objects.get(id=pk)
        ser = UserDetailSerializer(reciever, many=False)

        send_msg = Message(sender_id=sender.id,
                           receiver_id=reciever.id,
                           exhibition_request_id=exi_req.id,
                           message=message)

        send_msg.save()
        msg_id = send_msg.id
        serialzier = MessageSerializer(send_msg, many=False)
        if request.data['shared_image']:
            for elem in request.data['shared_image']:
                image_data = "data:image/gif;base64," + elem
                format, imgstr = image_data.split(';base64,')
                filename = str(uuid.uuid4())
                data = ContentFile(base64.b64decode(imgstr),
                                   name=filename + '.jpg')
                pictures = UpdateMessage()
                pictures.message_for_id = msg_id
                pictures.update_image = data
                pictures.save()
                im_data = UpdateMessage.objects.get(id=pictures.id)
                ser_image = UpdateImages(pictures, many=False).data
        send_msg_serial = MessageSerializer(send_msg, many=False).data

        sh_image = UpdateMessage.objects.filter(
            message_for=send_msg_serial['id'])
        sh_image_serial = UpdateImages(sh_image, many=True)
        send_msg_serial['shared_images'] = sh_image_serial.data

        devices = FCMDevice.objects.get(user=ser.data['id'])
        devices.send_message(title="Message",
                             body=message,
                             data={
                                 "sender_id": str(sender.id),
                                 "reciever_id": str(reciever.id)
                             })
        return Response(send_msg_serial, status=status.HTTP_201_CREATED)
Beispiel #11
0
class BidSerializer(serializers.ModelSerializer):
    fabs_user = UserDetailSerializer(many=False)

    class Meta:
        model = Bid
        fields = '__all__'
Beispiel #12
0
 def post(self, request):
     fcm = request.data.get("fcm_token")
     if fcm is None:
         return Response({
             "Message": "Please provide a fcm token",
             "error": True
         })
     email = None
     phone = None
     if 'email' in request.data:
         if request.data['email'] != "":
             email = request.data['email']
         else:
             pass
     if 'phone' in request.data:
         if request.data['phone'] != "":
             phone = request.data['phone']
         else:
             pass
     if email is None:
         if phone is None:
             return Response({
                 "Message": "Please enter email or phone no",
                 "error": True
             })
     # if email is not None:
     user = CustomAuthentication().authenticate(
         email=email, phone=phone, password=request.data.get("password"))
     # else:
     #     user = CustomAuthentication().authenticate(email=email,phone=phone,password=request.data.get("password"))
     if user is not None:
         ser = UserDetailSerializer(user)
         fb = User.objects.get(id=user.id)
         fb.fcm_token = fcm
         fb.save()
         try:
             devices = FCMDevice.objects.get(user=ser.data['id'])
         except FCMDevice.DoesNotExist:
             devices = None
         if devices is None:
             device = FCMDevice()
             device.user = user
             device.registration_id = fcm
             device.type = "Android"
             device.name = "Can be anything"
             device.save()
         else:
             devices.registration_id = fcm
             devices.save()
         role = ser.data['role']
         try:
             token = Token.objects.get(user_id=user.id)
         except:
             token = Token.objects.create(user=user)
         return Response({"token": token.key, "role": role, "error": False})
     else:
         data = {
             "error": True,
             "msg": "User does not exist or password is wrong"
         }
         return Response(data, status=status.HTTP_401_UNAUTHORIZED)