def provider_works(request): json_data=status.objects.filter(status='ERR',MSG=None) json_dump = serializers.serialize("json", json_data) user_profile = UserProfile.objects.filter(user=request.user) if not user_profile: json_data=status.objects.filter(status='ERR',MSG='PD') json_dump = serializers.serialize("json", json_data) return HttpResponse(json_dump) if user_profile[0].is_client: json_data=status.objects.filter(status='ERR',MSG='PD') json_dump = serializers.serialize("json", json_data) return HttpResponse(json_dump) today=datetime.date.today() all_hidden = hidden_works.objects.filter(provider_user=request.user) all_works = work.objects.filter(is_active=1) returnArray = [] for work_i in all_works: if check_area(user_profile[0].area_id.id, work_i.area.id) and check_item_level(user_profile[0].level, work_i.item) and (work_i.end_date >= today): hidden_flag=0 for hidden_i in all_hidden: if (hidden_i.work_id == work_i): hidden_flag=1 if not hidden_flag: cur_item = items.objects.filter(item_id=work_i.item).order_by('id').reverse() item_str = "" for vlue in cur_item: item_str += " " + vlue.value.value work_dict = {} work_dict['pk'] = int(work_i.id) work_dict['model'] = "oos.work" work_fields={} work_fields['client_user'] = str(work_i.client_user.first_name + " " + work_i.client_user.last_name) work_fields['item'] = str(item_str) #work_fields['text'] = str(work_i.text) #work_fields['area'] = str(work_i.area) work_fields['post_date'] = str(work_i.post_date.strftime("%d/%m/%Y"))# %H:%M")) #work_fields['end_date'] = str(work_i.end_date.strftime("%d-%m-%Y")) work_dict['fields'] = work_fields returnArray.append(work_dict) if not returnArray: json_dump = serializers.serialize("json", list(status.objects.filter(status='WRN',MSG="EMP"))) return HttpResponse(json_dump.replace('\'','"').replace('][',',')) prov_prices = price.objects.filter(provider_user=request.user) json_data = list(status.objects.filter(status='OK')) + list(prov_prices) json_dump = serializers.serialize("json", json_data) + str(list(returnArray)) return HttpResponse(json_dump.replace('\'','"').replace('][',','))
def post_price(request): json_data=status.objects.filter(status='ERR',MSG=None) errors="" cur_user_area = UserProfile.objects.get(user=request.user).area_id.id if not UserProfile.objects.get(user=request.user).is_client: if request.method == 'POST': cur_price = new_price(request.POST) if cur_price.is_valid(): work_area = work.objects.get(id=request.POST['work_id']).area.id if check_area(cur_user_area, work_area): old_price = price.objects.filter(work_id=request.POST['work_id'], provider_user=request.user) if old_price: if 'overwrite' in request.POST: if (request.POST['overwrite'] == '1'): price_clean = cur_price.cleaned_data old_price0 = old_price[0] old_price0.price=price_clean['price'] old_price0.text=price_clean['text'] old_price0.save() json_data = status.objects.filter(status='OK') else: json_data = status.objects.filter(status='WRN',MSG="AEX") else: json_data = status.objects.filter(status='WRN',MSG="AEX") else: price_clean = cur_price.cleaned_data cur_price_save = cur_price.save(commit=False) cur_price_save.provider_user = request.user cur_price_save.is_active = True cur_price_save.save() json_data = status.objects.filter(status='OK') else: json_data=list(status.objects.filter(status='ERR',MSG='PD')) else: json_data = status.objects.filter(status='WRN',MSG="") #errors = str(cur_price.errors) errors = ",[" + str(dict([(k, v[0].__str__()) for k, v in cur_price.errors.items()])) + "]" else: json_data=list(status.objects.filter(status='ERR',MSG='PD')) else: json_data=list(status.objects.filter(status='ERR',MSG='PD')) json_dump = serializers.serialize("json", json_data) json_dump += errors return HttpResponse(json_dump)
def get_work(request): json_data = status.objects.filter(status='ERR', MSG='NE') json_dump = serializers.serialize("json", json_data) if request.method == 'POST': if 'work_id' not in request.POST: return HttpResponse(json_dump) work_id = request.POST['work_id'] if work_id == "" : return HttpResponse(json_dump) cur_work = work.objects.filter(id=work_id) if not cur_work: return HttpResponse(json_dump) user_profile = UserProfile.objects.filter(user=request.user) if not user_profile: return HttpResponse(json_dump) PD_flag=True if (request.user == cur_work[0].client_user ): PD_flag=False elif (not user_profile[0].is_client) and check_area(user_profile[0].area_id.id, cur_work[0].area.id) and check_item_level(user_profile[0].level, cur_work[0].item): PD_flag=False if PD_flag: json_data = status.objects.filter(status='ERR', MSG='PD') json_dump = serializers.serialize("json", json_data) return HttpResponse(json_dump) returnArray = [] work_i = cur_work[0] work_dict = {} work_dict['pk'] = int(work_i.id) work_dict['model'] = "oos.work" work_fields={} work_fields['client_user'] = str(work_i.client_user.first_name + " " + work_i.client_user.last_name) #work_fields['item'] = str(work_i.item) work_fields['text'] = str(work_i.text) work_fields['area'] = str(work_i.area) work_fields['post_date'] = str(work_i.post_date.strftime("%d/%m/%Y"))# %H:%M")) work_fields['end_date'] = str(work_i.end_date.strftime("%d-%m-%Y")) work_dict['fields'] = work_fields returnArray.append(work_dict) cur_item = items.objects.filter(item_id=work_i.item) if not cur_item: return HttpResponse(json_dump) for i in cur_item: item_dict={} item_dict['pk'] = int(i.value.key.id) item_dict['model'] = "oos.itemKV" item_fields = {} item_fields[str(i.value.key.name)] = str(i.value.value) item_dict['fields'] = item_fields returnArray.append(item_dict) cur_pics = pics.objects.filter(work_id=cur_work).only("pic") for pic_i in cur_pics: pic_dict = {} pic_dict['pk'] = int(pic_i.id) pic_dict['model'] = "oos.workPic" pic_fields = {} pic_fields['pic_url'] = "http://" + request.META['HTTP_HOST'] + "/static/" + str(pic_i.pic) pic_dict['fields'] = pic_fields returnArray.append(pic_dict) json_dump = serializers.serialize("json", list(status.objects.filter(status='OK'))) + str(list(returnArray)) return HttpResponse(json_dump.replace('\'','"').replace('][',',').replace('}, {','},{'))