def post(self, request, *args, **kwargs):
        msg = ''
        form = CheckAddNewSubPlanForm(data=request.POST or None)
        pname = request.POST['pname']
        pname = pname.strip()
        pdesc = request.POST['pdesc']
        pdesc = pdesc.strip()
        price = request.POST['price']
        valid_for = request.POST['valid_for']
        pname_ar = request.POST['pname_ar']
        pname_ar = pname_ar.strip()
        pdesc_ar = request.POST['pdesc_ar']
        pdesc_ar = pdesc_ar.strip()

        if not pname_ar or pname_ar == "":
            tdata = []
            tdata.append(pname)
            tres = translate_text_ar(tdata)
            pname_ar = tres[0].text
        if not pdesc_ar or pdesc_ar == "":
            tdata = []
            tdata.append(pdesc)
            tres = translate_text_ar(tdata)
            pdesc_ar = tres[0].text

        # pwrapper=request.POST.getlist('p')
        # for p in pwrapper:
        #     pass

        if form.is_valid():
            sp = SubscriptionPlan(
                plan_name=pname,
                plan_name_ar=pname_ar,
                plan_desc=pdesc,
                plan_desc_ar=pdesc_ar,
                price=price,
                valid_for=valid_for,
            )
            sp.save()
            msg = 'Plan saved successfully'
            return render(
                request,
                'subscription_plan_management/add_new_subscription.html', {
                    'form': form,
                    'msg': msg
                })
        context = {}
        context['pname'] = pname
        context['pname_ar'] = pname_ar
        context['pdesc'] = pdesc
        context['pdesc_ar'] = pdesc_ar
        context['price'] = price
        context['valid_for'] = valid_for
        return render(
            request, 'subscription_plan_management/add_new_subscription.html',
            {
                'context': context,
                'form': form
            })
Пример #2
0
 def get_user(self,instance):
     tdata=[]
     tdata.append(instance.user.first_name)
     tres=translate_text_ar(tdata)
     if instance.user.last_name:
         tdata.append(instance.user.last_name)
         tres=translate_text_ar(tdata)
         return tres[0].text+' '+tres[1].text
     return tres[0].text
    def post(self, request, *args, **kwargs):
        id = self.kwargs['pk']
        msg = ''
        form = CheckAddNewSubPlanForm(data=request.POST or None)
        pname = request.POST['pname']
        pname = pname.strip()
        pdesc = request.POST['pdesc']
        pdesc = pdesc.strip()
        pname_ar = request.POST['pname_ar']
        pname_ar = pname_ar.strip()
        pdesc_ar = request.POST['pdesc_ar']
        pdesc_ar = pdesc_ar.strip()
        price = request.POST['price']
        valid_for = request.POST['valid_for']

        if not pname_ar or pname_ar == "":
            tdata = []
            tdata.append(pname)
            tres = translate_text_ar(tdata)
            pname_ar = tres[0].text
        if not pdesc_ar or pdesc_ar == "":
            tdata = []
            tdata.append(pdesc)
            tres = translate_text_ar(tdata)
            pdesc_ar = tres[0].text

        if form.is_valid():
            sp = SubscriptionPlan.objects.filter(id=id).first()
            sp.plan_name = pname
            sp.plan_name_ar = pname_ar
            sp.plan_desc = pdesc
            sp.plan_desc_ar = pdesc_ar
            sp.price = price
            sp.valid_for = valid_for
            sp.save()
            msg = 'Plan saved successfully'
            return render(
                request,
                'subscription_plan_management/subscription_plan_edit.html', {
                    'context': sp,
                    'form': form,
                    'msg': msg
                })
        context = {}
        context['plan_name'] = pname
        context['plan_desc'] = pdesc
        context['plan_name_ar'] = pname_ar
        context['plan_desc_ar'] = pdesc_ar
        context['price'] = price
        context['valid_for'] = valid_for
        return render(
            request,
            'subscription_plan_management/subscription_plan_edit.html', {
                'context': context,
                'form': form
            })
Пример #4
0
    def create(self, validated_data):
        name = validated_data['name']
        email = validated_data['email']
        complaint = validated_data['complaint']

        user = self.context['user'].ruser
        tdata = []
        tdata.append(name)
        tdata.append(email)
        tdata.append(complaint)
        tres = translate_text_ar(tdata)

        cc = CustomerComplaint(
            name=name,
            email=email,
            complaint=complaint,
            user=user,
            ar_name=name,
            ar_email=email,
            # ar_name=tres[0].text,
            # ar_email=tres[1].text,
            ar_complaint=tres[2].text,
        )
        cc.save()

        if user.language_pref == '2':
            validated_data['complaint'] = cc.ar_complaint
        else:
            validated_data['complaint'] = cc.complaint
        return validated_data
