538 lines
34 KiB
XML
538 lines
34 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
<!-- Template pour la liste des partenaires frères -->
|
|
<template id="portal_my_siblings" name="My Related Partners">
|
|
<t t-call="portal.portal_layout">
|
|
<div class="o_portal_my_home">
|
|
<div class="oe_structure" />
|
|
|
|
<!-- Page title -->
|
|
<div class="o_portal_my_details">
|
|
<h3 class="page-header">
|
|
Related Partners
|
|
</h3>
|
|
|
|
<!-- Success message after update -->
|
|
<t t-if="request.params.get('update') == 'success'">
|
|
<div class="alert alert-success alert-dismissible fade show" role="alert">
|
|
<i class="fa fa-check mr-2"></i> Related company information has been successfully updated.
|
|
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
|
|
<span aria-hidden="true">&times;</span>
|
|
</button>
|
|
</div>
|
|
</t>
|
|
|
|
<!-- Display sibling partners information -->
|
|
<t t-if="sibling_partners">
|
|
<div class="o_portal_sibling_partners">
|
|
<div class="row">
|
|
<!-- Boucle sur les partenaires frères -->
|
|
<t t-foreach="sibling_partners" t-as="sibling">
|
|
<!-- Conteneur pour chaque partenaire frère avec data-sibling-id -->
|
|
<div class="col-lg-4 col-md-6 mb-4" t-att-data-sibling-id="sibling.id">
|
|
<div class="card h-100">
|
|
<div class="card-header bg-primary text-white">
|
|
<h5 class="mb-0">
|
|
<i class="fa fa-building mr-2"></i> <t t-esc="sibling.name"/>
|
|
</h5>
|
|
</div>
|
|
<div class="card-body d-flex flex-column">
|
|
<div class="mb-3">
|
|
<strong>Type:</strong> <span t-field="sibling.type" t-options="{'widget': 'selection'}"/>
|
|
</div>
|
|
<div t-if="sibling.type != 'contact'" class="mb-3">
|
|
<strong>Address:</strong>
|
|
<div t-field="sibling.contact_address"/>
|
|
</div>
|
|
<div class="mb-3">
|
|
<strong>Phone:</strong> <span t-field="sibling.phone"/>
|
|
</div>
|
|
<div class="mb-3">
|
|
<strong>Email:</strong> <span t-field="sibling.email"/>
|
|
</div>
|
|
<div t-if="sibling.type != 'contact'" class="mb-3">
|
|
<strong>Website:</strong> <span t-field="sibling.website"/>
|
|
</div>
|
|
<div class="mt-auto text-center">
|
|
<t t-if="can_edit">
|
|
<a t-att-href="'/my/siblings/edit/%s' % sibling.id" class="btn btn-primary">
|
|
<i class="fa fa-pencil mr-1"></i> Edit
|
|
</a>
|
|
</t>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
<t t-else="">
|
|
<div class="alert alert-info">
|
|
<p>No related partners found.</p>
|
|
</div>
|
|
</t>
|
|
</div>
|
|
<div class="oe_structure" />
|
|
</div>
|
|
</t>
|
|
</template>
|
|
|
|
<!-- Template pour l'édition d'un partenaire frère -->
|
|
<template id="portal_my_siblings_edit" name="Edit Related Partner">
|
|
<t t-call="portal.portal_layout">
|
|
<div class="o_portal_my_home">
|
|
<div class="oe_structure" />
|
|
|
|
<!-- Page title -->
|
|
<div class="o_portal_my_details">
|
|
<h3 class="page-header">
|
|
Edit Related Partner: <span t-field="sibling.name"/>
|
|
</h3>
|
|
|
|
<!-- Error message -->
|
|
<t t-if="error">
|
|
<div class="alert alert-danger alert-dismissible fade show" role="alert">
|
|
<i class="fa fa-exclamation-triangle mr-2"></i> <t t-esc="error"/>
|
|
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
|
|
<span aria-hidden="true">&times;</span>
|
|
</button>
|
|
</div>
|
|
</t>
|
|
|
|
<!-- Form for editing sibling partner -->
|
|
<form action="/my/siblings/update" method="post" class="mt-4 o_portal_details">
|
|
<input type="hidden" name="sibling_id" t-att-value="sibling.id"/>
|
|
<input type="hidden" name="csrf_token" t-att-value="request.csrf_token()"/>
|
|
|
|
<div class="card">
|
|
<div class="card-header bg-primary text-white">
|
|
<h5 class="mb-0">
|
|
<i class="fa fa-building mr-2"></i> Related Company Information
|
|
</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="row">
|
|
<div class="col-lg-6">
|
|
<div class="form-group">
|
|
<label for="type">Contact Type</label>
|
|
<select class="form-control" name="type" id="type" onchange="toggleAddressFields(this.value)">
|
|
<option value="contact" t-att-selected="sibling.type == 'contact'">Contact</option>
|
|
<option value="invoice" t-att-selected="sibling.type == 'invoice'">Invoice Address</option>
|
|
<option value="delivery" t-att-selected="sibling.type == 'delivery'">Delivery Address</option>
|
|
<option value="other" t-att-selected="sibling.type == 'other'">Other Address</option>
|
|
</select>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="name">Name</label>
|
|
<input type="text" class="form-control" name="name" id="name" t-att-value="sibling.name" required="required"/>
|
|
</div>
|
|
<div class="form-group address-field">
|
|
<label for="street">Street</label>
|
|
<input type="text" class="form-control" name="street" id="street" t-att-value="sibling.street"/>
|
|
</div>
|
|
<div class="form-group address-field">
|
|
<label for="street2">Street 2</label>
|
|
<input type="text" class="form-control" name="street2" id="street2" t-att-value="sibling.street2"/>
|
|
</div>
|
|
<div class="form-group address-field">
|
|
<label for="city">City</label>
|
|
<input type="text" class="form-control" name="city" id="city" t-att-value="sibling.city"/>
|
|
</div>
|
|
<div class="form-group address-field">
|
|
<label for="zip">ZIP</label>
|
|
<input type="text" class="form-control" name="zip" id="zip" t-att-value="sibling.zip"/>
|
|
</div>
|
|
</div>
|
|
<div class="col-lg-6">
|
|
<!-- Champ pays avec data-sibling-id pour le JS -->
|
|
<div class="form-group address-field">
|
|
<label for="sibling_country_id">Country</label>
|
|
<select class="form-control" t-att-name="'sibling_country_id_' + str(sibling.id)" id="sibling_country_id">
|
|
<option value="">Country...</option>
|
|
<t t-foreach="countries" t-as="country">
|
|
<option t-att-value="country.id" t-att-selected="country.id == sibling.country_id.id">
|
|
<t t-esc="country.name"/>
|
|
</option>
|
|
</t>
|
|
</select>
|
|
</div>
|
|
<!-- Champ état/province avec data-sibling-id pour le JS -->
|
|
<div class="form-group address-field">
|
|
<label for="sibling_state_id">State/Province</label>
|
|
<select class="form-control" t-att-name="'sibling_state_id_' + str(sibling.id)" id="sibling_state_id">
|
|
<option value="">State/Province...</option>
|
|
<t t-foreach="states" t-as="state">
|
|
<option t-att-value="state.id"
|
|
t-att-data-country_id="state.country_id.id"
|
|
t-att-selected="state.id == sibling.state_id.id">
|
|
<t t-esc="state.name"/>
|
|
</option>
|
|
</t>
|
|
</select>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="phone">Phone</label>
|
|
<input type="tel" class="form-control" name="phone" id="phone" t-att-value="sibling.phone"/>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="email">Email</label>
|
|
<input type="email" class="form-control" name="email" id="email" t-att-value="sibling.email"/>
|
|
</div>
|
|
<div class="form-group website-field">
|
|
<label for="website">Website</label>
|
|
<input type="url" class="form-control" name="website" id="website" t-att-value="sibling.website"/>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="card-footer">
|
|
<div class="d-flex justify-content-between">
|
|
<a href="/my/siblings" class="btn btn-secondary">
|
|
<i class="fa fa-arrow-left mr-1"></i> Cancel
|
|
</a>
|
|
<button type="submit" class="btn btn-primary">
|
|
<i class="fa fa-save mr-1"></i> Save
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
<div class="oe_structure" />
|
|
</div>
|
|
</t>
|
|
</template>
|
|
|
|
<!-- Template pour l'édition du partenaire parent -->
|
|
<template id="portal_my_parent_company" name="My Parent Company">
|
|
<t t-call="portal.portal_layout">
|
|
<div class="o_portal_my_home">
|
|
<div class="oe_structure" />
|
|
|
|
<!-- Page title -->
|
|
<div class="o_portal_my_details">
|
|
<h3 class="page-header">
|
|
<t t-if="parent_company">
|
|
Parent Company: <span t-field="parent_company.name"/>
|
|
</t>
|
|
<t t-else="">
|
|
Parent Company
|
|
</t>
|
|
</h3>
|
|
|
|
<!-- Success message after update -->
|
|
<t t-if="request.params.get('update') == 'success'">
|
|
<div class="alert alert-success alert-dismissible fade show" role="alert">
|
|
<i class="fa fa-check mr-2"></i> Parent company information has been successfully updated.
|
|
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
|
|
<span aria-hidden="true">&times;</span>
|
|
</button>
|
|
</div>
|
|
</t>
|
|
|
|
<!-- Display parent company information -->
|
|
<t t-if="parent_company">
|
|
<div class="row mt-4">
|
|
<div class="col-lg-12">
|
|
<div class="card">
|
|
<div class="card-header bg-primary text-white">
|
|
<h5 class="mb-0">
|
|
<i class="fa fa-building mr-2"></i> Parent Company Information
|
|
<t t-if="can_edit">
|
|
<a href="/my/parent/edit" class="btn btn-sm btn-light float-right">
|
|
<i class="fa fa-pencil"></i> Edit
|
|
</a>
|
|
</t>
|
|
</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="row">
|
|
<div class="col-lg-6">
|
|
<div class="mb-3">
|
|
<strong>Name:</strong> <span t-field="parent_company.name"/>
|
|
</div>
|
|
<div class="mb-3">
|
|
<strong>Address:</strong>
|
|
<div t-field="parent_company.contact_address"/>
|
|
</div>
|
|
<div class="mb-3">
|
|
<strong>Phone:</strong> <span t-field="parent_company.phone"/>
|
|
</div>
|
|
</div>
|
|
<div class="col-lg-6">
|
|
<div class="mb-3">
|
|
<strong>Email:</strong> <span t-field="parent_company.email"/>
|
|
</div>
|
|
<div class="mb-3">
|
|
<strong>Website:</strong> <span t-field="parent_company.website"/>
|
|
</div>
|
|
<div class="mb-3">
|
|
<strong>Relationship:</strong> Parent Company
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
<t t-else="">
|
|
<div class="alert alert-info">
|
|
<p>No parent company found.</p>
|
|
</div>
|
|
</t>
|
|
</div>
|
|
<div class="oe_structure" />
|
|
</div>
|
|
</t>
|
|
</template>
|
|
|
|
<!-- Template pour l'édition du partenaire parent -->
|
|
<template id="portal_my_parent_edit" name="Edit Parent Company">
|
|
<t t-call="portal.portal_layout">
|
|
<div class="o_portal_my_home">
|
|
<div class="oe_structure" />
|
|
|
|
<!-- Page title -->
|
|
<div class="o_portal_my_details">
|
|
<h3 class="page-header">
|
|
Edit Parent Company: <span t-field="parent_company.name"/>
|
|
</h3>
|
|
|
|
<!-- Error message -->
|
|
<t t-if="error">
|
|
<div class="alert alert-danger alert-dismissible fade show" role="alert">
|
|
<i class="fa fa-exclamation-triangle mr-2"></i> <t t-esc="error"/>
|
|
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
|
|
<span aria-hidden="true">&times;</span>
|
|
</button>
|
|
</div>
|
|
</t>
|
|
|
|
<!-- Form for editing parent company -->
|
|
<form action="/my/parent/update" method="post" class="mt-4 o_portal_parent_company">
|
|
<input type="hidden" name="csrf_token" t-att-value="request.csrf_token()"/>
|
|
|
|
<div class="card">
|
|
<div class="card-header bg-primary text-white">
|
|
<h5 class="mb-0">
|
|
<i class="fa fa-building mr-2"></i> Parent Company Information
|
|
</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="row">
|
|
<div class="col-lg-6">
|
|
<div class="form-group">
|
|
<label for="name">Name</label>
|
|
<input type="text" class="form-control" name="name" id="name" t-att-value="parent_company.name" required="required"/>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="street">Street</label>
|
|
<input type="text" class="form-control" name="street" id="street" t-att-value="parent_company.street"/>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="street2">Street 2</label>
|
|
<input type="text" class="form-control" name="street2" id="street2" t-att-value="parent_company.street2"/>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="city">City</label>
|
|
<input type="text" class="form-control" name="city" id="city" t-att-value="parent_company.city"/>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="zip">ZIP</label>
|
|
<input type="text" class="form-control" name="zip" id="zip" t-att-value="parent_company.zip"/>
|
|
</div>
|
|
</div>
|
|
<div class="col-lg-6">
|
|
<!-- Champ pays pour le partenaire parent -->
|
|
<div class="form-group">
|
|
<label for="parent_country_id">Country</label>
|
|
<select class="form-control" name="parent_country_id" id="parent_country_id">
|
|
<option value="">Country...</option>
|
|
<t t-foreach="countries" t-as="country">
|
|
<option t-att-value="country.id" t-att-selected="country.id == parent_company.country_id.id">
|
|
<t t-esc="country.name"/>
|
|
</option>
|
|
</t>
|
|
</select>
|
|
</div>
|
|
<!-- Champ état/province pour le partenaire parent -->
|
|
<div class="form-group">
|
|
<label for="parent_state_id">State/Province</label>
|
|
<select class="form-control" name="parent_state_id" id="parent_state_id">
|
|
<option value="">State/Province...</option>
|
|
<t t-foreach="states" t-as="state">
|
|
<option t-att-value="state.id"
|
|
t-att-data-country_id="state.country_id.id"
|
|
t-att-selected="state.id == parent_company.state_id.id">
|
|
<t t-esc="state.name"/>
|
|
</option>
|
|
</t>
|
|
</select>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="phone">Phone</label>
|
|
<input type="tel" class="form-control" name="phone" id="phone" t-att-value="parent_company.phone"/>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="email">Email</label>
|
|
<input type="email" class="form-control" name="email" id="email" t-att-value="parent_company.email"/>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="website">Website</label>
|
|
<input type="url" class="form-control" name="website" id="website" t-att-value="parent_company.website"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="card-footer">
|
|
<div class="d-flex justify-content-between">
|
|
<a href="/my/parent" class="btn btn-secondary">
|
|
<i class="fa fa-arrow-left mr-1"></i> Cancel
|
|
</a>
|
|
<button type="submit" class="btn btn-primary">
|
|
<i class="fa fa-save mr-1"></i> Save
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
<div class="oe_structure" />
|
|
</div>
|
|
</t>
|
|
</template>
|
|
|
|
<!-- Adding links in the portal menu -->
|
|
<template id="portal_my_home_menu_siblings" name="Portal Menu: siblings entry" inherit_id="portal.portal_breadcrumbs" priority="35">
|
|
<xpath expr="//ol[hasclass('o_portal_submenu')]" position="inside">
|
|
<li t-if="page_name == 'siblings' or page_name == 'sibling_edit'" class="breadcrumb-item">
|
|
<a t-if="page_name != 'siblings'" t-attf-href="/my/siblings">Related Partners</a>
|
|
<t t-else="">Related Partners</t>
|
|
</li>
|
|
<li t-if="page_name == 'sibling_edit'" class="breadcrumb-item active">
|
|
Edit
|
|
</li>
|
|
<li t-if="page_name == 'parent' or page_name == 'parent_edit'" class="breadcrumb-item">
|
|
<a t-if="page_name != 'parent'" t-attf-href="/my/parent">Parent Company</a>
|
|
<t t-else="">Parent Company</t>
|
|
</li>
|
|
<li t-if="page_name == 'parent_edit'" class="breadcrumb-item active">
|
|
Edit
|
|
</li>
|
|
</xpath>
|
|
</template>
|
|
|
|
<!-- Template for adding a new sibling partner -->
|
|
<template id="portal_my_siblings_add" name="Add Related Partner">
|
|
<t t-call="portal.portal_layout">
|
|
<div class="o_portal_my_home">
|
|
<div class="oe_structure" />
|
|
|
|
<!-- Page title -->
|
|
<div class="o_portal_my_details">
|
|
<h3 class="page-header">
|
|
Add Related Partner
|
|
</h3>
|
|
|
|
<form action="/my/siblings/create" method="post" class="mt-4 o_portal_details">
|
|
<input type="hidden" name="csrf_token" t-att-value="request.csrf_token()"/>
|
|
|
|
<div class="card">
|
|
<div class="card-header bg-primary text-white">
|
|
<h5 class="mb-0">
|
|
<i class="fa fa-building-o mr-2"></i> New Related Partner Information
|
|
</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="row">
|
|
<div class="col-lg-6">
|
|
<div class="form-group">
|
|
<label for="type">Contact Type</label>
|
|
<select class="form-control" name="type" id="type" onchange="toggleAddressFields(this.value)">
|
|
<option value="contact" selected="selected">Contact</option>
|
|
<option value="invoice">Invoice Address</option>
|
|
<option value="delivery">Delivery Address</option>
|
|
<option value="other">Other Address</option>
|
|
</select>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="name">Name</label>
|
|
<input type="text" class="form-control" name="name" id="name" required="required"/>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="phone">Phone</label>
|
|
<input type="tel" class="form-control" name="phone" id="phone"/>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="mobile">Mobile</label>
|
|
<input type="tel" class="form-control" name="mobile" id="mobile"/>
|
|
</div>
|
|
<div class="form-group address-field">
|
|
<label for="street">Street</label>
|
|
<input type="text" class="form-control" name="street" id="street"/>
|
|
</div>
|
|
<div class="form-group address-field">
|
|
<label for="street2">Street 2</label>
|
|
<input type="text" class="form-control" name="street2" id="street2"/>
|
|
</div>
|
|
</div>
|
|
<div class="col-lg-6">
|
|
<div class="form-group address-field">
|
|
<label for="city">City</label>
|
|
<input type="text" class="form-control" name="city" id="city"/>
|
|
</div>
|
|
<div class="form-group address-field">
|
|
<label for="zip">ZIP</label>
|
|
<input type="text" class="form-control" name="zip" id="zip"/>
|
|
</div>
|
|
<div class="form-group address-field">
|
|
<label for="country_id">Country</label>
|
|
<select class="form-control" name="country_id" id="country_id">
|
|
<option value="">Select a country...</option>
|
|
<t t-foreach="countries" t-as="country">
|
|
<option t-att-value="country.id"><t t-esc="country.name"/></option>
|
|
</t>
|
|
</select>
|
|
</div>
|
|
<div class="form-group address-field">
|
|
<label for="state_id">State/Province</label>
|
|
<select class="form-control" name="state_id" id="state_id">
|
|
<option value="">Select a state...</option>
|
|
<t t-foreach="states" t-as="state">
|
|
<option t-att-value="state.id" t-att-data-country-id="state.country_id.id"><t t-esc="state.name"/></option>
|
|
</t>
|
|
</select>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="email">Email</label>
|
|
<input type="email" class="form-control" name="email" id="email"/>
|
|
</div>
|
|
<div class="form-group website-field">
|
|
<label for="website">Website</label>
|
|
<input type="url" class="form-control" name="website" id="website"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="card-footer">
|
|
<div class="d-flex justify-content-between">
|
|
<a href="/my/siblings" class="btn btn-secondary">
|
|
<i class="fa fa-arrow-left mr-1"></i> Cancel
|
|
</a>
|
|
<button type="submit" class="btn btn-primary">
|
|
<i class="fa fa-save mr-1"></i> Create
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
<div class="oe_structure" />
|
|
</div>
|
|
</t>
|
|
</template>
|
|
</odoo>
|