Skip to Content

Odoo 19․ ընկերության արխիվացում՝ պորտալի օգտատերերի հետ միասին, partner_archive_users մոդուլը՝ սխալի հաղորդագրության փոխարեն հարցումով

2026 թվականի նոյեմբերի 3 | Odoo 19 Community | Սեփական մշակում
03 նոյեմբերի, 2026 թ. by
Odoo 19․ ընկերության արխիվացում՝ պորտալի օգտատերերի հետ միասին, partner_archive_users մոդուլը՝ սխալի հաղորդագրության փոխարեն հարցումով

Odoo 19-ի partner_archive_users մոդուլ․ հարցում՝ պորտալի օգտատերեր ունեցող ընկերությունը արխիվացնելիս

Հաճախորդ ընկերությունը հեռացել է, պայմանագիրը ավարտվել է, և դուք ուզում եք այն արխիվացնել Odoo-ում։ Odoo-ն պատասխանում է սխալի հաղորդագրությամբ․ «Դուք չեք կարող արխիվացնել ակտիվ օգտատիրոջ հետ կապված կոնտակտներ։ Նախ արխիվացրեք համապատասխան օգտատիրոջը։» Եթե ընկերությունն ունի մի քանի պորտալի մուտք, դա նշանակում է՝ յուրաքանչյուր օգտատիրոջը առանձին որոնել, առանձին արխիվացնել, վերադառնալ ընկերությանը, նորից արխիվացնել։

Դրա համար մենք գրել ենք Ընկերության արխիվացում՝ պորտալի օգտատերերի հետ միասին (partner_archive_users) փոքր մոդուլը Odoo 19-ի համար։ Սխալի հաղորդագրության փոխարեն գալիս է հարցում, և «Այո»-ի դեպքում պորտալի օգտատերերը և ընկերությունը արխիվացվում են մեկ քայլով։ Մոդուլը որպես ազատ ծրագրային ապահովում՝ AGPL-3 լիցենզիայով, հասանելի է GitHub-ում՝

github.com/Alex0176/odoo-partner-archive-users

Մենք մոդուլը Biricon IT Services-ում օգտագործում ենք մեր արտադրական համակարգում 2026 թվականի նոյեմբերի 3-ից։ Այն նոր է, հետևաբար դրա հետ փորձը կարճ է։ Ով այն ընդունում է, պետք է կարդա հետևյալ բաժինները՝ Ծավալ և Սահմանափակումներ ։

Խնդիրը Odoo-ի ստանդարտում

Odoo-ն կոնտակտը արխիվացնելիս ստուգում է, արդյոք դրան օգտատեր է կապված, և եթե այո, ընդհատում է։ Ստուգումը իմաստ ունի, քանի որ յուրաքանչյուր օգտատեր կոնտակտ է պահանջում։ Ներքին օգտատերերի, այսինքն՝ աշխատակիցների համար արգելափակումը նաև ցանկալի է։ Սակայն հաճախորդների պորտալի օգտատերերի դեպքում դա առաջին հերթին ձեռքի աշխատանք է։ Պորտալի մուտք ունեցող յուրաքանչյուր հաճախորդ ընկերություն, օրինակ՝ հաշիվ-ապրանքագրերը և տոմսերը դիտելու համար, արխիվացնելիս նույն ընթացակարգն է պահանջում․

  1. Որոնել ընկերության և նրա կոնտակտային անձանց օգտատերերին,
  2. յուրաքանչյուրին առանձին արխիվացնել,
  3. վերադառնալ ընկերությանը,
  4. արխիվացնել ընկերությանը։

Լուծումը․ հարցում

Մոդուլը ընդլայնում է կոնտակտի Գործողություն → Արխիվացնել ճանապարհը՝ ինչպես ձևաթղթում, այնպես էլ ցանկում։ Եթե ընտրված ընկերությանը կամ նրա կոնտակտային անձանց կապված են ակտիվ պորտալի օգտատերեր, բացվում է երկխոսություն՝ «Իսկապե՞ս արխիվացնել ընկերությանը։ Համակարգում դեռ ակտիվ օգտատերեր կան։» հարցով։ Դրա տակ երևում են առնչվող օգտատերերը՝ անունով, մուտքանունով և կոնտակտով։

Համեմատություն․ Odoo-ի սխալի հաղորդագրությունը ընկերությունը արխիվացնելիս և մոդուլի հարցման երկխոսությունը

  • Այո, արխիվացնել ընկերությանը և օգտատերերին․ Նախ արխիվացվում են օգտատերերը, ապա ընկերությունը։
  • Չեղարկել․ Ոչինչ չի փոխվում։
  • Պորտալի օգտատերեր չկան․ Odoo-ն վարվում է ինչպես նախկինում, երկխոսություն չի հայտնվում։

