Ejemplo n.º 1
0
def process_property_data_before_posting(property_data, request_data, email):
	
	"""
		Add necessary fields to property dictionary
		before indexing property data, 
		store image in full size & thumbnails format. 

	"""

	custom_id = "PROP-"  + cstr(int(time.time())) + '-' +  cstr(random.randint(10000,99999))
	property_data["property_id"] = custom_id
	meta_dict = add_meta_fields_before_posting(request_data)
	property_data.update(meta_dict)
	property_photo_url_dict = store_property_photos_in_propshikari(request_data.get("property_photos"),custom_id)
	property_data["full_size_images"] = property_photo_url_dict.get("full_size",[])
	property_data["thumbnails"] = property_photo_url_dict.get("thumbnails",[])
	property_data["property_photo"] = property_photo_url_dict.get("thumbnails")[0] if len(property_photo_url_dict.get("thumbnails")) else ""
	property_data["posted_by"] = request_data.get("user_id")
	property_data["user_email"] = email
	property_data["posting_date"] = property_data.get("posting_date") if property_data.get("posting_date") else property_data.get("creation_date")
	property_data["amenities"] = putil.prepare_amenities_data(property_data.get("amenities",""), property_data.get("property_type"))
	property_data["flat_facilities"] = putil.prepare_flat_facilities_data(property_data.get("flat_facilities",""), property_data.get("property_type"))
	property_data["possession_status"] = "Immediate" if property_data.get("possession") else property_data.get("possession_date")
	property_data["discounted_price"] = putil.get_discounted_price(property_data) if property_data.get("discount_percentage") else 0.0
	mandatory_list = property_mandatory_fields.get(property_data.get("property_type"))
	property_data["percent_completion"] = putil.calculate_percent_completion(property_data, mandatory_list)
	if not property_data.get("possession_date"):
		property_data.pop("possession_date", None)
	return custom_id	
Ejemplo n.º 2
0
def prepare_property_posting_data(project_data):
    property_data = []
    new_project_data = get_property_specific_keys(project_data)

    for prop in project_data.get("property_details"):
        prop_dict = {}
        prop_list = []
        prop_dict["property_title"] = project_data.get("project_name")
        prop_dict["property_type"] = prop.get("property_type")
        prop_dict["property_subtype"] = prop.get("property_subtype")
        prop_dict["property_subtype_option"] = prop.get(
            "property_subtype_option", "")
        prop_dict["operation"] = project_data.get("operation")
        prop_dict["carpet_area"] = prop.get("max_area")
        prop_dict["price"] = prop.get("max_price")
        prop_dict["unit_of_area"] = prop.get("unit_of_area")
        prop_dict["published_status"] = "Unpublished"
        prop_dict["property_photo"] = project_data.get("project_photo", "")
        prop_dict["flat_facilities"] = putil.prepare_flat_facilities_data(
            [], prop.get("property_type"))
        prop_dict.update(new_project_data)
        mandatory_list = property_mandatory_fields.get(
            prop.get("property_type"))
        prop_dict["status"] = "Deactivated"
        prop_dict["tag"] = []
        prop_dict["percent_completion"] = putil.calculate_percent_completion(
            prop_dict, mandatory_list)
        prop_list = [prop_dict] * cint(prop.get("count"))
        property_data.extend(prop_list)
    return property_data
Ejemplo n.º 3
0
def update_property(data):
    request_data = json.loads(data)
    user_email = putil.validate_for_user_id_exists(
        request_data.get("fields").get("user_id"))
    try:
        field_dict = putil.validate_property_posting_data(
            request_data.get("fields"), "property_json/property_update.json")
        get_modified_datetime(field_dict, user_email)
        update_property_photos(field_dict, request_data.get("fields"),
                               request_data.get("property_id"))
        field_dict["possession_status"] = "Immediate" if field_dict.get(
            "possession") else field_dict.get("possession_date")
        search_query = {"doc": field_dict}
        es = ElasticSearchController()
        update_response = es.update_docuemnt("property",
                                             request_data.get("property_id"),
                                             search_query)
        mandatory_list = property_mandatory_fields.get(
            field_dict.get("property_type"), [""])
        percent_script = get_percent_completion_script(mandatory_list)
        percent_response = es.update_docuemnt("property",
                                              request_data.get("property_id"),
                                              percent_script)
        return {"opeartion": "Update", "message": "Property details Updated"}
    except elasticsearch.TransportError:
        raise DoesNotExistError("Property Id does not exists")
    except elasticsearch.ElasticsearchException, e:
        raise ElasticSearchException(e.error)
