You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
580 lines
34 KiB
580 lines
34 KiB
<?xml version="1.0" encoding="UTF-8" ?>
|
|
<odoo>
|
|
<!-- All property view template-->
|
|
<template id="property_view" name="property_view">
|
|
<t t-call="website.layout">
|
|
<t t-set="title">Properties</t>
|
|
<div class="oe_structure">
|
|
<br/>
|
|
<div class="container">
|
|
<div class="row" id="property_container">
|
|
<div class="col-md-3">
|
|
<ul class="list-group" id="property_options">
|
|
<li class="list-group-item active property_action_buttons"
|
|
data-action="0" aria-current="true" style="cursor: pointer;">
|
|
Properties
|
|
</li>
|
|
<li class="list-group-item property_action_buttons"
|
|
data-action="2" style="cursor: pointer;">
|
|
Sales
|
|
</li>
|
|
<li class="list-group-item property_action_buttons"
|
|
data-action="3" style="cursor: pointer;">
|
|
Rental
|
|
</li>
|
|
<li class="list-group-item property_action_buttons"
|
|
id="auction_button" data-action="1" style="cursor: pointer;">
|
|
Auction
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="col-md-9" id="property_option_view">
|
|
<!-- View all properties -->
|
|
<div class="property_item_view"
|
|
id="property_item_view">
|
|
<div class="row row-cols-1 row-cols-md-3 g-4 o_properties">
|
|
<t t-if="property_ids">
|
|
<t t-foreach="property_ids" t-as="property">
|
|
<t t-if="property.state == 'available'">
|
|
<div class="col o_property_item"
|
|
t-att-data-property_id="property.id">
|
|
<div class="card">
|
|
<t t-if="property.image">
|
|
<img t-att-src="image_data_uri(property.image)"
|
|
class="card-img-top"
|
|
style="height:200px"
|
|
alt="..."/>
|
|
</t>
|
|
<div class="card-body">
|
|
<h5 class="card-title">
|
|
<t t-esc="property.name"/>
|
|
-
|
|
<t t-esc="property.code"/>
|
|
</h5>
|
|
<p class="card-text"
|
|
style="text-transform: capitalize;">
|
|
<t t-esc="property.property_type"/>
|
|
</p>
|
|
<br/>
|
|
<t t-if="property.state == 'sold'">
|
|
<span id="p_type"
|
|
style="text-transform: capitalize;"
|
|
class="badge badge-pill bg-danger">
|
|
Sold
|
|
</span>
|
|
</t>
|
|
<t t-if="property.state == 'for sale'">
|
|
<span id="p_type"
|
|
style="text-transform: capitalize;"
|
|
class="badge badge-pill bg-success">
|
|
For Sale
|
|
</span>
|
|
</t>
|
|
<t t-if="property.state == 'for_rent'">
|
|
<span id="p_type"
|
|
style="text-transform: capitalize;"
|
|
class="badge badge-pill bg-primary">
|
|
For Rent
|
|
</span>
|
|
</t>
|
|
<t t-if="property.state == 'booked'">
|
|
<span id="p_type"
|
|
style="text-transform: capitalize;"
|
|
class="badge badge-pill bg-warning">
|
|
Booked
|
|
</span>
|
|
</t>
|
|
<t t-if="property.state == 'available'">
|
|
<span id="p_type"
|
|
style="text-transform: capitalize;"
|
|
class="badge badge-pill bg-info">
|
|
Available
|
|
</span>
|
|
</t>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
</t>
|
|
</t>
|
|
<t t-else="">
|
|
<h3 class="m-5">No Available Properties
|
|
</h3>
|
|
</t>
|
|
</div>
|
|
</div>
|
|
<!-- property sales list -->
|
|
<div class="property_sales_view" id="property_sales_view" style="display: none;">
|
|
<div class="row row-cols-1 row-cols-md-3 g-4">
|
|
<t t-if="property_ids">
|
|
<t t-foreach="property_ids"
|
|
t-as="property">
|
|
<t t-if="property.state == 'available' and property.sale_rent == 'for_sale'">
|
|
<div class="col o_property_item"
|
|
t-att-data-property_id="property.id">
|
|
<div class="card">
|
|
<t t-if="property.image">
|
|
<img t-att-src="image_data_uri(property.image)"
|
|
class="card-img-top"
|
|
style="height:200px"
|
|
alt="..."/>
|
|
</t>
|
|
<div class="card-body">
|
|
<h5 class="card-title">
|
|
<t t-esc="property.name"/>
|
|
-
|
|
<t t-esc="property.code"/>
|
|
</h5>
|
|
<p class="card-text"
|
|
style="text-transform: capitalize;">
|
|
<t t-esc="property.property_type"/>
|
|
<br/>
|
|
<t t-if="property.state == 'sold'">
|
|
<span id="p_type"
|
|
style="text-transform: capitalize;"
|
|
class="badge badge-pill bg-danger">
|
|
Sold
|
|
</span>
|
|
</t>
|
|
<t t-if="property.sale_rent == 'for_sale'">
|
|
<span id="p_type"
|
|
style="text-transform: capitalize;"
|
|
class="badge badge-pill bg-success">
|
|
For Sale
|
|
</span>
|
|
</t>
|
|
<t t-if="property.sale_rent == 'for_tenancy'">
|
|
<span id="p_type"
|
|
style="text-transform: capitalize;"
|
|
class="badge badge-pill bg-primary">
|
|
For
|
|
Tenancy
|
|
</span>
|
|
</t>
|
|
<t t-if="property.state == 'available'">
|
|
<span id="p_type"
|
|
style="text-transform: capitalize;"
|
|
class="badge badge-pill bg-info">
|
|
Available
|
|
</span>
|
|
</t>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
</t>
|
|
</t>
|
|
<t t-else="">
|
|
<h3 class="m-5">No Property For Sale!</h3>
|
|
</t>
|
|
</div>
|
|
</div>
|
|
<!-- Property rental list -->
|
|
<div class="property_rental_view"
|
|
id="property_rental_view" style="display: none;">
|
|
<div class="row row-cols-1 row-cols-md-3 g-4">
|
|
<t t-if="property_ids">
|
|
<t t-foreach="property_ids" t-as="property">
|
|
<t t-if="property.state == 'available' and property.sale_rent == 'for_tenancy'">
|
|
<div class="col o_property_item"
|
|
t-att-data-property_id="property.id">
|
|
<div class="card">
|
|
<t t-if="property.image">
|
|
<img t-att-src="image_data_uri(property.image)"
|
|
class="card-img-top"
|
|
style="height:200px"
|
|
alt="..."/>
|
|
</t>
|
|
<div class="card-body">
|
|
<h5 class="card-title">
|
|
<t t-esc="property.name"/>
|
|
-
|
|
<t t-esc="property.code"/>
|
|
</h5>
|
|
<p class="card-text"
|
|
style="text-transform: capitalize;">
|
|
<t t-esc="property.property_type"/>
|
|
<br/>
|
|
<t t-if="property.state == 'sold'">
|
|
<span id="p_type"
|
|
style="text-transform: capitalize;"
|
|
class="badge badge-pill bg-danger">
|
|
Sold
|
|
</span>
|
|
</t>
|
|
<t t-if="property.sale_rent == 'for_sale'">
|
|
<span id="p_type"
|
|
style="text-transform: capitalize;"
|
|
class="badge badge-pill bg-success">
|
|
For Sale
|
|
</span>
|
|
</t>
|
|
<t t-if="property.sale_rent == 'for_tenancy'">
|
|
<span id="p_type"
|
|
style="text-transform: capitalize;"
|
|
class="badge badge-pill bg-primary">
|
|
For
|
|
Tenancy
|
|
</span>
|
|
</t>
|
|
<t t-if="property.state == 'available'">
|
|
<span id="p_type"
|
|
style="text-transform: capitalize;"
|
|
class="badge badge-pill bg-info">
|
|
Available
|
|
</span>
|
|
</t>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
</t>
|
|
</t>
|
|
<t t-else="">
|
|
<h3 class="m-5">No Property For Rent!</h3>
|
|
</t>
|
|
</div>
|
|
</div>
|
|
<!-- Property auction list -->
|
|
<div class="property_auction_view"
|
|
id="property_auction_view"
|
|
style="display: none;">
|
|
<div class="auction_cards"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<br/>
|
|
<br/>
|
|
</div>
|
|
</t>
|
|
</template>
|
|
<!-- Property Detail View Template -->
|
|
<template id="property_view_item" name="property_view_item">
|
|
<t t-call="website.layout">
|
|
<t t-set="title">Property-
|
|
<t t-esc="property_id.name"/>
|
|
</t>
|
|
<div class="oe_structure"
|
|
style="margin-top: 3%;margin-left: 10%;margin-right: 10%;background-color: #f5f2f2;">
|
|
<br/>
|
|
<div class="container property_item_container">
|
|
<div class="row" id="property_container">
|
|
<script src="https://polyfill.io/v3/polyfill.min.js?features=default"/>
|
|
<script src="https://www.npmjs.com/package/@googlemaps/js-api-loader"/>
|
|
<div class="property_item" id="property-item"
|
|
t-att-data-state="property_id.state">
|
|
<script defer="defer"
|
|
t-attf-src="https://maps.googleapis.com/maps/api/js?key={{api}}&v=weekly"/>
|
|
<div class="row p-3 requestBtn"/>
|
|
<div class="row">
|
|
<div class="col-md-4">
|
|
<t t-if="property_id.image">
|
|
<img id="property-image"
|
|
t-att-src="image_data_uri(property_id.image)"
|
|
style="width: -webkit-fill-available;"/>
|
|
</t>
|
|
</div>
|
|
<div class="col-md-8 introduction">
|
|
<div class="row" id="nameAddress">
|
|
<h2 class="my-0"
|
|
style="text-transform: capitalize;">
|
|
<t t-esc="property_id.name"/>-
|
|
<t t-esc="property_id.property_type"/>
|
|
</h2>
|
|
<br/>
|
|
<div class="col-sm-4 m-2">Address:</div>
|
|
<div class="col m-2">
|
|
<t t-esc="property_id.street"/>
|
|
<br/>
|
|
<t t-esc="property_id.street2"/>
|
|
<br/>
|
|
<t t-esc="property_id.city"/>
|
|
<t t-esc="property_id.state_id.name"/>
|
|
<t t-esc="property_id.zip"/>
|
|
<br/>
|
|
<t t-esc="property_id.country_id.name"/>
|
|
</div>
|
|
</div>
|
|
<t t-if="property_id.unit_price">
|
|
<div class="row">
|
|
<div class="col-sm-4 m-2">Price:
|
|
</div>
|
|
<div class="col m-2">
|
|
<t
|
|
t-esc="property_id.unit_price"/>
|
|
/-
|
|
</div>
|
|
</div>
|
|
</t>
|
|
<t t-if="property_id.rent_month">
|
|
<div class="row">
|
|
<div class="col-sm-4 m-2">Rent per
|
|
Month:
|
|
</div>
|
|
<div class="col m-2">
|
|
<t
|
|
t-esc="property_id.rent_month"/>
|
|
/-
|
|
</div>
|
|
</div>
|
|
</t>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<t t-if="property_id.total_sq_feet">
|
|
<div class="row">
|
|
<div class="col-sm-4 p-3"
|
|
style="font-size: 1.3rem;">Total Square Feet:
|
|
</div>
|
|
<div class="col m-2"
|
|
style="font-size: 1.3rem;text-transform: capitalize;">
|
|
<t t-esc="property_id.total_sq_feet"/>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
<div class="row">
|
|
<div class="col-sm-4 p-3" style="font-size: 1.3rem;">
|
|
Facilities:
|
|
</div>
|
|
<div class="col m-2" style="font-size: 1rem;">
|
|
<t t-foreach="property_id.facility_ids"
|
|
t-as="facility">
|
|
&nbsp;
|
|
<span class="badge badge-pill badge-success"
|
|
style="background-color: var(--cyan);">
|
|
<t t-esc="facility.facility"/>
|
|
</span>
|
|
</t>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-sm-4 p-3" style="font-size: 1.3rem;">
|
|
Nearby Connectivity:
|
|
</div>
|
|
<div class="col" style="font-size: 1rem;">
|
|
<div class="row">
|
|
<t t-foreach="property_id.nearby_connectivity_ids"
|
|
t-as="connectivity">
|
|
<div class="col-sm-2">
|
|
<div class="card"
|
|
style="width: max-content;">
|
|
<div class="card-body">
|
|
<h5 class="card-title"
|
|
style="text-transform: capitalize;">
|
|
<t t-esc="connectivity.name"/>
|
|
</h5>
|
|
<p class="card-text">
|
|
<t
|
|
t-esc="connectivity.kilometer"/>
|
|
Kms
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row p-3">
|
|
<a class="btn btn-primary btn_cta" id="loadMap"
|
|
style="width:auto;"
|
|
t-att-data-lat="property_id.latitude"
|
|
t-att-data-lng="property_id.longitude">Locate
|
|
</a>
|
|
<div id="map-view"
|
|
style="width:70%;height:450px;display:none;"/>
|
|
</div>
|
|
<div class="row p-3">
|
|
<a href="/property"
|
|
class="btn btn-primary btn_cta btnBack"
|
|
style="width:auto;">Back
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
</template>
|
|
<!-- Property Auction Template -->
|
|
<template id="auction_view" name="Action View">
|
|
<hr/>
|
|
Ongoing
|
|
<hr/>
|
|
<t t-foreach="started" t-as="property">
|
|
<div class="card mb-3" style="margin-bottom:4px;"
|
|
t-att-data-property_id="property['id']">
|
|
<div class="row g-0">
|
|
<div class="col-md-4">
|
|
<t t-if="property['image']">
|
|
<img t-att-src="image_data_uri(property['image'])"
|
|
class="card-img-top"
|
|
alt="..."/>
|
|
</t>
|
|
</div>
|
|
<div class="col-md-8">
|
|
<div class="card-body">
|
|
<h5 class="card-title">
|
|
<t t-esc="property['code']"/>
|
|
</h5>
|
|
<h6>
|
|
<t t-esc="property['name']"/>
|
|
</h6>
|
|
<p class="card-text">
|
|
<t t-esc="description"/>
|
|
</p>
|
|
<table class="table">
|
|
<tr>
|
|
<td>Start Amount</td>
|
|
<td>Last Bid</td>
|
|
<td>Action</td>
|
|
</tr>
|
|
<tr>
|
|
<td t-attf-id="bid-start-{{property['id']}}">
|
|
<t t-esc="property['start_price']"/>
|
|
</td>
|
|
<td t-attf-id="last-bid-{{property['id']}}">
|
|
<t t-esc="property['last']"/>
|
|
</td>
|
|
<td>
|
|
<div class="input-group input-group-sm mb-3">
|
|
<input type="number"
|
|
class="form-control"
|
|
placeholder="Your Amount"
|
|
t-attf-id="property-{{property['id']}}"
|
|
style="height:36px; padding-bottom: 3px;"
|
|
/>
|
|
<button class="btn btn-success" id="auction_submit"
|
|
t-att-data-id="property['id']"
|
|
style="width:70px;">BID
|
|
</button>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
<hr/>
|
|
Upcoming
|
|
<hr/>
|
|
<t t-foreach="confirmed" t-as="property">
|
|
<div class="card mb-3 " t-att-data-property_id="property['id']"
|
|
style="margin-bottom:4px;">
|
|
<div class="row g-0">
|
|
<div class="col-md-4">
|
|
<t t-if="property['image']">
|
|
<img t-att-src="image_data_uri(property['image'])"
|
|
class="card-img-top"
|
|
alt="..."/>
|
|
</t>
|
|
</div>
|
|
<div class="col-md-8">
|
|
<div class="card-body">
|
|
<h5 class="card-title">
|
|
<t t-esc="property['code']"/>
|
|
</h5>
|
|
<h6>
|
|
<t t-esc="property['name']"/>
|
|
</h6>
|
|
<p class="card-text">
|
|
<t t-esc="description"/>
|
|
</p>
|
|
<table class="table">
|
|
<tr>
|
|
<td>Start Amount</td>
|
|
<td>Start Date</td>
|
|
<td>End Date</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<t t-esc="property['start_price']"/>
|
|
</td>
|
|
<td>
|
|
<t t-esc="property['start']"/>
|
|
</td>
|
|
<td>
|
|
<t t-esc="property['end']"/>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
<hr/>
|
|
Completed
|
|
<hr/>
|
|
<t t-foreach="ended" t-as="property">
|
|
<div class="card mb-3" style="margin-bottom:4px;">
|
|
<div class="row g-0">
|
|
<div class="col-md-4">
|
|
<t t-if="property['image']">
|
|
<img t-att-src="image_data_uri(property['image'])"
|
|
class="card-img-top"
|
|
alt="..."/>
|
|
</t>
|
|
</div>
|
|
<div class="col-md-8">
|
|
<div class="card-body" style="padding-top:36px;">
|
|
<h5 class="card-title">
|
|
<t t-esc="property['code']"/>
|
|
</h5>
|
|
<h6>
|
|
<t t-esc="property['name']"/>
|
|
</h6>
|
|
<p class="card-text">
|
|
<t t-esc="description"/>
|
|
</p>
|
|
<table class="table">
|
|
<tr>
|
|
<th>Start Amount</th>
|
|
<td>
|
|
<t t-esc="property['start_price']"/>
|
|
</td>
|
|
<th>Participants</th>
|
|
<td>
|
|
<t t-esc="property['total_participant']"/>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Last Bid</th>
|
|
<td>
|
|
<t t-esc="property['last']"/>
|
|
</td>
|
|
<th>Winner</th>
|
|
<td>
|
|
<t t-esc="property['winner']"/>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Start Time</th>
|
|
<td>
|
|
<t t-esc="property['start']"/>
|
|
</td>
|
|
<th>End Time</th>
|
|
<td>
|
|
<t t-esc="property['end']"/>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
<div class="toast position-fixed top-0 end-0 p-3"
|
|
style="z-index: 9999;">
|
|
<div class="toast-header">
|
|
Bid Amount Must be Greater than Last Bid and Start Amount
|
|
<button type="button" class="btn-close"
|
|
data-bs-dismiss="toast"/>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</odoo>
|
|
|