feat: Comprehensive UI/UX improvements for Purchase Request module

This commit is contained in:
maltayyar2 2025-11-20 17:23:45 +03:00
parent 7cd394b931
commit 78e3917283
3 changed files with 25 additions and 10 deletions

View File

@ -2397,7 +2397,7 @@ msgstr "عدد الرسائل غير المقروءة"
#. module: purchase_requisition_custom #. module: purchase_requisition_custom
#: model:ir.model.fields,field_description:purchase_requisition_custom.field_purchase_request__use_analytic #: model:ir.model.fields,field_description:purchase_requisition_custom.field_purchase_request__use_analytic
msgid "Use Analytic" msgid "Use Analytic"
msgstr "استخدام حساب تحليلى (بند موازنة) اخر" msgstr "حساب تحليلي آخر؟"
#. module: purchase_requisition_custom #. module: purchase_requisition_custom
#: model:ir.model.fields,field_description:purchase_requisition_custom.field_purchase_requisition__is_analytic #: model:ir.model.fields,field_description:purchase_requisition_custom.field_purchase_requisition__is_analytic
@ -2991,6 +2991,16 @@ msgstr "المورد المقترح لهذا الطلب"
msgid "Analytic account for budget tracking" msgid "Analytic account for budget tracking"
msgstr "الحساب التحليلي لتتبع الموازنة" msgstr "الحساب التحليلي لتتبع الموازنة"
#. module: purchase_requisition_custom
#: model_terms:ir.ui.view,arch_db:purchase_requisition_custom.purchase_request_form
msgid "Other Details"
msgstr "تفاصيل أخرى"
#. module: purchase_requisition_custom
#: model_terms:ir.ui.view,arch_db:purchase_requisition_custom.purchase_request_form
msgid "Warehouse Management"
msgstr "إدارة المستودعات"
#. module: purchase_requisition_custom #. module: purchase_requisition_custom
#: model_terms:ir.ui.view,arch_db:purchase_requisition_custom.purchase_request_form #: model_terms:ir.ui.view,arch_db:purchase_requisition_custom.purchase_request_form
msgid "Request Lines" msgid "Request Lines"

View File

@ -83,20 +83,22 @@
<field name="purchase_purpose" required="1" <field name="purchase_purpose" required="1"
attrs="{'readonly':[('state' , '!=' , 'draft')]}" attrs="{'readonly':[('state' , '!=' , 'draft')]}"
placeholder="Enter purchase request justifications..."/> placeholder="Enter purchase request justifications..."/>
</group>
<group string="Vendor and Accounting">
<field name="partner_id" <field name="partner_id"
domain="[('supplier_rank','>', 0)]" domain="[('supplier_rank','>', 0)]"
options="{'no_create' : True , 'no_edit' : True ,'no_open' : True}" options="{'no_create' : True , 'no_edit' : True ,'no_open' : True}"
attrs="{'readonly':['|',('edit_partner_id' , '=' , False),('state' , '!=' , 'waiting')]}" attrs="{'readonly':['|',('edit_partner_id' , '=' , False),('state' , '!=' , 'waiting')]}"
help="Suggested vendor for this purchase request"/> help="Suggested vendor for this purchase request"/>
</group>
<group string="Other Details">
<field name="use_analytic"/> <field name="use_analytic"/>
<field name="account_analytic_id" <field name="account_analytic_id"
options="{'no_create' : True , 'no_edit' : True ,'no_open' : True}" options="{'no_create' : True , 'no_edit' : True ,'no_open' : True}"
attrs="{'invisible':[('use_analytic' , '=' , False)],'required':[('use_analytic' , '=' , True)],'readonly':[('state' , '!=' , 'draft')]}" attrs="{'invisible':[('use_analytic' , '=' , False)],'required':[('use_analytic' , '=' , True)],'readonly':[('state' , '!=' , 'draft')]}"
help="Analytic account for budget tracking"/> help="Analytic account for budget tracking"/>
</group> </group>
<field name="picking_type_id" invisible="1"/> <group string="Warehouse Management">
<field name="picking_type_id"/>
</group>
<field name="purchase_create" invisible="1"/> <field name="purchase_create" invisible="1"/>
<field name="company_id" invisible="1"/> <field name="company_id" invisible="1"/>
<field name="edit_partner_id" invisible="1"/> <field name="edit_partner_id" invisible="1"/>
@ -151,7 +153,8 @@
<field name="state" string="State" widget="badge" <field name="state" string="State" widget="badge"
decoration-muted="state == 'draft'" decoration-muted="state == 'draft'"
decoration-warning="state in ['direct_manager', 'wait_for_send']" decoration-warning="state in ['direct_manager', 'wait_for_send']"
decoration-info="state in ['waiting', 'warehouse', 'initial', 'employee']" decoration-info="state in ['waiting', 'warehouse', 'initial']"
decoration-primary="state == 'employee'"
decoration-success="state == 'done'" decoration-success="state == 'done'"
decoration-danger="state in ['cancel', 'refuse']"/> decoration-danger="state in ['cancel', 'refuse']"/>
<field name="purchase_state_summary" optional="show" widget="badge" string="Purchase State"/> <field name="purchase_state_summary" optional="show" widget="badge" string="Purchase State"/>

