Server-tools: [RFC] рд╕рдорд╛рд░реЛрд╣ рдХреЗ рд▓рд┐рдП рдирдП рдПрдкреАрдЖрдИ.рдЧреНрд░реБрдкреНрд╕ рдбреЗрдХреЛрд░реЗрдЯрд░

рдХреЛ рдирд┐рд░реНрдорд┐рдд 22 рдЕрдЧре░ 2017  ┬╖  34рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: OCA/server-tools

рдирдорд╕реНрддреЗ,

рдореИрдВ рдПрдХ рдирдП рдбреЗрдХреЛрд░реЗрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддрд╛ рд╣реВрдВ

@api.groups('group_1', 'group_2', '...')
def function_name(self, args):
    ...

xml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП <button name='function_name' /> рдЬреИрд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред

рдбреЗрдХреЛрд░реЗрдЯрд░ рдпрд╣ рдЬрд╛рдВрдЪ рдХрд░реЗрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рд╡рд░реНрддрдорд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рдореВрд╣реЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХрд╛ рд╕рджрд╕реНрдп рд╣реИ, рдпрджрд┐ рдкрд╣реБрдВрдЪ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реИред рдлрд┐рд░, рд░реЗрдВрдбрд░ рджреГрд╢реНрдп рдореЗрдВ, рдмрдЯрди рдЫрд┐рдкрд╛ рд╣реБрдЖ рд╣реИ рдЕрдЧрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рдореВрд╣реЛрдВ рдХрд╛ рд╕рджрд╕реНрдп рдирд╣реАрдВ рд╣реИ

рд╡рд╣ рдирдпрд╛ рдбреЗрдХреЛрд░реЗрдЯрд░ рд╕реБрд░рдХреНрд╖рд╛ рдЙрд▓реНрд▓рдВрдШрдиреЛрдВ рдХреЛ рдареАрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рдЫрд┐рдкреЗ рд╣реБрдП рдмрдЯрди рдХреЗ рдХрд╛рд░реНрдп рдХреЛ xml RPC рджреНрд╡рд╛рд░рд╛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рджреВрд╕рд░реА рдмрд╛рд░ рдореЗрдВ рд╣рдо рдЕрдиреНрдп рд╕рдЬреНрдЬрд╛рдХрд╛рд░реЛрдВ @ api.add_groups рдпрд╛ @ api.remove_groups рдХреЛ рдХрд┐рд╕реА рдореЙрдбрд▓ рдореЗрдВ рдПрдХ рдХрд╕реНрдЯрдо рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдпрд╛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдкрдХреЗ рдХрдореЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдмрд╣реБрдд рдмреБрд░рд╛ ocapi рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: smile_cat:

рд╕рднреА 34 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ - рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рд╕реЗ рд╕реБрд░рдХреНрд╖рд╛ (рдмрдЯрди рдЫрд┐рдкрд╛рдирд╛) рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХрд╣рд╛рдВ рд░рдЦрд╛ рдЬрд╛рдПред рдореИрдВрдиреЗ рдПрдХ OCA рдкрд╛рдпрдерди рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ api.foreach рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ, рд▓реЗрдХрд┐рди OCA рдХреЗ рдореЛрд░реНрдЪреЗ рдкрд░ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рдЧрддрд┐ рдирд╣реАрдВ рдереА

рдореБрдЭреЗ рдЕрднреА рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ OCA API рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реЛрдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред @ рдЯреЗрд▓реНрд╕ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ OCA рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдЯрд╛рд╕реНрдХ ("рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдБ") рдореЗрдВ рд▓рдЧрд╛рдИ рдЧрдИ рд╡рд┐рдзрд┐ рдХреЗ рдмрд╛рдж рд░реЗрдкреЛ рдмрдирд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдФрд░ PR рдмрдирд╛рдпреЗрдВред

рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ: +1: рдЗрд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓реЗрдХрд┐рди рд╕рдЬреНрдЬрд╛рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде add_groups рдФрд░ рдЗрддрдиреЗ рдкрд░ рдирд╣реАрдВред рдЗрд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рд╕рд╛рде рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП: рдпрджрд┐ рдЖрдк рдбреЗрдХреЛрд░реЗрдЯрд░ рдореЗрдВ рдХрд┐рд╕реА рдирдП рд╕рдореВрд╣ рдХреЛ рдПрдХ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдкрджреНрдзрддрд┐ рдкрд░ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдЙрд╕ рд╕рдореВрд╣ рдХреЛ рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдореВрд╣реЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдлрд┐рд░ рдЖрдкрдХреЛ рдЕрдиреНрдп рддрдХрдиреАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреИрд╕реЗ рдХрд┐ рдХреЛрд░ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрдо рд╕рдореВрд╣реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдиреНрдп рд╡рд┐рдзрд┐ рдЬреЛ рдореВрд▓ рд╡рд┐рдзрд┐ рдХрд╣рддреА рд╣реИ)ред

рдирдорд╕реНрддреЗ ! рдЖрдкрдХреЗ рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдПрдХ OCA API рд▓рд╛рдЗрдмреНрд░реЗрд░реА LGTMред рдорд╣рд╛рди рд╡рд┐рдЪрд╛рд░ !

