コード例 #1
0
ファイル: views.py プロジェクト: gabik/OOS
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('][',','))
コード例 #2
0
ファイル: views.py プロジェクト: gabik/OOS
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)
コード例 #3
0
ファイル: views.py プロジェクト: gabik/OOS
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('}, {','},{'))