Пример #5
0
    def clean(self):
        pname = self.data['pname']
        pdesc = self.data['pdesc']
        price = self.data['price']
        valid_for = self.data['valid_for']
        pname_ar = self.data['pname_ar']
        pdesc_ar = self.data['pdesc_ar']

        if not pname_ar or pname_ar == "":
            tdata = []
            tdata.append(pname)
            tres = translate_text_ar(tdata)
            pname_ar = tres[0].text
        if not pdesc_ar or pdesc_ar == "":
            tdata = []
            tdata.append(pdesc)
            tres = translate_text_ar(tdata)
            pdesc_ar = tres[0].text

        if not pname or pname == "":
            raise forms.ValidationError('Please provide plan name')
        if not pdesc or pdesc == "":
            raise forms.ValidationError('Please provide plan description')
        if not price or price == "":
            raise forms.ValidationError('Please provide price')
        if not pname_ar or pname_ar == "":
            raise forms.ValidationError('Please provide plan name in Arabic')
        if not pdesc_ar or pdesc_ar == "":
            raise forms.ValidationError(
                'Please provide plan description in Arabic')

        price = price.split('.')
        if len(price) > 2:
            raise forms.ValidationError('Please provide a valid price')
        pr = ''
        for i in price:
            pr = pr + i
        if not pr.isdigit():
            raise forms.ValidationError('Please provide a valid price')
        if len(pr) > 10:
            raise forms.ValidationError(
                'Price is too high. Total 10 digits are possible including decimal.'
            )
        if len(price) == 2:
            if len(price[1]) > 2:
                raise forms.ValidationError('Please provide a valid price')
    def post(self, request, *args, **kwargs):
        id = self.kwargs['id']
        cat = ServiceType.objects.filter(id=id).first()
        form = EditCategoryForm(data=request.POST or None, )
        x = 0
        if form.is_valid():
            type = request.POST['catname']
            type = type.strip()
            type_ar = request.POST['catname_ar']
            print(type_ar)
            type_ar = type_ar.strip()
            if not type_ar or type_ar == "":
                tdata = []
                tdata.append(type)
                tres = translate_text_ar(tdata)
                type_ar = tres[0].text

            icon = request.FILES.get('caticon')
            # print(icon.name)
            # print(icon.size)
            # print(icon.content_type)
            # print(icon.name.split('.')[-1])
            if icon:
                if icon.size > 1024000:
                    x = 1
                if icon.name.split('.')[-1].lower() not in ('png', 'jpg',
                                                            'jpeg'):
                    x = 1
            if x == 1:
                return render(request,
                              'category_management/edit_category.html', {
                                  'form': form,
                                  'x': x
                              })
            if icon:
                cat.type = type
                cat.type_ar = type_ar
                cat.icon = icon
                cat.save()
            else:
                cat.type = type
                cat.type_ar = type_ar
                cat.save()
            x = 2
            return render(request, 'category_management/edit_category.html', {
                'form': form,
                'x': x,
                'cat': cat
            })
        return render(request, 'category_management/edit_category.html', {
            'form': form,
            'cat': cat
        })
    def post(self, request, *args, **kwargs):
        form = CreateCategoryForm(data=request.POST or None, )
        x = 0
        if form.is_valid():
            type = request.POST['catname']
            type = type.strip()
            type_ar = request.POST['catname_ar']
            type_ar = type_ar.strip()
            if not type_ar or type_ar == "":
                tdata = []
                tdata.append(type)
                tres = translate_text_ar(tdata)
                type_ar = tres[0].text

            icon = request.FILES.get('caticon')
            # print(icon.name)
            # print(icon.size)
            # print(icon.content_type)
            # print(icon.name.split('.')[-1])
            if icon:
                if icon.size > 1024000:
                    x = 1
                if icon.name.split('.')[-1].lower() not in ('png', 'jpg',
                                                            'jpeg'):
                    x = 1
            if x == 1:
                return render(request, 'category_management/add_category.html',
                              {
                                  'form': form,
                                  'x': x
                              })
            if icon:
                st = ServiceType(
                    type=type,
                    type_ar=type_ar,
                    icon=icon,
                )
                st.save()
            else:
                st = ServiceType(
                    type=type,
                    type_ar=type_ar,
                )
                st.save()
            x = 2
            return render(request, 'category_management/add_category.html', {
                'form': form,
                'x': x
            })
        return render(request, 'category_management/add_category.html',
                      {'form': form})
 def clean(self):
     type = self.data['catname']
     type_ar = self.data['catname_ar']
     is_edit = self.data['myhiddenfield']
     if not type or type == "":
         raise forms.ValidationError('Please provide model name')
     if not type_ar or type_ar == "":
         tdata = []
         tdata.append(type)
         tres = translate_text_ar(tdata)
         type_ar = tres[0].text
     st = VehicleModle.objects.filter(id=is_edit).first()
     if not st:
         raise forms.ValidationError('This model id does not exists')
