This question has been flagged
1 Reply
1670 Views

How can I add the repair orders to the portal users view?
The only thing that appears right now are the help desk tickets.

Avatar
Discard
Best Answer

Hi

You need to create a controller for passing the data :

module_name.py




from odoo import http
from odoo.http import request
class RepairOrder(http.Controller):
@http.route(['/repair/order], type="http", auth="public", website=True)
def maintenance_report(self, **kw):
repair_order = request.env['repair.order'].sudo().search([])
values = {
'datas': repair_order,}
return request.render("portal_users.repair_order_page", values)

class MyPortal(CustomerPortal):

    def _prepare_home_portal_values(self, counters):

        values = super()._prepare_home_portal_values(counters)

        partner = request.env.user.partner_id

        repair_count = request.env['repair.order'].sudo().search_count([('employee_id',

                                                             '=', partner.id)])

        values['repair_count'] = repair_count

        return values


Templates:

<template id="repair_order_page" name="Repair Order">
      <t t-call="website.layout">
      <t t-set="breadcrumbs_searchbar" t-value="True"/>
      <form>
      <div id="wrap_maintenance">
      <div>
        <center>
            <h1 style="margin: 20px;">
              <b>Repair Order</b>
            </h1>
        </center>
      </div>
      <table class="table table-sm table-reports" style="border:1px solid black;">
      <thead>
          <tr>
              <th colspan="6" class="text-left">Order</th>
              <th colspan="6" class="text-center">Reference</th>

         </tr>
     </thead>
     <tbody class="text-left">
        <t>
           <tr class="report_table" t-foreach="datas" t-as="main">
           <input id="main_id" type="hidden" t-att-value="main.id"/>
 
         <td colspan="6">
              <span id="main_ref" t-esc="main[id]"/>
           </td>
           <td colspan="6">
              <span id="main_name t-esc="main['name']"/>
           </td>
           </tr>
        </t>
   </tbody>
   </table>
</div>
</form>
</t>
</template>

you can add the CSS for each class


For more reference, you can refer to the Blog: https://www.cybrosys.com/blog/how-to-create-a-custom-report-in-odoo-15-portal-view" target="_blank">https://www.cybrosys.com/blog/how-to-create-a-custom-report-in-odoo-15-portal-view

or you can refer to the related apps: https://apps.odoo.com/apps/modules/16.0/website_portal_events/" target="_blank">https://apps.odoo.com/apps/modules/16.0/website_portal_events/
href="https://apps.odoo.com/apps/modules/16.0/vendor_portal_odoo/" target="_blank">https://apps.odoo.com/apps/modules/16.0/vendor_portal_odoo/



Hope it helps

Avatar
Discard