View File

@ -181,13 +181,13 @@
<!-- attrs="{'invisible':['|',('requisition_id','=',False),'|','&amp;',('requisition_type_exclusive', '!=','exclusive'),('is_purchase_budget','=',False),('state','not in',('to approve'))]}"/>--> <!-- attrs="{'invisible':['|',('requisition_id','=',False),'|','&amp;',('requisition_type_exclusive', '!=','exclusive'),('is_purchase_budget','=',False),('state','not in',('to approve'))]}"/>-->
<button type="object" name="action_approve_po" string="Confirm Purchase" class="oe_highlight" invisible="1"/> <button type="object" name="action_approve_po" string="Confirm Purchase" class="oe_highlight" invisible="1"/>
<button type="object" name="action_select" groups="purchase_requisition_custom.committe_member" <button type="object" name="action_select" groups="purchase_requisition_custom.committe_member"
attrs="{'invisible':['|', ('state','in',['done','purchase','waiting','cancel']),('can_committee_vote', '=', False)]}" attrs="{'invisible':['|', ('state','in',['done','purchase','waiting','cancel']),('can_committee_vote', '=', False)]}"
string="Select"/> string="Select" class="btn-primary"/>
<button type="object" name="action_refuse" groups="purchase_requisition_custom.committe_member" <button type="object" name="action_refuse" groups="purchase_requisition_custom.committe_member"
attrs="{'invisible':['|',('state','in',['done','purchase','waiting','cancel']),('can_committee_vote', '=', False)]}" attrs="{'invisible':['|',('state','in',['done','purchase','waiting','cancel']),('can_committee_vote', '=', False)]}"
string="Refuse"/> string="Refuse" class="btn-danger"/>
<button type="object" name="action_recommend" <button type="object" name="action_recommend"
groups="purchase_requisition_custom.group_select_recommended_offer" groups="purchase_requisition_custom.group_select_recommended_offer"
confirm="Are you sure you want to process ?" confirm="Are you sure you want to process ?"
@ -203,7 +203,8 @@
attrs="{'invisible':[('hide_action_budget_button', '=', True)]}"/> attrs="{'invisible':[('hide_action_budget_button', '=', True)]}"/>
<button name="action_skip_budget" type="object" string="Skip Budget" <button name="action_skip_budget" type="object" string="Skip Budget"
attrs="{'invisible':[('hide_action_budget_button', '=', True)]}" attrs="{'invisible':[('hide_action_budget_button', '=', True)]}"
groups="purchase_requisition_custom.group_skip_purchase_budget"/> groups="purchase_requisition_custom.group_skip_purchase_budget"
class="btn-warning"/>
<!-- <button name="button_draft" states="cancel" string="Set to Draft" type="object"/>--> <!-- <button name="button_draft" states="cancel" string="Set to Draft" type="object"/>-->
</xpath> </xpath>
<xpath expr="//button[@name='button_approve']" position="replace"> <xpath expr="//button[@name='button_approve']" position="replace">
@ -392,7 +393,8 @@
<button name="action_skip_purchase_budget" type="object" string="Skip Budget" <button name="action_skip_purchase_budget" type="object" string="Skip Budget"
attrs="{'invisible':['|', ('state','!=', 'purchase_manager'),('is_purchase_budget','=',False)]}" attrs="{'invisible':['|', ('state','!=', 'purchase_manager'),('is_purchase_budget','=',False)]}"
groups="purchase_requisition_custom.group_skip_purchase_budget"/> groups="purchase_requisition_custom.group_skip_purchase_budget"
class="btn-warning"/>
<button type="object" groups="purchase_requisition_custom.group_approve_purchase_requisition" <button type="object" groups="purchase_requisition_custom.group_approve_purchase_requisition"
name="action_approve" string="Approve" states="checked" class="btn-primary"/> name="action_approve" string="Approve" states="checked" class="btn-primary"/>