Пример #9
0
    def create(self, validated_data):
        garage_id=self.context['id']
        rating=validated_data['rating']
        review=validated_data['review']
        ruser=self.context['request'].user.ruser

        garage=Garage.objects.filter(id=garage_id).first()

        if '.' in rating:
            rating=rating.split('.')[0]

        tdata=[]
        tdata.append(review)
        tres=translate_text_ar(tdata)

        review=UserReview(
            garage=garage,
            user=ruser,
            rating=int(rating),
            review=review,
            ar_review=review,
            # ar_review=tres[0].text,
        )

        review.save()
        a=UserReview.objects.filter(garage=garage).aggregate(Sum('rating'))
        b=UserReview.objects.filter(garage=garage).count()
        garage.garage_rating=a['rating__sum']/b
        garage.save()

        cm=CategoryManager.objects.filter(garage=garage).values('category')
        st=ServiceType.objects.filter(id__in=cm)
        scm=SubCategoryManager.objects.filter(garage=garage).values('subcategory')
        sst=ServiceSubType.objects.filter(id__in=scm)
        for s in st:
            s.category_rating=(s.category_rating+1)/2
            s.save()
        # for ss in sst:
        #     ss.subcategory_rating=(ss.subcategory_rating+1)/2
        #     ss.save()

        if ruser.language_pref=='2':
            validated_data['review']=review.ar_review
        else:
            validated_data['review']=review.review
        validated_data['rating']=review.rating
        
        return validated_data
 def clean(self):
     type = self.data['catname']
     type_ar = self.data['catname_ar']
     if not type or type == "":
         raise forms.ValidationError('Please provide model name')
     if not type_ar or type_ar == "":
         tdata = []
         tdata.append(type)
         tres = translate_text_ar(tdata)
         type_ar = tres[0].text
     st_obj = VehicleModle.objects.filter(model_name=type).first()
     if st_obj:
         raise forms.ValidationError('This model already exists')
     st_obj_ar = VehicleModle.objects.filter(model_name_ar=type_ar).first()
     if st_obj_ar:
         raise forms.ValidationError('This model already exists in arabic')
Пример #11
0
 def post(self, request, *args, **kwargs):
     arr = request.POST.getlist('arr[]')
     tres = translate_text_ar(arr)
     data = {}
     count = 0
     for t in tres:
         data[count] = t.text
         count += 1
     # data = json.dumps(tres)
     return Response(
         {
             'message': 'Data translated successfully',
             'success': 'True',
             'data': data,
         },
         status=200,
     )
    def clean(self):
        type = self.data['catname']
        type_ar = self.data['catname_ar']
        if not type or type == "":
            raise forms.ValidationError('Please provide category name')
        if not type_ar or type_ar == "":
            tdata = []
            tdata.append(type)
            tres = translate_text_ar(tdata)
            type_ar = tres[0].text

        st_obj = ServiceType.objects.filter(type=type).first()
        if st_obj:
            raise forms.ValidationError('This category already exists')
        st_obj_ar = ServiceType.objects.filter(type=type_ar).first()
        if st_obj_ar:
            raise forms.ValidationError('This arabic category already exists')