Ինչն է արխիվացվում և ինչը՝ ոչ

Ծավալը միտումնավոր նեղ է սահմանված․

Ամփոփում․ պորտալի օգտատերերը և ընկերությունը արխիվացվում են, կոնտակտային անձինք մնում են ակտիվ, ներքին օգտատերերին երբեք չի դիպչում

  • Միայն պորտալի և հանրային օգտատերեր (share = True)։ Ներքին օգտատերերը այս ճանապարհով երբեք չեն արխիվացվում։ Եթե կոնտակտին աշխատակցի մուտք է կապված, Odoo-ի սխալի հաղորդագրությունը մնում է։ Այսպես ոչ ոք պատահաբար չի արգելափակում աշխատակցին՝ ընկերություն արխիվացնելով։
  • Կոնտակտային անձինք մնում են ակտիվ որպես կոնտակտներ։ Արխիվացվում են միայն նրանց պորտալի մուտքերը։ Դա համապատասխանում է Odoo-ի ստանդարտին, որը ընկերություն արխիվացնելիս ենթակոնտակտներին նույնպես չի դիպչում։
  • Միայն ինտերֆեյսի արխիվացման ճանապարհը։ Ուղղակի write({'active': False})-ը, օրինակ՝ ներմուծման կամ սկրիպտի մեջ, անփոփոխ անցնում է Odoo-ի ստուգմանը։

Տեխնիկական իրականացում

Մոդուլը առկա մոդելներում նոր դաշտեր չունի։ Այն բաղկացած է res.partner.action_archive-ի ընդլայնումից և օգնականից (partner.archive.users.wizard), որը հայտնվում է որպես երկխոսություն։

ԲաղադրիչԽնդիր
action_archive կոնտակտումՈրոնում է share = True ակտիվ օգտատերերին, որոնք կապված են կոնտակտին կամ (ընկերությունների դեպքում) ընկերության կոնտակտներին։ Եթե այդպիսիք կան, արխիվացնելու փոխարեն վերադարձվում է երկխոսությունը։
ՕգնականՊահպանում է ընկերությանը և գտնված օգտատերերին, ցույց է տալիս դրանք և «Այո»-ի դեպքում կատարում է արխիվացումը archive_linked_users կոնտեքստի բանալիով։
skip_archive_users_wizard կոնտեքստԱնջատում է երկխոսությունը։ Այդ դեպքում նորից գործում է Odoo-ի ստուգումը։
ՄուտքՕգնականը կարող են ստեղծել և օգտագործել ներքին օգտատերերը (base.group_user)։
ԹարգմանությունԳերմաներենը (de.po) և կաղապարը (.pot) կցված են։

Օգտատերերը որոնվում և արխիվացվում են բարձրացված իրավունքներով (sudo)։ Դրա շնորհիվ երկխոսությունը աշխատում է նաև օգտատերերի կառավարման մուտք չունեցող աշխատակիցների համար։ Հակառակ կողմը նշված է՝ Սահմանափակումներ.

Հայտնագործություն․ թեստը կանաչ էր, երկխոսությունը՝ այնուամենայնիվ կոտրված

Մոդուլն առաջին կիրառման ժամանակ ուներ սխալ, որը ավտոմատ թեստերը չգտան։ Ինտերֆեյսում «Արխիվացնել»-ին առաջին սեղմելիս երկխոսության փոխարեն հայտնվեց Odoo-ի սխալի էկրանը՝ Cannot read properties of undefined (reading 'map')։

Պատճառը․ վեբ-կլիենտը կանչում է action_archive-ը անմիջապես և վերադարձված գործողությունը կատարում է առանց լրացուցիչ մշակման։ Դրա ընթացքում նա պարտադիր կարդում է գործողության views բանալին։ Մեր գործողությունն ուներ միայն view_mode։ type="object" կոճակներից գործողությունները սերվերը նախապես լրացնում է (clean_action call_button-ում), բայց action_archive-ի ուղղակի կանչը՝ ոչ։ Թեստերը մեթոդը կանչում էին միայն Python-ում, և այնտեղ բացակայող դաշտը աչքի չէր ընկնում։