рд▓реЗрдХрд┐рди рд╕рдЬреНрдЬрд╛рдХрд╛рд░ add_groups рдФрд░ рдЗрддрдиреЗ рдкрд░ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ

рдЖрдк рд╕рд╣реА рд╣реИрдВ, рдЗрд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╕рдореВрд╣реЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдлрд┐рд░ рдЖрдкрдХреЛ рдЕрдиреНрдп рддрдХрдиреАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреИрд╕реЗ рдХрд┐ рдХреЛрд░ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрдо рд╕рдореВрд╣реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдиреНрдп рд╡рд┐рдзрд┐ рдЬреЛ рдореВрд▓ рд╡рд┐рдзрд┐ рдХрд╣рддреА рд╣реИ)ред

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╕рднреА рдЬрд░реВрд░рддреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рд╣рдо рдирдП рд░реЗрдкреЛ рдХреЗ рдЦрд┐рд▓рд╛рдл рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреАрдЖрд░ рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред

@ рдЯреЗрд▓реНрд╕ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ OCA рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдЯрд╛рд╕реНрдХ ("рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдБ") рдореЗрдВ рд▓рдЧрд╛рдИ рдЧрдИ рд╡рд┐рдзрд┐ рдХреЗ рдмрд╛рдж рд░реЗрдкреЛ рдмрдирд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдФрд░ PR рдмрдирд╛рдпреЗрдВред

@ рдЯреЗрд▓реНрд╕ , рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдкрд┐рдВрдЧ рдХрд░реЗрдВ рдЬрдм рд░реЗрдкреЛ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдПрдХ рдкреАрдУрд╕реА рд╢реБрд░реВ рдХрд░реВрдВрдЧрд╛ рдФрд░ рдЕрдЧрд▓реЗ рдУрдкрди (/ рдмрдВрдж) рджрд┐рдиреЛрдВ рдореЗрдВ рдХрд╛рдо рдЦрддреНрдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред

рдореБрдЭреЗ рдЕрднреА рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ OCA API рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реЛрдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред @ рдЯреЗрд▓реНрд╕ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ OCA рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдЯрд╛рд╕реНрдХ ("рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдБ") рдореЗрдВ рд▓рдЧрд╛рдИ рдЧрдИ рд╡рд┐рдзрд┐ рдХреЗ рдмрд╛рдж рд░реЗрдкреЛ рдмрдирд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдФрд░ PR рдмрдирд╛рдпреЗрдВред

рдЕрдЪреНрдЫрд╛ рдмрд┐рдВрджреБ - рдЙрд╕ рд╕рдордп рдореЗрд░реЗ рдкрд╛рд╕ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рдереАред рдореИрдВ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ OCA рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдирд╣реАрдВ рдвреВрдБрдв рд░рд╣рд╛ рд╣реВрдБ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рдереЛрдбрд╝рд╛ рдФрд░ рдЦреБрджрд╛рдИ рдХрд░реВрдБрдЧрд╛ рдФрд░ рдирдП рд░реЗрдкреЛ рдХреЗ рд╕рд╛рде рд╡рд╛рдкрд╕ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реВрдБрдЧрд╛ред

рд╣рдореНрдореН рдареАрдХ рд╣реИ рд╣рд╛рдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд░реЗрдкреЛ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рдвреВрдВрдв рд╕рдХрддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╕рд┐рд░реНрдл рдЖрдЧреЗ рдЬрд╛рдХрд░ рд░реЗрдкреЛ рдмрдирд╛рдиреЗ рдЬрд╛ рд░рд╣рд╛ рдерд╛ - рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИред @pedrobaeza рдХреНрдпрд╛ рдЖрдк рдПрдХ рд░рд┐рдХреНрдд OCA / рдЕрдЬрдЧрд░-рдУрд╕рд╛ рд░реЗрдкреЛ рдмрдирд╛рдиреЗ рдореЗрдВ рдорди рд╕рдХреВрдВ ?

This рдРрд╕рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдбреЗрдХреЛрд░реЗрдЯрд░ рдХреЗ рд▓рд┐рдПред рдореЗрд░реЗ рдкрд╛рд╕ @privileged рдбреЗрдХреЛрд░реЗрдЯрд░ рдмрдирд╛рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдерд╛ рдЬреЛ рдПрдХ рд╣реА рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдФрд░ рдЬрд┐рд╕реЗ рд╕рд░реНрд╡рд░-рдЯреВрд▓реНрд╕ рдореЗрдВ рдПрдХ рдирдП рдЯреВрд▓ рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдбреЗрдХреЛрд░реЗрдЯрд░ рдХрд╛ рдПрдХ рдкрд╛рдЗрдк рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореБрдЭреЗ рдХреЗрд╡рд▓ @ api.groups рдирд╛рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрд╢реНрдЪрд░реНрдп рд╣реИред рдХреНрдпрд╛ рдпрд╣ рднреНрд░рд╛рдордХ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдУрдбреВ рдЖрдкреА рдкрд╛рдпрдерди рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдирд╣реАрдВ рдЖ рд░рд╣рд╛ рд╣реИ?

рд╣рд╛рдп @ NL66278 ,

рдЦреИрд░, рдирд╛рдо рд╕реНрдерд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯрдХрд░рд╛рд╡ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдирд╛рдо @ oca.groups рд╣реЛрдЧрд╛ рди рдХрд┐ @ api.groupsред (рдпрд╛ рдРрд╕рд╛ рд╣реА рдХреБрдЫ)