Пример #13
0
 def create(self, validated_data):
     country = validated_data['country']
     city = validated_data['city']
     user = self.context['request'].user
     ruser = RegisteredUser.objects.filter(user=user).first()
     ruser.country = country
     ruser.city = city
     ruser.save()
     #---------------Arabic Save()----------------------------
     tdata = []
     tdata.append(country)
     tdata.append(city)
     tres = translate_text_ar(tdata)
     ruser.ar_country = tdata[0].text
     ruser.ar_city = tdata[1].text
     ruser.save()
     #--------------------------------------------------------
     return validated_data
    def clean(self):
        type = self.data['sty']
        subtype = self.data['catname']
        # type_ar=self.data['sty_ar']
        subtype_ar = self.data['catname_ar']

        if not subtype or subtype == "":
            raise forms.ValidationError('Please provide subcategory name')
        if not subtype_ar or subtype_ar == "":
            tdata = []
            tdata.append(subtype)
            tres = translate_text_ar(tdata)
            subtype_ar = tres[0].text
        if not type or type == "":
            raise forms.ValidationError('Please select category')
        if type:
            st_obj = ServiceType.objects.filter(type=type).first()
            sst_obj = ServiceSubType.objects.filter(type=st_obj,
                                                    subtype=subtype).first()
            if sst_obj:
                raise forms.ValidationError(
                    'This subcategory under this category already exists')
    def post(self, request, *args, **kwargs):
        id = self.kwargs['pk']
        comp = CustomerComplaint.objects.filter(id=id).first()
        ruser = comp.user
        status = request.POST['sty']
        comp_email = request.POST['comp_email']
        user_email = request.POST['user_email']
        reply_message = request.POST['reply_message']
        reply_message_ar = request.POST['reply_message_ar']

        if not reply_message_ar or reply_message_ar == "":
            tdata = []
            tdata.append(reply_message)
            tres = translate_text_ar(tdata)
            reply_message_ar = tres[0].text

        comp.admin_message = reply_message
        comp.admin_message_ar = reply_message_ar
        comp.status = status
        comp.save()
        '''
        Send confirmation email
        '''
        uemail = comp_email
        current_site = get_current_site(request)
        if ruser.language_pref == '1' or reply_message_ar == "":
            subject = "Garage - Complaint status update"
            message = render_to_string(
                'complaint_email.html',
                {
                    # 'user': ruser.user,
                    'domain':
                    current_site.domain,
                    'not_desc':
                    "Your Garage complaint status has been updated by admin to "
                    + status,
                    'reply_message':
                    reply_message,
                })
        if ruser.language_pref == '2':
            tdata = []
            tdata.append(status)
            tres = translate_text_ar(tdata)
            status_ar = tres[0].text
            subject = "Garage"
            message = render_to_string(
                'complaint_email.html',
                {
                    # 'user': ruser.user,
                    'domain': current_site.domain,
                    'not_desc':
                    "تم تحديث حالة شكوى Garage بواسطة المشرف إلى " + status_ar,
                    'reply_message': reply_message_ar,
                })

        plain_message = strip_tags(message)
        email = EmailMultiAlternatives(subject,
                                       plain_message,
                                       'Garage <webmaster@localhost>',
                                       to=[uemail])
        email.attach_alternative(message, "text/html")
        email.send()

        # save notification
        print(user_email)
        print(comp_email)
        ruser = RegisteredUser.objects.filter(email=user_email).first()
        if ruser:
            n = Notification(
                title="Garage complaint status change",
                description=
                "Your garage complaint status has been changed by admin. An email has been sent to the email id from which the complaint was generated.",
                title_ar="تغيير حالة شكوى Garage",
                description_ar=
                "تم تغيير حالة شكوى Garage بواسطة المشرف. تم إرسال بريد إلكتروني إلى معرف البريد الإلكتروني الذي تم إنشاء الشكوى منه."
            )
            n.save()
            un = UserNotification(
                notification=n,
                user=ruser,
            )
            un.save()

        messages = []
        messages.append(
            'Status updated succesfully. An email has been sent to the complaint email id.'
        )
        return render(request, 'complaint_management/edit_complaint.html', {
            'comp': comp,
            'messages': messages
        })