Շտկումը մեկ տող է ("views": [(False, "form")])՝ դրան գումարած թեստում ստուգում, որը պահանջում է հենց այս բանալին։ Այդ ընթացքում ոչինչ չարխիվացվեց։ Դասը․ ով գործողություն է վերադարձնում մեթոդից, որը կլիենտը կանչում է անմիջապես (action_archive, action_unarchive և նմանները), միշտ պետք է ներառի views-ը։

Տեղադրում

git clone https://github.com/Alex0176/odoo-partner-archive-users.git
ln -s /pfad/odoo-partner-archive-users/partner_archive_users /pfad/addons/
odoo-bin -c odoo.conf -d <datenbank> -i partner_archive_users --stop-after-init

Կախվածությունները base և contacts են։ Տեղադրումից հետո Odoo ծառայությունը պետք է վերագործարկվի, քանի որ մոդուլը պարունակում է Python կոդ։ Ով արտադրական համակարգ է շահագործում, մոդուլը նախ տեղադրում է տվյալների բազայի պատճենի վրա։

Սահմանափակումներ

  • Թույլտվություն։ Քանի որ օգտատերերը արխիվացվում են բարձրացված իրավունքներով, ով իրավունք ունի կոնտակտ արխիվացնել, երկխոսության միջոցով կարող է արխիվացնել նաև այդ ընկերության պորտալի մուտքերը։ Ներքին օգտատերերի համար դա չի գործում։ Ով ցանկանում է պորտալի մուտքերը ավելի նուրբ պաշտպանել, պետք է հարմարեցնի մոդուլը։
  • Ավտոմատ վերականգնում չկա։ Եթե ընկերությունը հետագայում նորից ակտիվացվի, օգտատերերը մնում են արխիվացված։ Նրանց պետք է ձեռքով նորից ակտիվացնել։
  • Միայն կոնտակտներ։ Մոդուլը վերաբերում է ընկերություններին՝ որպես կոնտակտների (res.partner)։ Odoo ընկերության (res.company) արխիվացումն ունի այլ ստուգումներ, օրինակ՝ երբ այն դեռ օգտատերերի լռելյայն ընկերությունն է։ Մոդուլը դրա համար նախատեսված չէ։
  • Փորձարկված է միայն Odoo 19.0 Community-ով։ Այլ տարբերակների համար մենք այն չենք ստուգել։

Հաճախ տրվող հարցեր

Ինչո՞ւ աշխատակիցները չեն արխիվացվում։

Ներքին օգտատերը համակարգում ունի իրավունքներ և սովորաբար կապված է սեփական տվյալների, առաջադրանքների և թույլտվությունների հետ։ Նրան արգելափակել ընկերության արխիվացման կողմնակի ազդեցությամբ մեզ համար չափազանց ռիսկային է։ Դրա համար մնում է Odoo-ի սխալի հաղորդագրությունը։

Կարո՞ղ եմ հարցումն անջատել։

Կոդում՝ skip_archive_users_wizard կոնտեքստի միջոցով։ Ինտերֆեյսում կարգավորում չկա։ Ով մոդուլը ապատեղադրում է, նորից ստանում է Odoo-ի ստանդարտ վարքագիծը։

Ի՞նչ լիցենզիայով է այն։

AGPL-3 լիցենզիայով։ Սխալները և բարելավումները ողջունվում են որպես issue՝ GitHub պահոցում ։

Biricon IT Services-ի աջակցությունը

Մենք սպասարկում ենք Odoo տեղադրումները փոքր և միջին ձեռնարկությունների համար՝ ներդրումից և հարմարեցումներից մինչև միգրացիաներ և ընթացիկ շահագործում։ Եթե ցանկանում եք պարզեցնել Odoo-ում այնպիսի գործընթացներ, ինչպիսին հաճախորդ ընկերությունների արխիվացումն է, ձեր հաճախորդների համար պորտալ կարգավորել կամ մոդուլ անվտանգ կերպով ներդնել ձեր արտադրական օրինակում, ուրախությամբ կօգնենք։ Այլ սեփական մշակումներ՝ Փաստաթղթերի համարներ՝ նախածանցից, տարուց և հաշվիչից, Firmenbuch և հասցեների ստուգում ավստրիացի հաճախորդների համար և Ապրանքակոմպլեկտները առաջարկում որպես բաժին.

Կապ հաստատել հիմա

Վիճակը՝ 2026 թվականի նոյեմբերի 3։ Մոդուլի տարբերակը՝ 19.0.1.0.0՝ նույն օրվա շտկմամբ։ Պատկերներում բոլոր անուններն ու մուտքանունները ազատ ընտրված են։