@legalsylvain рдореИрдВ рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░ рд░рд╣рд╛ рдерд╛ред @oca.groups рд╣реЛрдиреЗ рд╕реЗ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

@legalsylvain рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ!

рдореИрдВ рд╕рднреА рдУрдХрд╛ рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд╛рдорд╕реНрдерд╛рди рдкреИрдХреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ 'рдУрдХрд╛' рд░рдЦрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рд╣рдо рдЗрд╕ рдирдП рдкреИрдХреЗрдЬ рдХреЛ 'рдУрдХрд╛-рдбреЗрдХреЛрд░реЗрдЯрд░' рдирд╛рдо рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдкреИрдХреЗрдЬ 'oca.decorator' (рдпрд╛ oca.xyz) рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛

from oca.decorator import groups

    @groups(..)
    def function_name():

рд▓рдЧрднрдЧ groups рдореИрдВ рдЙрджрд╛рд╣рд░рдг allowed_groups рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рдирд╛рдо рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред

рд▓рд╛рдореА

@lasley рдпрд╣ рд╡рд╣ рдХрд╛рд░реНрдп рд╣реИ рдЬрд╣рд╛рдБ рдПрдХ рдирдИ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА / PSC рдХреЗ рд▓рд┐рдП рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреА рдЧрдИ рд╣реИ: https://odoo-community.org/web#id = 264 рдФрд░ view_type = form & model = project.task & action = 468 рдФрд░ active_id = 2

рдУрдордЧ рдзрдиреНрдпрд╡рд╛рдж рдкреЗрдбреНрд░реЛ! рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдореИрдВрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рд░реЗрдкреЛ рддрдХ рд╕рдм рдХреБрдЫ рдЦреЛрдЬ рд▓рд┐рдпрд╛, рд▓реЗрдХрд┐рди "рдкреАрдПрд╕рд╕реА" рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╕реЛрдЪрд╛ред Derp!

рдореБрдЭреЗ рдЕрднреА рднреА OCA GitHub рдореЗрдВ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА - рдореЗрд░реЗ рдкрд╛рд╕ рдирдпрд╛ рдмрдЯрди рдирд╣реАрдВ рд╣реИ:

image

рдЕрдм рдлрд┐рд░ рд╕реЗ рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рдореИрдВрдиреЗ рдЖрдкрдХреА рднреВрдорд┐рдХрд╛ рдмрджрд▓ рджреА рд╣реИред

@lasley @pedro рдХреНрдпреЛрдВ python-oca ? рдпрд╣ рдирд╛рдо рдирд┐рд░рд░реНрдердХ рд╣реИред рдЖрдк рдЕрдЬрдЧрд░ рдкреИрдХреЗрдЬ рдХрд╛ рдирд╛рдо рдХреИрд╕реЗ рджреЗрддреЗ рд╣реИрдВ?

@lmignon - рдореИрдВрдиреЗ рд╕реБрдЭрд╛рд╡ рдорд╛рдВрдЧреЗ рдФрд░ рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдерд╛ред рдЕрдЬрдЧрд░ рдкреИрдХреЗрдЬ рдХреЛ рдЗрд╕реА рддрд░рд╣ рдирд╛рдорд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдХреНрдпрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ? рдореИрдВ рд╕реБрди рд░рд╣рд╛ рд╣реБред

@ рдЬреЗрд▓реНрд▓реА рдореЗрд░рд╛ рдореБрдЦреНрдп рдЪрд┐рдВрддрд╛ рдПрдХ рдЕрдЦрдВрдб рдЕрдЬрдЧрд░ рдкреИрдХреЗрдЬ рдХреЗ рдирд┐рд░реНрдорд╛рдг рд╕реЗ рдмрдЪрдирд╛ рд╣реИред рдпрджрд┐ рдкреНрд░рд╛рдердорд┐рдХ рд▓рдХреНрд╖реНрдп рдпрд╣ рд╣реИ рдХрд┐ рдирдП рд╡рд┐рд╢реЗрд╖ рд╕рдЬреНрдЬрд╛рдХрд╛рд░ рдкреНрд░рджрд╛рди рдХрд░реЗрдВ рддреЛ рдУрд╕рд╛-рдбреЗрдХреЛрд░реЗрдЯрд░ рдХреНрдпреЛрдВ рдирд╣реАрдВред рдирд╛рдо рдХреЛ рдкреИрдХреЗрдЬ рджреНрд╡рд╛рд░рд╛ рдХрд╡рд░ рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдпрд╛рддреНрдордХ рджрд╛рдпрд░реЗ рдпрд╛ рдЬреЛ рднреА рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдХрдо рд╕реЗ рдХрдо рдирд╛рдо рд╕рд╛рд░реНрдердХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред IMO 'рдЕрдЬрдЧрд░-рдорд╣рд╛рд╕рд╛рдЧрд░' рдмрд╣реБрдд рд╡рд┐рд╕реНрддреГрдд рд╣реИред