Пример #16
0
    def post(self, request, *args, **kwargs):
        logger.debug('Find location post called')
        logger.debug(request.data)
        serializer = FindLocationSerializer(data=request.data)
        if serializer.is_valid(raise_exception=True):
            data = serializer.data
            geolocator = Nominatim(user_agent="_user_panel.uaccounts")
            # location=geolocator.reverse("52.509669, 13.376294")
            location = geolocator.reverse(data['lat'] + ', ' + data['lon'],
                                          language='en')
            if 'address' in location.raw:
                address = location.raw['address']

                #Translate address to English
                # translator= Translator(to_lang="English")
                # translation = translator.translate(address['city'])
                # print(translation)

                country = ''
                state = ''
                city = ''
                street = ''
                postcode = ''

                for k in address:
                    if k == 'country':
                        country = address[k]
                    elif k == 'state' or k == 'state_district':
                        state = address[k]
                    elif k == 'city' or k == 'city_district':
                        city = address[k]
                    elif k == 'postcode':
                        address[k] = re.findall('\d+', address[k])[0]
                        postcode = address[k]
                    else:
                        street = street + ' ' + address[k] + ','

                if not city or city == '':
                    if data['city']:
                        city = data['city']

                #-------------Arabic Save()-----------------------------------------
                tdata = []
                tdata.append(postcode)
                tdata.append(street)
                tdata.append(state)
                tdata.append(city)
                tdata.append(country)

                tres = translate_text_ar(tdata)

                RegisteredUser.objects.filter(user=request.user).update(
                    zipcode=postcode,
                    street=street,
                    city=city,
                    area=state,
                    country=country,
                    lat=data['lat'],
                    lon=data['lon'],
                    ar_zipcode=tres[0].text,
                    ar_street=tres[1].text,
                    ar_area=tres[2].text,
                    ar_city=tres[3].text,
                    ar_country=tres[4].text,
                )

                return Response(
                    {
                        'message': 'location found successfully',
                        'success': 'True',
                        # 'data':data,
                        'address': address,
                    },
                    status=HTTP_200_OK,
                )
            else:
                return Response(
                    {
                        'message': 'location not found',
                        'success': 'False',
                    },
                    status=HTTP_400_BAD_REQUEST,
                )
    def post(self, request, *args, **kwargs):
        id = self.kwargs['id']
        scat = ServiceSubType.objects.filter(id=id).first()

        form = EditSubCategoryForm(data=request.POST or None)
        st = ServiceType.objects.all()
        x = 0
        if form.is_valid():
            subtype = request.POST['catname']
            subtype = subtype.strip()
            subtype_ar = request.POST['catname_ar']
            subtype_ar = subtype_ar.strip()
            if not subtype_ar or subtype_ar == "":
                tdata = []
                tdata.append(subtype)
                tres = translate_text_ar(tdata)
                subtype_ar = tres[0].text

            icon = request.FILES.get('caticon')
            # print(icon.name)
            # print(icon.size)
            # print(icon.content_type)
            # print(icon.name.split('.')[-1])
            if icon:
                if icon.size > 1024000:
                    x = 1
                if icon.name.split('.')[-1].lower() not in ('png', 'jpg',
                                                            'jpeg'):
                    x = 1
            if x == 1:
                return render(request,
                              'category_management/edit_subcategory.html', {
                                  'st': st,
                                  'form': form,
                                  'x': x
                              })

            type = request.POST['sty']
            if type:
                type = ServiceType.objects.filter(type__iexact=type).first()
            if icon:
                scat.subtype = subtype
                scat.subtype_ar = subtype_ar
                scat.icon = icon
                scat.type = type
                scat.save()
            else:
                scat.subtype = subtype
                scat.subtype_ar = subtype_ar
                scat.type = type
                scat.save()
            x = 2
            return render(request, 'category_management/edit_subcategory.html',
                          {
                              'st': st,
                              'form': form,
                              'x': x,
                              'scat': scat
                          })

        return render(request, 'category_management/edit_subcategory.html', {
            'st': st,
            'scat': scat
        })
Пример #18
0
    def create(self, validated_data):
        user = self.context['request'].user
        ruser = RegisteredUser.objects.filter(user=user).first()

        pimage = self.context['request'].FILES.get('profile_image')
        first_name = validated_data['name'].split(' ')[0]
        last_name = ' '.join(validated_data['name'].split(' ')[1:])
        country_code = validated_data['country_code']
        mobile = validated_data['mobile']
        email = validated_data['email']

        user.username = email.split('@')[0] + mobile
        user.first_name = first_name
        user.last_name = last_name
        user.email = email
        user.save()

        ruser.first_name = first_name
        ruser.last_name = last_name
        if pimage:
            ruser.profile_image = pimage
        ruser.country_code = country_code
        ruser.mobile = mobile
        ruser.email = email
        ruser.save()

        #---------------------Arabic save()-------------------------------
        tdata = []
        tdata.append(first_name)
        tdata.append(last_name)

        tdata.append(country_code)
        tdata.append(mobile)

        tres = translate_text_ar(tdata)

        user.ar_first_name = first_name
        user.ar_last_name = last_name
        # user.ar_first_name=tres[0].text
        # user.ar_last_name=tres[1].text
        user.save()

        ruser.ar_country_code = country_code
        ruser.ar_mobile = mobile
        # ruser.ar_country_code=tdata[2]
        # ruser.ar_mobile=tdata[3]
        ruser.save()
        #-----------------------------------------------------------------

        validated_data['profile_image'] = ruser.profile_image
        if ruser.language_pref == '2':
            validated_data[
                'name'] = ruser.ar_first_name + ' ' + ruser.ar_last_name
            validated_data['country_code'] = ruser.country_code
            validated_data['mobile'] = ruser.mobile
        else:
            validated_data['name'] = ruser.first_name + ' ' + ruser.last_name
            validated_data['country_code'] = ruser.country_code
            validated_data['mobile'] = ruser.mobile
        validated_data['email'] = user.email
        if ruser.is_mobile_verified:
            validated_data['is_mobile_verified'] = "True"
        else:
            validated_data['is_mobile_verified'] = "False"
        if ruser.is_email_verified:
            validated_data['is_email_verified'] = "True"
        else:
            validated_data['is_email_verified'] = "False"
        return validated_data
