Skip to Content
เมนู
คุณต้องลงทะเบียนเพื่อโต้ตอบกับคอมมูนิตี้
คำถามนี้ถูกตั้งค่าสถานะ
1 ตอบกลับ
85 มุมมอง

I want to hide the action reports of stock.picking based on the picking_type_code. Specifically, if picking_type_code = "outgoing", I want to hide stock.action_report_delivery; if picking_type_code = "incoming", I want to hide stock.stock_reception_report_action. All other reports should remain visible. How can I achieve this? Here is what I have tried so far:


class StockPicking(models.Model):

_inherit = "stock.picking"


def _get_action_ids(self, xml_ids):

action_ids = []

for xml_id in xml_ids:

try:

action_ids.append(self.env.ref(xml_id).id)

except ValueError:

_logger.warning("XML ID not found: %s", xml_id)

return action_ids


def _filter_toolbar_actions(self, view, allowed_ids=None, hidden_ids=None):

if not view or not view.get("toolbar"):

return

print_actions = view["toolbar"].get("print", [])

if allowed_ids is not None:

view["toolbar"]["print"] = [

a for a in print_actions if a.get("id") in allowed_ids

]

elif hidden_ids is not None:

view["toolbar"]["print"] = [

a for a in print_actions if a.get("id") not in hidden_ids

]


@api.model

def get_views(self, views, options=None):

res = super().get_views(views, options)

picking_type_code = self.env.context.get("restricted_picking_type_code")


if picking_type_code == "outgoing":

hidden_xml_ids = [

"stock.action_report_delivery",

]

hidden_ids = self._get_action_ids(hidden_xml_ids)

form_view = res["views"].get("form")

self._filter_toolbar_actions(form_view, hidden_ids=hidden_ids)

if picking_type_code == "incoming":

hidden_xml_ids = [

"stock.stock_reception_report_action",

]

hidden_ids = self._get_action_ids(hidden_xml_ids)

form_view = res["views"].get("form")

self._filter_toolbar_actions(form_view, hidden_ids=hidden_ids)


return res


อวตาร
ละทิ้ง
คำตอบที่ดีที่สุด

Hello,

You can use domain in the XML code of report action like below:
<field name="domain" eval=[(custom condition based on picking_type_code)]"/>

อวตาร
ละทิ้ง
Related Posts ตอบกลับ มุมมอง กิจกรรม
2
ส.ค. 25
851
1
พ.ค. 25
1875
Onboarding Icon on odoo 18 แก้ไขแล้ว
2
เม.ย. 25
2899
0
ม.ค. 25
1519
1
ธ.ค. 24
2408