Viðskiptavinafyrirtæki hefur flutt sig, samningnum er lokið og þú vilt setja það í geymslu í Odoo. Odoo svarar með villuboðum: „Þú getur ekki sett í geymslu tengiliði sem eru tengdir virkum notanda. Settu fyrst viðkomandi notanda í geymslu.“ Hafi fyrirtækið marga gáttaraðganga þýðir það: leita að hverjum notanda fyrir sig, setja hvern í geymslu fyrir sig, aftur að fyrirtækinu, setja það aftur í geymslu.
Við skrifuðum til þess litlu eininguna Setja fyrirtæki í geymslu ásamt gáttarnotendum (partner_archive_users) fyrir Odoo 19. Í stað villuboðanna kemur spurning, og við „Já“ eru gáttarnotendurnir og fyrirtækið sett í geymslu í einu skrefi. Einingin er aðgengileg sem frjáls hugbúnaður undir AGPL-3-leyfinu á GitHub:
github.com/Alex0176/odoo-partner-archive-users
Við höfum notað eininguna hjá Biricon IT Services í framleiðslukerfinu okkar frá 3. nóvember 2026. Hún er ný, reynslan af henni er því stutt. Sá sem tekur hana upp ætti að lesa kaflana um gildissvið og takmarkanir .
Vandinn í staðal-Odoo
Odoo athugar þegar tengiliður er settur í geymslu hvort notandi sé tengdur honum og hættir við ef svo er. Athugunin er skynsamleg því að hver notandi þarf tengilið. Fyrir innri notendur, það er að segja starfsmenn, er lásinn einnig ætlaður. Hjá gáttarnotendum viðskiptavina er hann hins vegar fyrst og fremst handavinna. Hvert viðskiptavinafyrirtæki með gáttaraðganga, til dæmis til að skoða reikninga og miða, þarf sama ferli við vistun í geymslu:
- Leita að notendum fyrirtækisins og tengiliða þess,
- setja hvern fyrir sig í geymslu,
- aftur að fyrirtækinu,
- setja fyrirtækið í geymslu.
Lausnin: spurning
Einingin útvíkkar leiðina Aðgerð → Setja í geymslu á tengiliðnum, bæði í eyðublaði og í lista. Séu virkir gáttarnotendur tengdir völdu fyrirtæki eða tengiliðum þess opnast gluggi með spurningunni „Á í raun að setja fyrirtækið í geymslu? Enn eru virkir notendur í kerfinu.“ Þar fyrir neðan standa viðkomandi notendur með nafni, innskráningarnafni og tengilið.
- Já, setja fyrirtæki og notendur í geymslu: Fyrst eru notendurnir settir í geymslu, síðan fyrirtækið.
- Hætta við: Ekkert breytist.
- Engir gáttarnotendur til staðar: Odoo hegðar sér eins og áður, enginn gluggi birtist.
Hvað er sett í geymslu og hvað ekki
Gildissviðið er viljandi þröngt:
- Aðeins gáttar- og opinberir notendur (
share = True). Innri notendur eru aldrei settir í geymslu um þessa leið. Sé starfsmannsaðgangur tengdur við tengiliðinn helst villuboð Odoo. Þannig læsir enginn starfsmann fyrir slysni af því að hann setti fyrirtæki í geymslu. - Tengiliðir haldast virkir sem tengiliðir. Aðeins gáttaraðgangar þeirra eru settir í geymslu. Það samsvarar staðal-Odoo, sem snertir heldur ekki undirtengiliði þegar fyrirtæki er sett í geymslu.
- Aðeins geymsluleið viðmótsins. Bein
write({'active': False}), til dæmis í innflutningi eða skriftu, fer óbreytt inn í athugun Odoo.
Tæknileg útfærsla
Einingin hefur enga nýja reiti á fyrirliggjandi líkönum. Hún samanstendur af útvíkkun á res.partner.action_archive og aðstoðarforriti (partner.archive.users.wizard) sem birtist sem gluggi.
| Byggingarhluti | Hlutverk |
|---|---|
action_archive á tengiliðnum | Leitar að virkum notendum með share = True sem eru tengdir tengiliðnum eða (hjá fyrirtækjum) tengiliðum fyrirtækisins. Séu einhverjir er glugginn skilaður í stað þess að setja í geymslu. |
| Aðstoðarforrit | Vistar fyrirtæki og fundna notendur, sýnir þá og framkvæmir við „Já“ vistunina í geymslu með samhengislyklinum archive_linked_users. |
Samhengi skip_archive_users_wizard | Slekkur á glugganum. Þá gildir athugun Odoo aftur. |
| Aðgangur | Aðstoðarforritið mega innri notendur (base.group_user) búa til og nota. |
| Þýðing | Þýsk þýðing (de.po) og sniðmát (.pot) fylgja með. |
Notendurnir eru fundnir og settir í geymslu með auknum réttindum (sudo). Þannig virkar glugginn einnig fyrir notendur án aðgangs að notendastjórnun. Bakhliðin er undir takmarkanir.
Uppgötvun: Prófunin var græn, en svargluggi samt bilaður
Einingin hafði við fyrstu notkun villu sem sjálfvirku prófanirnar fundu ekki. Við fyrsta smell á „Setja í geymslu“ í viðmótinu birtist í stað gluggans villuskjár Odoo með Cannot read properties of undefined (reading 'map').
Orsökin: Vefbiðlarinn kallar beint á action_archive og framkvæmir skilaða aðgerð án frekari úrvinnslu. Þar les hann nauðsynlega lykil aðgerðarinnar views. Aðgerð okkar hafði aðeins view_mode. Aðgerðir úr hnöppum með type="object" bætir þjónninn áður við (clean_action í call_button), en ekki beint kall á action_archive. Prófanirnar kölluðu aðeins á fallið í Python og þar kom vantandi reiturinn ekki í ljós.
Lagfæringin er ein lína ("views": [(False, "form")]), auk þess kemur athugun í prófuninni sem krefst einmitt þessa lykils. Við það var ekkert sett í geymslu. Lærdómurinn: Sá sem skilar aðgerð úr falli sem biðlarinn kallar beint á (action_archive, action_unarchive og áþekk) ætti alltaf að láta views fylgja með.
Uppsetning
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
Háðleikar eru base og contacts. Eftir uppsetninguna þarf að endurræsa Odoo-þjónustuna því að einingin inniheldur Python-kóða. Sá sem rekur framleiðslukerfi setur eininguna fyrst upp á afriti gagnagrunnsins.
takmarkanir
- Heimild. Þar sem notendurnir eru settir í geymslu með auknum réttindum getur hver sem má setja tengilið í geymslu einnig sett gáttaraðganga þessa fyrirtækis í geymslu í gegnum gluggann. Þetta á ekki við um innri notendur. Sá sem vill tryggja gáttaraðganga nákvæmar verður að aðlaga eininguna.
- Engin sjálfvirk endurheimt. Sé fyrirtækið virkjað aftur síðar haldast notendurnir í geymslu. Þá verður að virkja aftur í höndunum.
- Aðeins tengiliðir. Einingin varðar fyrirtæki sem tengiliði (
res.partner). Að setja Odoo-fyrirtæki (res.company) í geymslu hefur aðrar athuganir, til dæmis þegar það er enn staðalfyrirtæki notenda. Einingin er ekki ætluð til þess. - Aðeins prófað með Odoo 19.0 Community. Fyrir aðrar útgáfur höfum við ekki athugað hana.
Algengar spurningar
Hvers vegna eru starfsmenn ekki settir í geymslu líka?
Innri notandi hefur réttindi í kerfinu og er oftast tengdur eigin gögnum, verkefnum og heimildum. Að læsa honum sem aukaverkun af því að setja fyrirtæki í geymslu er okkur of áhættusamt. Þess vegna helst villuboð Odoo.
Get ég slökkt á spurningunni?
Í kóðanum með samhenginu skip_archive_users_wizard. Stilling í viðmótinu er ekki til. Sá sem fjarlægir eininguna fær aftur staðalhegðun Odoo.
Undir hvaða leyfi er hún?
Undir AGPL-3. Villur og úrbætur eru vel þegnar sem issue í GitHub-geymslunni .
Aðstoð frá Biricon IT Services
Við sjáum um Odoo-uppsetningar fyrir lítil og meðalstór fyrirtæki: frá innleiðingu til sérsniðna og flutninga og áfram til daglegs reksturs. Ef þú vilt einfalda ferli eins og að setja viðskiptavinafyrirtæki í geymslu í Odoo, setja upp gátt fyrir viðskiptavini þína eða koma einingu örugglega í framleiðsluumhverfið þitt, hjálpum við með ánægju. Fleiri eigin þróunarverkefni: Skjalanúmer úr forskeyti, ári og teljara, Fyrirtækjaskrá og vistfangaathugun fyrir austurríska viðskiptavini og Vörusett í tilboði sem hluti.
Staða: 3. nóvember 2026. Einingarútgáfa 19.0.1.0.0 með lagfæringunni sama dag. Öll nöfn og innskráningarnöfn á myndunum eru frjálst valin.