Пример #19
0
    def create(self, validated_data):
        social_id = ''

        name = validated_data['name']
        email = validated_data['email']
        password = validated_data['password']
        user_type = validated_data['user_type']
        login_type = validated_data['login_type']
        mobile = validated_data['mobile']
        # garage_name = validated_data['garage_name']

        # is_active=True
        # if user_type=='2':
        #     is_active=False

        # is_approved=True
        # if user_type=='2':
        is_approved = False

        first_name = name.split(' ')[0]
        last_name = ' '.join(name.split(' ')[1:])

        user_obj = User(
            username=email.split('@')[0] + mobile,
            email=email,
            first_name=first_name,
            last_name=last_name,
            # is_active=is_active,
        )
        user_obj.set_password(password)
        user_obj.save()

        country_code = validated_data['country_code']
        mobile = validated_data['mobile']
        device_type = validated_data['device_type']
        device_token = validated_data['device_token']

        # if login_type in ('2','3'):
        #     if social_id:
        #         country_code='+971'
        #         mobile=social_id

        login_type = validated_data['login_type']
        if login_type in ('2', '3'):
            social_id = validated_data['social_id']

        if social_id:
            ruser_obj = RegisteredUser(
                first_name=first_name,
                last_name=last_name,
                country_code=country_code,
                mobile=mobile,
                email=email,
                login_type=login_type,
                social_id=social_id,
                device_type=device_type,
                device_token=device_token,
                user_type=user_type,
                user=user_obj,
                is_email_verified=True,
                is_mobile_verified=True,
                is_approved=is_approved,
            )
        else:
            ruser_obj = RegisteredUser(
                first_name=first_name,
                last_name=last_name,
                country_code=country_code,
                mobile=mobile,
                email=email,
                login_type=login_type,
                social_id=social_id,
                device_type=device_type,
                device_token=device_token,
                user_type=user_type,
                user=user_obj,
                is_approved=is_approved,
            )

        ruser_obj.save()

        #-----------Arabic Save()----------------------------
        tdata = []

        tdata.append(first_name)
        tdata.append(last_name)
        # tdata.append(about)
        tdata.append(mobile)
        tdata.append(country_code)
        # tdata.append(zipcode)
        # tdata.append(street)
        # tdata.append(area)
        # tdata.append(city)
        # tdata.append(country)

        tres = translate_text_ar(tdata)

        ruser_obj.ar_first_name = first_name
        ruser_obj.ar_last_name = last_name
        ruser_obj.ar_mobile = mobile
        ruser_obj.ar_country_code = country_code

        # ruser_obj.ar_first_name=tres[0].text
        # ruser_obj.ar_last_name=tres[1].text
        # ruser_obj.ar_about=tres[2].text
        # ruser_obj.ar_mobile=tres[2].text
        # ruser_obj.ar_country_code=tres[3].text
        # ruser_obj.ar_zipcode=tres[5].text
        # ruser_obj.ar_street=tres[6].text
        # ruser_obj.ar_area=tres[7].text
        # ruser_obj.ar_city=tres[8].text
        # ruser_obj.ar_country=tres[9].text
        ruser_obj.save()
        #------------------------------------------------------------

        # if user_type=='2' and login_type=='1':
        #     garage_obj=Garage(
        #         name=garage_name,
        #         user=ruser_obj,
        #     )
        #     garage_obj.save()
        validated_data['token'] = ''
        if login_type in ('2', '3') and user_type == '1':
            payload = jwt_payload_handler(user_obj)
            token = jwt_encode_handler(payload)
            token = 'JWT ' + token
            validated_data['token'] = token

        g_obj = Garage.objects.filter(user=ruser_obj).first()
        if g_obj:
            validated_data['is_garage_created'] = 'True'
        else:
            validated_data['is_garage_created'] = 'False'

        t_is_approved = 'True' if ruser_obj.is_approved else 'False'
        validated_data['is_approved'] = t_is_approved

        if ruser_obj.is_mobile_verified:
            validated_data['is_mobile_verified'] = 'True'
        else:
            validated_data['is_mobile_verified'] = 'False'
        if ruser_obj.is_email_verified:
            validated_data['is_email_verified'] = 'True'
        else:
            validated_data['is_email_verified'] = 'False'

        validated_data['u_id'] = ruser_obj.id
        validated_data['created'] = ruser_obj.created_on

        return validated_data