рдореИрдВ oca-decorator рд╕рд╛рде рдЕрдЪреНрдЫрд╛ рд╣реВрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╣рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рдврдВрдЧ рд╕реЗ рд╕рдВрд░рдЪрдирд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рдмрд╛рдж рд╕рдЬреНрдЬрд╛рдХрд╛рд░реЛрдВ рдХреЛ рдирд╛рдо рд╕реНрдерд╛рди рдореЗрдВ рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдмрдирд╛рдирд╛ рд╣реИред рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдореЗрд░реЗ рдкрд╛рд╕ рдерд╛, рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдЗрд╕реЗ LasLabs / python-oca # 1 рдореЗрдВ oca.helpers рд╡рд╛рдкрд╕ рдзрдХреЗрд▓ рджрд┐рдпрд╛ред

рд╡реИрд╕реЗ рднреА рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдирд╛ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИ, рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдб рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЗрд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ред рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдореИрдВрдиреЗ рд░реЗрдкреЛ рдмрдирд╛рдпрд╛, рдкреАрдЖрд░ рд╕рдмрдорд┐рдЯ рдХрд░реЗрдЧрд╛ рдФрд░ рдЖрдкрдХреЗ рд╕реБрдЭрд╛рд╡ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдЧрд╛ - рдлрд┐рд░ рд╣рдо рдЗрд╕ рдЕрдкрд╣реГрдд рдкреАрдЖрд░ рдХреЗ рдмрдЬрд╛рдп рд╕рдВрджрд░реНрдн рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

@lasley oca рдиреЗрдорд╕реНрдкреЗрд╕ рдЦрд╛рд▓реА рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдиреНрдпрдерд╛ рд╕рдорд╛рди рдирд╛рдо рд╕реНрдерд╛рди рдХреЗ рддрд╣рдд рдЕрдиреНрдп рдЕрдЬрдЧрд░ рдкреИрдХреЗрдЬ рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рд╣реИ, рд╕рдордЭ рд▓рд┐рдпрд╛ рддреЛ рд╣рдо рдореВрд▓ рд░реВрдк рд╕реЗ рд╣рдорд╛рд░реЗ рдирд╛рдо рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬрд╛рдПрдЧрд╛ helpers рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬ decorators , рддреЛ рдлреЛрди рд╣реИ рдХрд┐ рдЕрдЬрдЧрд░ рд╕рд╛рдорд╛рди рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рд╕реНрдХреАрдорд╛? рд╕рд╛рд░ oca-package-sub == oca.package.sub

рд╣рд╛рдБ: рдореБрд╕реНрдХреБрд░рд╛рдУ: рдпрд╣ рд╡рд┐рдЪрд╛рд░ рд╣реИред

рдмрд╣реБрдд рдмреБрд░рд╛ ocapi рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: smile_cat:

https://github.com/OCA/oca-decorators/pull/1 рд╕рдмрдорд┐рдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛

рдЗрд╕ рдХреЛрдб рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрд░рд╛ рдПрдХ рдкреНрд░рд╢реНрди рд╣реИред (рд╢рд╛рдпрдж рдореЗрд░рд╛ рд╕рд╡рд╛рд▓ рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ, рдХреНрд╖рдорд╛ рдХрд░реЗрдВ)

рдореВрд▓ рд░реВрдк рд╕реЗ, рдореИрдВ рдЗрд╕ рдХреЛрдб рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рджреЗрдЦрддрд╛ рд╣реВрдВред

рдП) рдПрдХ рд╢рд╛рд╕реНрддреНрд░реАрдп рдУрдбреЛ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ (рдПрдХ рдореМрдЬреВрджрд╛ рдпрд╛ рдирдП рднрдВрдбрд╛рд░ рдореЗрдВ)ред рдЗрд╕рд▓рд┐рдП, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдХреБрдЫ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛

from odoo.addons.my_oca_lib_in_module import my_decorator

рдмреА) рдПрдХ рдЕрдЬрдЧрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ libред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕рднреА рд╕рдорд╛рдзрд╛рди "рдмреА" рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпрд╣ рдХреНрд▓реАрдирд░ рд╕рдорд╛рдзрд╛рди рд╣реИред
рд▓реЗрдХрд┐рди рджреВрд╕рд░реЗ рд╣рд╛рде рдореЗрдВ, рдореБрдЭреЗ рдбрд░ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рддрдХрдиреАрдХ рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░реЗрдЧреА рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рддрдХрдиреАрдХреА рдХреМрд╢рд▓ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдирдП рдУрд╕рд╛-рдкрд╛рдпрдерди рдХреЗ рдХрд╛рдо рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпреВрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореЙрдбреНрдпреВрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрд╛ odoo.sh рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ (рдФрд░ рдХрд▓ OCA рдРрдкрд╕реНрдЯреЛрд░ рдХреЗ рд╕рд╛рде рдХрд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ!)ред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕рднреА рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд╕реНрдЯрдо рдкрд╛рдпрдерди рд▓рд┐рдм рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВрдЧреЗред
рдпрд╣ рдЕрдлрд╝рд╕реЛрд╕ рдХреА рдмрд╛рдд рд╣реИ рдЕрдЧрд░ рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдУрд╕реАрдП рдореЙрдбреНрдпреВрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реЛрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рджреЗрдпрддрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХреБрдЫ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИред

рдлрд┐рд▓рд╣рд╛рд▓ OCA рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдЕрдиреНрдп рдЫреВрдЯ рд╣реИред Openupgradelibред рдХреЛрдб рд╢реБрд░реВ рдореЗрдВ OpenUpgrade рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдерд╛, рдФрд░ рдПрдХ рдмрд╛рд╣рд░реА рдЕрдЬрдЧрд░-рдХрд╛рдо рдореЗрдВ рд▓реЗ рдЬрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдУрдкрдирдЕрдкрдЧреНрд░реЗрдбреЗрд▓рд┐рдм рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд╡рд░реБрджреНрдз рдмрд┐рдВрджреБ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдЙрдиреНрдирдпрди рдХрд░рдирд╛ рдПрдХ рддрдХрдиреАрдХреА рдЪреАрдЬ рд╣реИред

рддреБрдо рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реЛ ?

рдХреНрдпрд╛ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ Odoo.sh рдкрд╛рдЗрдк рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ?

IMO рдпрд╣ рдЙрди рдкрд░ рд╣реИ рдХрд┐ external_depencies рдореЗрдирд┐рдлрд╝реЗрд╕реНрдЯ рдореЗрдВ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдП - рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдореЙрдбреНрдпреВрд▓ рд╣реИрдВ рдЬреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЗрд╕ рдирдИ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдореЙрдбреНрдпреВрд▓ рдЬреЛ рдПрдХ рд░рд╛рд╢рд┐, рдХрд┐рд╕реА рднреА рдЕрд▓рдЧ рд╣реЛрдЧрд╛ barcodes_generator_abstract рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ barcode

Odoo.sh (рдпрд╛ рдлреНрд░реЗрдВрдЪ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП Odoo.hs) рдЕрдЧрд▓рд╛ Runbot рдирд╣реАрдВ рд╣реИред рдмреЗрдЯ рд▓рд┐рдпрд╛ред