Ejemplo n.º 4
0
def prepare_property_posting_data(project_data):
	property_data = []
	new_project_data = get_property_specific_keys(project_data)

	for prop in project_data.get("property_details"):
		prop_dict = {}
		prop_list = []
		prop_dict["property_title"] =  project_data.get("project_name")
		prop_dict["property_type"] = prop.get("property_type")
		prop_dict["property_subtype"] = prop.get("property_subtype")
		prop_dict["property_subtype_option"] = prop.get("property_subtype_option", "")
		prop_dict["operation"] = project_data.get("operation")
		prop_dict["carpet_area"] = prop.get("max_area")
		prop_dict["price"] = prop.get("max_price")
		prop_dict["unit_of_area"] = prop.get("unit_of_area")
		prop_dict["published_status"] = "Unpublished"
		prop_dict["property_photo"] = project_data.get("project_photo","")
		prop_dict["flat_facilities"] = putil.prepare_flat_facilities_data([], prop.get("property_type"))
		prop_dict.update(new_project_data)
		mandatory_list = property_mandatory_fields.get(prop.get("property_type"))
		prop_dict["status"] = "Deactivated"
		prop_dict["tag"] = []
		prop_dict["percent_completion"] = putil.calculate_percent_completion(prop_dict, mandatory_list)
		prop_list = [prop_dict] * cint(prop.get("count"))
		property_data.extend(prop_list)
	return property_data	
def update_property(data):
	request_data = json.loads(data)
	user_email = putil.validate_for_user_id_exists(request_data.get("fields").get("user_id"))
	try:
		field_dict = putil.validate_property_posting_data(request_data.get("fields"), "property_json/property_update.json")
		get_modified_datetime(field_dict, user_email)
		update_property_photos(field_dict, request_data.get("fields"), request_data.get("property_id"))
		field_dict["possession_status"] = "Immediate" if field_dict.get("possession") else field_dict.get("possession_date")
		search_query = {"doc": field_dict }
		es = ElasticSearchController()
		update_response = es.update_docuemnt("property", request_data.get("property_id"), search_query)
		mandatory_list = property_mandatory_fields.get(field_dict.get("property_type"),[""])
		percent_script = get_percent_completion_script(mandatory_list)
		percent_response = es.update_docuemnt("property", request_data.get("property_id"), percent_script)
		return {"opeartion":"Update", "message":"Property details Updated"}
	except elasticsearch.TransportError:
		raise DoesNotExistError("Property Id does not exists")
	except elasticsearch.ElasticsearchException,e:
		raise ElasticSearchException(e.error)
Ejemplo n.º 6
0
def process_property_data_before_posting(property_data, request_data, email):
	
	"""
		Add necessary fields to property dictionary
		before indexing property data, 
		store image in full size & thumbnails format. 

	"""
	custom_id = "PROP-"  + cstr(int(time.time())) + '-' +  cstr(random.randint(10000,99999))
	property_data["property_id"] = custom_id
	meta_dict = add_meta_fields_before_posting(request_data)
	property_data.update(meta_dict)
	property_photo_url_dict = store_property_photos_in_propshikari(request_data.get("property_photos"),custom_id)
	property_data["full_size_images"] = property_photo_url_dict.get("full_size",[])
	property_data["thumbnails"] = property_photo_url_dict.get("thumbnails",[])
	property_data["property_photo"] = property_photo_url_dict.get("thumbnails")[0] if len(property_photo_url_dict.get("thumbnails")) else ""
	property_data["posted_by"] = request_data.get("user_id")
	property_data["user_email"] = email
	property_data["posting_date"] = property_data.get("posting_date") if property_data.get("posting_date") else property_data.get("creation_date")
	property_data["amenities"] = putil.prepare_amenities_data(property_data.get("amenities",""), property_data.get("property_type"))
	property_data["flat_facilities"] = putil.prepare_flat_facilities_data(property_data.get("flat_facilities",""), property_data.get("property_type"))
	property_data["possession_status"] = "Immediate" if property_data.get("possession") else property_data.get("possession_date")
	property_data["discounted_price"] = putil.get_discounted_price(property_data) if property_data.get("discount_percentage") else 0.0
	mandatory_list = property_mandatory_fields.get(property_data.get("property_type"))
	property_data["percent_completion"] = putil.calculate_percent_completion(property_data, mandatory_list)
	# added by arpit for  published_status
	if request_data.get("request_source") == "bulk_upload":
		property_data["published_status"] = "published"
		property_data["status"] = "Active"
	else:
		property_data["published_status"] = "Unpublished"
		property_data["status"] = "Deactivated"
			
	property_data["tag"] = property_data.get("tag") if property_data.get("tag") else []
	# end of code
	if not property_data.get("possession_date"):
		property_data.pop("possession_date", None)
	return custom_id