Пример #20
0
    def create(self, validated_data, *args, **kwargs):
        request = self.context['request']
        # garage=self.context['garage']
        ruser = self.context['ruser']
        garage = validated_data['garage']
        image1 = request.FILES.get('image1')
        image2 = request.FILES.get('image2')
        image3 = request.FILES.get('image3')
        image4 = request.FILES.get('image4')
        video1 = request.FILES.get('video1')
        video1_thumbnail = request.FILES.get('video1_thumbnail')
        video2 = request.FILES.get('video2')
        video2_thumbnail = request.FILES.get('video2_thumbnail')
        title = validated_data['title']
        description = validated_data['description']
        coupon = validated_data['coupon']
        advertisment_license_number = validated_data[
            'advertisment_license_number']
        start_date = validated_data['start_date']
        end_date = validated_data['end_date']

        garage_obj = Garage.objects.filter((Q(user=ruser) & Q(name=garage))
                                           | (Q(user=ruser)
                                              & Q(ar_name=garage))).first()
        usub = UserSubscription.objects.filter(ruser=ruser).first()
        #88888888888888888888888888888888888888888888888888888888888888888888888
        if usub:
            expires_on = usub.created_on + relativedelta(
                months=usub.plan.valid_for)
            days1 = expires_on.date() - usub.created_on.date()
            # days=usub.plan.valid_for*30
            delta = datetime.now().date() - usub.created_on.date()
            if delta.days > days1.days:
                raise APIException400({
                    'message':
                    'Sorry..!! Your subscription plan expired. To create new offers you must subscrib to a plan.',
                    'success': 'False',
                })

        # usub.plan.valid_for

        #     pil_image2 = VideoStream(video2).get_frame_at_sec(5).image()

        #----------------Arabic Conversion--------------------------------
        tdata = []
        tdata.append(title)
        tdata.append(description)
        tdata.append(advertisment_license_number)
        tres = translate_text_ar(tdata)

        offer = Offer(
            garage=garage_obj,
            image1=image1,
            image2=image2,
            image3=image3,
            image4=image4,
            video1=video1,
            video1_thumbnail=video1_thumbnail,
            video2=video2,
            video2_thumbnail=video2_thumbnail,
            title=title,
            description=description,
            coupon=coupon,
            advertisment_license_number=advertisment_license_number,
            start_date=start_date,
            end_date=end_date,
            ar_title=tres[0].text,
            ar_description=tres[1].text,
            ar_advertisment_license_number=tres[2].text,
        )
        offer.save()

        #TRIED VIDEO THUMBNAIL
        # ff1=''
        # ff2=''
        # if offer.video1:
        #     ff1 = FFmpeg(inputs={offer.video1.url: None}, outputs={"output1.png": ['-ss', '00:00:4', '-vframes', '1']})
        # #     pil_image1 = VideoStream(video1).get_frame_at_sec(5).image()
        # if offer.video2:
        #     ff2 = FFmpeg(inputs={offer.video2.url: None}, outputs={"output2.png": ['-ss', '00:00:4', '-vframes', '1']})
        #
        # offer.video1_thumbnail=ff1
        # offer.video2_thumbnail=ff2
        # offer.save()

        validated_data['garage'] = garage
        validated_data['image1'] = offer.image1
        validated_data['image2'] = offer.image2
        validated_data['image3'] = offer.image3
        validated_data['image4'] = offer.image4
        validated_data['video1'] = offer.video1
        validated_data['video1_thumbnail'] = offer.video1_thumbnail
        validated_data['video2'] = offer.video2
        validated_data['video2_thumbnail'] = offer.video2_thumbnail

        return validated_data
