The default image for the lunch product should be the one from the category (added an image on the categories). In case there is no image either on the product either on the category, in the kanban view there should be a specific image (fork and knife image) Added some data in order to always have something displayed in the kanban view Fixed the layout of the dashboard Bug fix, in `_check_wallet` there was a flush missing Bug fix, `product_id` should be a many2one, not an integer field and the orm should be used in order to avoid problems when favoriting products This is a back2basics task Task 2048246 closes odoo/odoo#35632 Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
192 lines
9.0 KiB
XML
192 lines
9.0 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
<data>
|
|
<record id="lunch_location_main" model="lunch.location">
|
|
<field name="name">HQ Office</field>
|
|
</record>
|
|
|
|
<record model="lunch.product.category" id="categ_sandwich">
|
|
<field name="name">Sandwich</field>
|
|
</record>
|
|
|
|
<record id="categ_pizza" model="lunch.product.category">
|
|
<field name="name">Pizza</field>
|
|
<field name="image_1920" type="base64" file="lunch/static/img/pizza.png"/>
|
|
</record>
|
|
|
|
<record id="categ_burger" model="lunch.product.category">
|
|
<field name="name">Burger</field>
|
|
<field name="image_1920" type="base64" file="lunch/static/img/burger.png"/>
|
|
</record>
|
|
|
|
<record id="categ_drinks" model="lunch.product.category">
|
|
<field name="name">Drinks</field>
|
|
<field name="image_1920" type="base64" file="lunch/static/img/drink.png"/>
|
|
</record>
|
|
|
|
<record id="partner_hungry_dog" model="res.partner">
|
|
<field name="name">Lunch Supplier</field>
|
|
</record>
|
|
|
|
<record id="supplier_hungry_dog" model="lunch.supplier">
|
|
<field name="partner_id" ref="partner_hungry_dog"/>
|
|
<field name="available_location_ids" eval="[
|
|
(6, 0, [ref('lunch_location_main')]),
|
|
]"/>
|
|
</record>
|
|
|
|
<record id="lunch_order_action_confirm" model="ir.actions.server">
|
|
<field name="name">Lunch: Receive meals</field>
|
|
<field name="model_id" ref="model_lunch_order"/>
|
|
<field name="binding_model_id" ref="model_lunch_order"/>
|
|
<field name="binding_view_types">list</field>
|
|
<field name="state">code</field>
|
|
<field name="code">records.action_confirm()</field>
|
|
</record>
|
|
|
|
<record id="lunch_order_action_cancel" model="ir.actions.server">
|
|
<field name="name">Lunch: Cancel meals</field>
|
|
<field name="model_id" ref="model_lunch_order"/>
|
|
<field name="binding_model_id" ref="model_lunch_order"/>
|
|
<field name="binding_view_types">list</field>
|
|
<field name="state">code</field>
|
|
<field name="code">records.action_cancel()</field>
|
|
</record>
|
|
</data>
|
|
<data noupdate="0">
|
|
<record id="lunch_order_mail_supplier" model="mail.template">
|
|
<field name="name">Lunch: Send by email</field>
|
|
<field name="model_id" ref="lunch.model_lunch_supplier"/>
|
|
<field name="email_from">${ctx['order']['email_from'] |safe}</field>
|
|
<field name="partner_to">${ctx['order']['supplier_id']}</field>
|
|
<field name="subject">Orders for ${ctx['order']['company_name']}</field>
|
|
<field name="body_html" type="html">
|
|
<table border="0" cellpadding="0" cellspacing="0" style="padding-top: 16px; background-color: #F1F1F1; font-family:Verdana, Arial,sans-serif; color: #454748; width: 100%; border-collapse:separate;"><tr><td align="center">
|
|
<table border="0" cellpadding="0" cellspacing="0" width="590" style="padding: 16px; background-color: white; color: #454748; border-collapse:separate;">
|
|
<tbody>
|
|
<!-- HEADER -->
|
|
<tr>
|
|
<td align="center" style="min-width: 590px;">
|
|
<table border="0" cellpadding="0" cellspacing="0" width="590" style="min-width: 590px; background-color: white; padding: 0px 8px 0px 8px; border-collapse:separate;">
|
|
<tr><td valign="middle">
|
|
<span style="font-size: 10px;">Lunch Order</span><br/>
|
|
</td><td valign="middle" align="right">
|
|
<img src="/logo.png?company=${user.company_id.id}" style="padding: 0px; margin: 0px; height: auto; width: 80px;" t-att-alt="'%s' % company.name"/>
|
|
</td></tr>
|
|
<tr><td colspan="2" style="text-align:center;">
|
|
<hr width="100%" style="background-color:rgb(204,204,204);border:medium none;clear:both;display:block;font-size:0px;min-height:1px;line-height:0; margin:16px 0px 16px 0px;"/>
|
|
</td></tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<!-- CONTENT -->
|
|
<tr>
|
|
<td align="center" style="min-width: 590px;">
|
|
<table border="0" cellpadding="0" cellspacing="0" width="590" style="min-width: 590px; background-color: white; padding: 0px 8px 0px 8px; border-collapse:separate;">
|
|
<tr>
|
|
<td valign="top" style="font-size: 13px;">
|
|
<div>
|
|
% set lines = ctx['lines']
|
|
% set order = ctx['order']
|
|
% set supplier = user.env['res.partner'].browse(order['supplier_id'])
|
|
% set currency = user.env['res.currency'].browse(order['currency_id'])
|
|
<p>
|
|
Dear ${order['supplier_name']},
|
|
</p><p>
|
|
Here is, today orders for ${order['company_name']}:
|
|
</p>
|
|
|
|
<table>
|
|
<thead>
|
|
<tr style="background-color:rgb(233,232,233);">
|
|
<th style="width: 100%; min-width: 96px; font-size: 13px;"><strong>Product</strong></th>
|
|
<th style="width: 100%; min-width: 96px; font-size: 13px;"><strong>Comments</strong></th>
|
|
<th style="width: 100%; min-width: 96px; font-size: 13px;"><strong>Person</strong></th>
|
|
<th style="width: 100%; min-width: 96px; font-size: 13px;" align="center"><strong>Qty</strong></th>
|
|
<th style="width: 100%; min-width: 96px; font-size: 13px;" align="center"><strong>Price</strong></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
% for line in lines
|
|
<tr>
|
|
<td style="width: 100%; font-size: 13px;" valign="top">${line['product']}</td>
|
|
<td style="width: 100%; font-size: 13px;" valign="top">
|
|
% if line['toppings']:
|
|
${line['toppings']}
|
|
% endif
|
|
% if line['note']:
|
|
<div style="color: rgb(173,181,189);">${line['note']}</div>
|
|
% endif
|
|
</td>
|
|
<td style="width: 100%; font-size: 13px;" valign="top">${line['username']}</td>
|
|
<td style="width: 100%; font-size: 13px;" valign="top" align="right">${line['quantity']}</td>
|
|
<td style="width: 100%; font-size: 13px;" valign="top" align="right">${format_amount(line['price'], currency)}</td>
|
|
</tr>
|
|
% endfor
|
|
<tr>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td style="width: 100%; font-size: 13px; border-top: 1px solid black;"><strong>Total</strong></td>
|
|
<td style="width: 100%; font-size: 13px; border-top: 1px solid black;" align="right"><strong>${format_amount(order['amount_total'], currency)}</strong></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<p>Do not hesitate to contact us if you have any questions.</p>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align:center;">
|
|
<hr width="100%" style="background-color:rgb(204,204,204);border:medium none;clear:both;display:block;font-size:0px;min-height:1px;line-height:0; margin: 16px 0px 16px 0px;"/>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<!-- FOOTER -->
|
|
<tr>
|
|
<td align="center" style="min-width: 590px;">
|
|
<table border="0" cellpadding="0" cellspacing="0" width="590" style="min-width: 590px; background-color: white; font-size: 11px; padding: 0px 8px 0px 8px; border-collapse:separate;">
|
|
<tr><td valign="middle" align="left">
|
|
${user.company_id.name}
|
|
</td></tr>
|
|
<tr><td valign="middle" align="left" style="opacity: 0.7;">
|
|
${user.company_id.phone}
|
|
% if user.company_id.phone and (user.company_id.email or user.company_id.website)
|
|
|
|
|
% endif
|
|
% if user.company_id.email
|
|
<a href="'mailto:%s' % ${user.company_id.email}" style="text-decoration:none; color: #454748;">${user.company_id.email}</a>
|
|
% endif
|
|
% if user.company_id.email and user.company_id.website
|
|
|
|
|
% endif
|
|
% if user.company_id.website
|
|
<a href="'%s' % ${user.company_id.website}" style="text-decoration:none; color: #454748;">
|
|
${user.company_id.website}
|
|
</a>
|
|
% endif
|
|
</td></tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</td></tr>
|
|
<!-- POWERED BY -->
|
|
<tr><td align="center" style="min-width: 590px;">
|
|
<table border="0" cellpadding="0" cellspacing="0" width="590" style="min-width: 590px; background-color: #F1F1F1; color: #454748; padding: 8px; border-collapse:separate;">
|
|
<tr><td style="text-align: center; font-size: 13px;">
|
|
Powered by <a target="_blank" href="https://www.odoo.com" style="color: #875A7B;">Odoo</a>
|
|
</td></tr>
|
|
</table>
|
|
</td></tr>
|
|
</table>
|
|
</field>
|
|
</record>
|
|
|
|
</data>
|
|
</odoo>
|