ЁЯШЖ рд╣рд╛рдБ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдореЗрд░реА рд╢рд░реНрдд рдЙрд╕ рдкрд░ рдХрд╣рд╛рдБ рд╣реИ

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдореЙрдбреНрдпреВрд▓ рд╣реИрдВ рдЬреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ (@lasley рджреНрд╡рд╛рд░рд╛)

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдлреА рдЕрд▓рдЧ рд╣реИред рдмреЗрд╢рдХ, рдпрджрд┐ рдЖрдк рдПрдХ рдРрд╕реА рдкреНрд░рдгрд╛рд▓реА рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ рдмрд╛рд░рдХреЛрдб рдкреАрдврд╝реА рдХреЛ рд╕рдВрднрд╛рд▓рддреА рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдмрд╛рд░рдХреЛрдб рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рддрд╛рд░рд╛рдВрдХрди рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди, рдЖрджрд┐ ...
рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рд╕реАрдорд┐рдд рд╣реИ, рдФрд░ рд╢рд╛рдпрдж рджреБрдирд┐рдпрд╛ рдореЗрдВ рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдРрд╕реЗ рдореЙрдбреНрдпреВрд▓ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рд╡реЗ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИред рдмрд╛рд░рдХреЛрдб рдкреАрдврд╝реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдмрд╛рд░рдХреЛрдб рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдпрд╣рд╛рдБ, рдпрд╣ рдЕрд▓рдЧ рд╣реИред рдореИрдВрдиреЗ рдЕрднреА OCA рдХреЛрдб рд╕реЛрд░реНрд╕ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИред рдЖрдЬ 4182 рдореЙрдбреНрдпреВрд▓ рд╣реИрдВред (рджреЛ рдореАрд▓ рдХреЗ рдкрддреНрдерд░ рдореЗрдВ рдореМрдЬреВрдж рдПрдХ рдореЙрдбреНрдпреВрд▓ рджреЛ рдмрд╛рд░ рдЧрд┐рдирд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рджреВрд╕рд░реА рдУрд░, рд╕рднреА 4182 рдореЙрдбреНрдпреВрд▓реЛрдВ рдореЗрдВ, рдХреЗрд╡рд▓ 274 рдЕрдЬрдЧрд░ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рд╣реИрдВред рддреЛ OCA рдореЙрдбреНрдпреВрд▓ рдХрд╛ 94% рдмрд╛рд╣рд░реА рдЕрдЬрдЧрд░ рдХреЗ рд▓рд┐рдмрд╛рд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕реЗ рдмрд╣реБрдд рдЖрд╕рд╛рдиреА рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡рд┐рд╡рд░рдг :

image

рдпрджрд┐ рдХрд▓, рдЙрдкрдпреЛрдЧреА рд╕рдЬреНрдЬрд╛рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдЪреНрдЫрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдУрдХрд╛ рдкрд╛рдпрдерди рдХрд╛рд░реНрдп рд╣реИ (рдЬреИрд╕реЗ рд╣рдо рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рд╕реБрд░рдХреНрд╖рд╛ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ), OCA рдХреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдореЙрдбреНрдпреВрд▓ рдЗрд╕ рджрд╛рдпрд┐рддреНрд╡ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВ, рдЪрд░рдг рджрд░ рдЪрд░рдгред

OCA рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп OCA рд╕рджрд╕реНрдпреЛрдВ рдХреЗ рдХрд╛рдо рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗрдирд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдирд┐рд░реНрдгрдп (рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рджрд╛рдпрд┐рддреНрд╡ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП) рд▓реЛрдЧреЛрдВ рдХреЛ рдУрд╕реАрдП рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдХрдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЗрд╕ рджрд┐рд╢рд╛ рдореЗрдВ рдлрд┐рд▓рд╣рд╛рд▓ рдирд╣реАрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдо рд╢рд╛рд╕реНрддреНрд░реАрдп рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдкрд╣рд▓реЗ рдереЛрдбрд╝рд╛ рд╕рд╛ рдУрд╕рд╛-рдбреЗрдХреЛрд░реЗрдЯрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдЕрдЧрд░ 1/2 рд╕рд╛рд▓ рдореЗрдВ, рдпрд╣ рдкрд░рд┐рдкрдХреНрд╡ рд╣реИ, рдФрд░ рдпрджрд┐ рддреИрдирд╛рддреА рдФрд░ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдЕрдзрд┐рдХ рдкрд░рд┐рдкрдХреНрд╡ (*) рд╣реИрдВ, рддреЛ рд╕рднреА рдХреЛрдб рдХреЛ рдмрд╛рд╣рд░реА рджреЗрдпрддрд╛ рдореЗрдВ рд░рдЦрдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред

рдУрдкрдирдЕрдкрдЧреНрд░реЗрдб рдХреЛрдб рдУрдкрдирдЕрдкрдЧреНрд░реЗрдб рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╡рд░реНрд╖реЛрдВ рдХреЗ рджреМрд░рд╛рди рд░рд╣рд╛ рд╣реИ рдФрд░ рд╣рд╛рд▓ рд╣реА рдореЗрдВ @StefanRijnhart рджреНрд╡рд╛рд░рд╛ рдПрдХ рдмрд╛рд╣рд░реА рдкрд░рд┐рд╡рд╛рдж рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрджрд▓рд╛рд╡ рдХреЛрдИ рдмрдбрд╝реА рдмрд╛рдд рдирд╣реАрдВ рдереАред

(*): рдкрд┐рдЫрд▓реЗ рд╡рд░реНрд╖реЛрдВ рдХреЗ рджреМрд░рд╛рди рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдФрд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдкреНрд░рдгрд╛рд▓реА рдмрд╣реБрдд рдмрджрд▓ рдЧрдИ рд╣реИред (bzr рджреНрд╡рд╛рд░рд╛ рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛, рдЬреАрдердм рджреНрд╡рд╛рд░рд╛ рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛, рдмрд┐рд▓реНрдбрдЖрдЙрдЯ рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рдФрд░ рд╣рд╛рд▓ рд╣реА рдореЗрдВ pypi рдкрд░рд┐рдирд┐рдпреЛрдЬрди)

рдореИрдВ рд╕реБрдирдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ @ OCA / рдмреЛрд░реНрдб рдЙрд╕ рдмрд┐рдВрджреБ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╕реЛрдЪ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рддрдХрдиреАрдХреА рдирд┐рд░реНрдгрдп рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдПрдХ рд░рдгрдиреАрддрд┐рдХ рдирд┐рд░реНрдгрдп рднреА рд╣реИ

рдЕрдм рдЪреВрдВрдХрд┐ https://github.com/OCA/oca-decorators рдЙрдкрд▓рдмреНрдз рд╣реИ, рдпрд╣ RFC рд╡рд╣рд╛рдВ рдЬрд╛ рд╕рдХрддреА рд╣реИред

@legalsylvain - рдореИрдВрдиреЗ рдЗрд╕реЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореВрд▓ рд░реВрдк рд╕реЗ api.foreach рд▓рд┐рдП рдПрдХ рдореЙрдбреНрдпреВрд▓ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдерд╛ред рдЗрд╕ рдкреАрдЖрд░ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ, рдФрд░ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рд╣рдордиреЗ рдЗрд╕ рд░рдгрдиреАрддрд┐ рдХреЛ рдХреНрдпреЛрдВ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред

рдЬрдм рдЖрдк 60-70 рд╡рд░реНрдгреЛрдВ рд╡рд╛рд▓реЗ рдЖрдпрд╛рдд рдкрде рдХреЗ рд▓рд┐рдП рд▓реЗрдЦрд╛рдВрдХрди рдкреНрд░рд╛рд░рдВрдн рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдПрдХ рдХреЛрд╢рд┐рд╢ / рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдЖрдк рдЖрдпрд╛рдд рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдЖрд╕рдкрд╛рд╕ рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрд╕рдВрднрд╡ рдХреЗ рдкрд╛рд╕ рдЦрд░рд╛рдм рд╣реЛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рд╢реВрдиреНрдп рдмрдирд╛ рджреЗрдЧрд╛ - рдЖрдпрд╛рдд рд░рд┐рдХреЙрд░реНрдб рд▓реВрдк рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдард┐рди рд╣реИред

рджрд┐рд▓рдЪрд╕реНрдк рд░реВрдк рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рд╣рдорд╛рд░реА рдХреЛрд╢рд┐рд╢ / рд░рдгрдиреАрддрд┐ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рдЬреНрдЬрд╛рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдмреБрд░реА рддрд░рд╣ рд╕реЗ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╡рд┐рд╖рдп рд╣реИред рдлрд┐рд░ рд╕реЗ, рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдУрдбреВ рдЙрдирдХреЗ external_dependencies рдХреБрдВрдЬреА рдХреЛ рдареАрдХ рдХрд░реЗрдЧрд╛ред

@dreispt - рдЗрд╕ рдкреВрд░реНрд╡-рдореМрдЬреВрджрд╛ рдЪрд░реНрдЪрд╛ рдХреЛ рджреВрд╕рд░реЗ рд░реЗрдкреЛ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИ? рдпрд╣рд╛рдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рджреНрд░рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЦрддреНрдо рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред

рдЬрдм рдЖрдк 60-70 рдЪрд╛рд░реНрдЯ рд╡рд╛рд▓реЗ рдЖрдпрд╛рдд рдкрде рдХреЗ рд▓рд┐рдП рд▓реЗрдЦрд╛рдВрдХрди рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрд╕рдВрднрд╡ рдХреЗ рдХрд░реАрдм рдерд╛

рдореБрдЭреЗ рд╕рдордЭ рдирд╣реАрдВ рдЖ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдЙрд╕ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдХреНрдпрд╛ рдЬрд░реВрд░рдд рд╣реИ рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗред

рдПрдХ oca @ foreach рдбреЗрдХреЛрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП oca_api lib рдпрд╛ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВред :

рд▓рд┐рдм рд╕реЙрд▓реНрдпреВрд╢рди рдкрд░ рдЕрд╕рд░ рдкрдбрд╝рддрд╛ рд╣реИ
рддреИрдирд╛рдд рдХрд░реЗрдВ:

  • рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдпрд╛ рдмрд┐рд▓реНрдбрдЖрдЙрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред рд╕рд╛рд╕ рдорд░реНрдпрд╛рджрд╛ред

рдкреНрд░рдХрдЯ рдлрд╝рд╛рдЗрд▓:

'external_dependencies': {'python': ['oca_api']}

рдкрд╛рдпрдерди рдлрд╝рд╛рдЗрд▓:

from oca_api import oca

рдореЙрдбреНрдпреВрд▓ рд╕рдорд╛рдзрд╛рди рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ
рддреИрдирд╛рдд рдХрд░реЗрдВ:

  • рдкрд╛рдЗрдк рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдпрд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдпреВрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╛ рдмрд┐рд▓реНрдбрдЖрдЙрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╛ рдмрд╕ рдПрдбреЛрдирд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдЬреЛрдбрд╝рдХрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред рдХреЛрдИ рд╕рд╛рд╕ рдорд░реНрдпрд╛рджрд╛ рдирд╣реАрдВред

рдкреНрд░рдХрдЯ рдлрд╝рд╛рдЗрд▓:

'depends': ['oca_api'],

рдкрд╛рдпрдерди рдлрд╝рд╛рдЗрд▓:

from odoo.addons.oca_api import oca

рдпрд╛ рдореИрдВ рдХреБрдЫ рдпрд╛рдж рдХрд┐рдпрд╛? рдпрджрд┐ рд╣рд╛рдБ, рддреЛ рдХреГрдкрдпрд╛ рдореБрдЭреЗ рд╕реБрдзрд╛рд░реЗрдВред

рд╕рдзрдиреНрдпрд╡рд╛рджред

рдореБрдЭреЗ рд╕рдордЭ рдирд╣реАрдВ рдЖ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдЙрд╕ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдХреНрдпрд╛ рдЬрд░реВрд░рдд рд╣реИ рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗред

рдХреЛрд╢рд┐рд╢ / рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рд╣рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ рдЬрдм рдХреБрдЫ рднреА рдЖрдпрд╛рдд рдХрд░рдирд╛ рд╣реИ рдЬреЛ рдХреЛрд░ рдУрдбреВ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЗ рдЙрджрд╛рд╣рд░рдг рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реЛрдВрдЧреЗ:

try:
    from oca_api import oca
except ImportError:...

try:
    from odoo.addons.oca_api import oca
except ImportError:...

рд▓реЗрдХрд┐рди рдЖрдкрдХреЗ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдирд╛рдордХрд░рдг рдХреЗ рд╕рд╛рде рд╣рд╛рдБ, рдпрд╣ рд▓рдЧрднрдЧ рдЙрддрдирд╛ рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИ рдЬрд┐рддрдирд╛ рдореЗрд░рд╛ рдерд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрдереНрдп рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдХреБрдЫ рдХрд░рдирд╛ рд╣реИ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рдбреАрдмреА рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИ, рдФрд░ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдПрдирдХреИрдкреНрд╕реБрд▓реЗрдЯреЗрдб рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдореЙрдбреНрдпреВрд▓ рд╣реЛрдВрдЧреЗред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ рдЙрди рд╡рд╛рддрд╛рд╡рд░рдгреЛрдВ рдХреЛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдПрдХ рдореБрджреНрджрд╛ (рд╕реБрд░рдХреНрд╖рд╛ рдпрд╛ рдЕрдиреНрдпрдерд╛) рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

@lmignon рдиреЗ https://github.com/OCA/webhook/pull/3#issuecomment -336935193 рдореЗрдВ рдКрдкрд░ рджрд┐рдП рдЧрдП рдЗрд╕реА рддрд░рд╣ рдХреЗ рддрд░реНрдХ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд┐рдпрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдмрд╛рддрдЪреАрдд рд╣реИрдВ - рдореВрд▓ рд░реВрдк рд╕реЗ рд╣рдо рдЗрд╕ рддрд░рд╣ рд╕реЗ рдлреАрдЪрд░-рд╕реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред

рдореБрдЭреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @ рд▓рдорд┐рдЧреНрдирди рдпрд╣реАрдВ рд╣реИ рдФрд░ рд╣рдореЗрдВ рдпрд╣ рдПрдХ foreach рдбреЗрдХреЛрд░реЗрдЯрд░ рдХреЛ рднреА рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ред

рд╣рд╛рдп @ рд▓рд╕рд▓реЗред

рдУрдЙ рдзрдиреНрдпрд╡рд╛рдж! рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрднрд░рддрд╛ рдмрдирд╛рдирд╛ рдпрд╣ рдорд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдерд╛ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рдореМрдЬреВрдж рд╣реИ, рд▓реЗрдХрд┐рди рд╕рднреА рдУрд╕реАрдП рдХреЛрдб рдХреЛ rgreping, рдореИрдВрдиреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдирдореВрдиреЗ рджреЗрдЦреЗ рдЬреЛ рдЖрдк рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред (report_xls рдФрд░ рдХрдиреЗрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХреБрдЫ)ред

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдХрд╛рд░рдг рд╕реБрд░рдХреНрд╖рд╛ рдореБрджреНрджреЛрдВ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХреМрд╢рд▓ рдирд╣реАрдВ рд╣реИред рдореЗрд░реЗ рд▓рд┐рдП, рдпрджрд┐ рдореЙрдбреНрдпреВрд▓ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИ, рддреЛ oca_api рдХреЗ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдХреЛрдб рдХреЛ рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдореИрдВ рдЧрд▓рдд рд╣реВрдВред

рд╕рд╛рджрд░ рдкреНрд░рдгрд╛рдоред

рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрднрд░рддрд╛ рдмрдирд╛рдирд╛ рдпрд╣ рдорд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдерд╛ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рдореМрдЬреВрдж рд╣реИ,

рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП https://github.com/odoo/odoo/pull/14850 рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ

рдореЗрд░реЗ рд▓рд┐рдП, рдпрджрд┐ рдореЙрдбреНрдпреВрд▓ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИ, рддреЛ oca_api рдХреЗ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдХреЛрдб рдХреЛ рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЙрд╕рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдпрд╣ рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рд╣реИ - рдУрдбреВ рд╕рднреА рдореЙрдбреНрдпреВрд▓ addons рдкрде рдореЗрдВ рдореЗрдореЛрд░реА рдореЗрдВ рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдХрд╛рд░рдг, рдореЙрдбреНрдпреВрд▓ рдкрд░ рдЖрдпрд╛рдд рдХрд┐рд╕реА рднреА рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╕рдлрд▓ рд╣реЛрдЧрд╛ - рдЪрд╛рд╣реЗ рдЖрд╢реНрд░рд┐рдд рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛ рдпрд╛ рди рд╣реЛред

рдпрд╣ рдУрдбреВ рдореЗрдВ рдореВрд▓ рд╣реИ, рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░реВрдк рд╕реЗ рдХреЛрдИ рдкрд░рд┐рдзрд┐ рдирд╣реАрдВ рд╣реИред рдпрд╣ рднреА рд╣реИ рдХрд┐ рдореИрдВ рдЕрдкрдиреЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреА рдЙрд╕реА рддрд░рд╣ рд╕реЗ рд╕рд╣-рдореЗрдЬрдмрд╛рдиреА рдирд╣реАрдВ рдХрд░рддрд╛ рдЬрд┐рд╕ рддрд░рд╣ рдУрдбреВ рдПрд╕рдП рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдЙрддреНрд╕реБрдХ рд╣реВрдБ рдЕрдЧрд░ рд╡реЗ Odoo.sh рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдЕрдиреБрдорд╛рди рд╣реИ рдХрд┐ рдЙрдирдХреЗ рд╕рд╛рд╕ рдореЗрдВ рдЙрдирдХреЗ рд╣рд╛рдереЛрдВ рдкрд░ рдЯрд┐рдХ рдЯрд┐рдХ рд╣реИ

рдЗрд╕ рд╕рднреА рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдпрд╣ рдЕрдлрд╝рд╕реЛрд╕ рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ odoo / odoo # 14850 рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдореБрдЭреЗ рдЕрднреА рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмрд╛рд╣рд░реА рджрд╛рдпрд┐рддреНрд╡ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдУрд╕реАрдП рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдиреЗ рд╕реЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрди рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реАрдорд┐рдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рдареАрдХ рд╣реИ, рдПрдХ рдореЙрдбреНрдпреВрд▓ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИред
рд╕рд╛рджрд░ рдФрд░ рдЖрдкрдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рддрд╛ рд╣реВрдВред (https://github.com/OCA/oca-decorators/issues/7 рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд)
рдЖрдкрдХреА рд╕рднреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдФрд░ рдзрдиреНрдпрд╡рд╛рджред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

pedrobaeza picture pedrobaeza  ┬╖  19рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

kittiu picture kittiu  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

lasley picture lasley  ┬╖  22рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

OCA-git-bot picture OCA-git-bot  ┬╖  30рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

naglis picture naglis  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