Пример #21
0
    def create(self, validated_data, *args, **kwargs):
        request = self.context['request']
        offer = self.context['offer']

        image1 = request.FILES.get('image1')
        image2 = request.FILES.get('image2')
        image3 = request.FILES.get('image3')
        image4 = request.FILES.get('image4')
        video1 = request.FILES.get('video1')
        video1_thumbnail = request.FILES.get('video1_thumbnail')
        video2 = request.FILES.get('video2')
        video2_thumbnail = request.FILES.get('video2_thumbnail')
        title = validated_data['title']
        description = validated_data['description']
        coupon = validated_data['coupon']
        advertisment_license_number = validated_data[
            'advertisment_license_number']
        start_date = validated_data['start_date']
        end_date = validated_data['end_date']

        #------------------Arabic Conversion-------------------------------
        tdata = []
        tdata.append(title)
        tdata.append(description)
        tdata.append(advertisment_license_number)
        tres = translate_text_ar(tdata)
        #------------------------------------------------

        if image1:
            offer.image1 = image1
        if image2:
            offer.image2 = image2
        if image3:
            offer.image3 = image3
        if image4:
            offer.image4 = image4
        if video1:
            offer.video1 = video1
        if video2:
            offer.video2 = video2
        if video1_thumbnail:
            offer.video1_thumbnail = video1_thumbnail
        if video2_thumbnail:
            offer.video2_thumbnail = video2_thumbnail
        offer.title = title
        offer.description = description
        offer.coupon = coupon
        offer.advertisment_license_number = advertisment_license_number
        offer.start_date = start_date
        offer.end_date = end_date
        offer.ar_title = tres[0].text
        offer.ar_description = tres[1].text
        offer.ar_advertisment_license_number = tres[2].text
        offer.save()

        validated_data['garage'] = offer.garage
        validated_data['image1'] = offer.image1
        validated_data['image2'] = offer.image2
        validated_data['image3'] = offer.image3
        validated_data['image4'] = offer.image4
        validated_data['video1'] = offer.video1
        validated_data['video1_thumbnail'] = offer.video1_thumbnail
        validated_data['video2'] = offer.video2
        validated_data['video2_thumbnail'] = offer.video2_thumbnail

        return validated_data
    def post(self, request, *args, **kwargs):
        models = VehicleModle.objects.all()
        is_edit = request.POST['myhiddenfield']

        if not int(is_edit):
            form = CreateCarModelForm(data=request.POST or None, )
            x = 0
            if form.is_valid():
                type = request.POST['catname']
                type = type.strip()
                type_ar = request.POST['catname_ar']
                type_ar = type_ar.strip()
                if not type_ar or type_ar == "":
                    tdata = []
                    tdata.append(type)
                    tres = translate_text_ar(tdata)
                    type_ar = tres[0].text
                icon = request.FILES.get('caticon')
                # print(icon.name)
                # print(icon.size)
                # print(icon.content_type)
                # print(icon.name.split('.')[-1])
                if icon:
                    if icon.size > 1024000:
                        x = 1
                    if icon.name.split('.')[-1].lower() not in ('png', 'jpg',
                                                                'jpeg'):
                        x = 1
                if x == 1:
                    return render(request,
                                  'category_management/add_car_model.html', {
                                      'models': models,
                                      'form': form,
                                      'x': x,
                                      'hidden_value': 0
                                  })
                if icon:
                    st = VehicleModle(
                        model_name=type,
                        model_name_ar=type_ar,
                        icon=icon,
                    )
                    st.save()
                else:
                    st = VehicleModle(
                        model_name=type,
                        model_name_ar=type_ar,
                    )
                    st.save()
                x = 2
                return render(request,
                              'category_management/add_car_model.html', {
                                  'models': models,
                                  'form': form,
                                  'x': x,
                                  'hidden_value': 0
                              })
            return render(request, 'category_management/add_car_model.html', {
                'models': models,
                'form': form,
                'hidden_value': 0
            })
        else:
            form = EditCarModelForm(data=request.POST or None, )
            x = 0
            if form.is_valid():
                type = request.POST['catname']
                type = type.strip()
                type_ar = request.POST['catname_ar']
                type_ar = type_ar.strip()
                if not type_ar or type_ar == "":
                    tdata = []
                    tdata.append(type)
                    tres = translate_text_ar(tdata)
                    type_ar = tres[0].text
                icon = request.FILES.get('caticon')
                # print(icon.name)
                # print(icon.size)
                # print(icon.content_type)
                # print(icon.name.split('.')[-1])
                if icon:
                    if icon.size > 1024000:
                        x = 1
                    if icon.name.split('.')[-1].lower() not in ('png', 'jpg',
                                                                'jpeg'):
                        x = 1
                if x == 1:
                    return render(
                        request, 'category_management/add_car_model.html', {
                            'models': models,
                            'form': form,
                            'x': x,
                            'hidden_value': is_edit
                        })
                st = VehicleModle.objects.filter(id=is_edit).first()
                print(type)
                print(type_ar)
                if icon:
                    st.model_name = type
                    st.model_name_ar = type_ar
                    st.icon = icon
                    st.save()
                else:
                    st.model_name = type
                    st.model_name_ar = type_ar
                    st.save()
                x = 9
                return render(request,
                              'category_management/add_car_model.html', {
                                  'models': models,
                                  'form': form,
                                  'x': x,
                                  'hidden_value': 0
                              })
            return render(request, 'category_management/add_car_model.html', {
                'models': models,
                'form': form,
                'hidden_value': is_edit
            })