Skip to Content

Odoo 19: Αρχειοθέτηση εταιρείας μαζί με τους χρήστες της πύλης – Το πρόσθετο partner_archive_users ζητά επιβεβαίωση αντί να εμφανίζει σφάλμα

3 Νοεμβρίου 2026 | Odoo 19 Community | Δική μας ανάπτυξη
3 Νοεμβρίου 2026 από
Odoo 19: Αρχειοθέτηση εταιρείας μαζί με τους χρήστες της πύλης – Το πρόσθετο partner_archive_users ζητά επιβεβαίωση αντί να εμφανίζει σφάλμα

Πρόσθετο partner_archive_users για το Odoo 19: Επιβεβαίωση κατά την αρχειοθέτηση εταιρείας με χρήστες πύλης

Μια εταιρεία που ήταν πελάτης σας αποχώρησε, η σύμβαση έληξε και θέλετε να την αρχειοθετήσετε στο Odoo. Το Odoo εμφανίζει μήνυμα σφάλματος: «Δεν μπορείτε να αρχειοθετήσετε επαφές που συνδέονται με ενεργό χρήστη. Αρχειοθετήστε πρώτα τον αντίστοιχο χρήστη.» Αν η εταιρεία έχει πολλούς λογαριασμούς πρόσβασης στην πύλη, πρέπει να αναζητήσετε κάθε χρήστη ξεχωριστά, να τον αρχειοθετήσετε, να επιστρέψετε στην εταιρεία και να επιχειρήσετε ξανά την αρχειοθέτηση.

Γι’ αυτό αναπτύξαμε το μικρό πρόσθετο Αρχειοθέτηση εταιρείας μαζί με τους χρήστες πύλης (partner_archive_users) για το Odoo 19. Αντί για μήνυμα σφάλματος, εμφανίζεται ερώτηση επιβεβαίωσης και, αν επιλέξετε «Ναι», οι χρήστες πύλης και η εταιρεία αρχειοθετούνται σε ένα βήμα. Το πρόσθετο διατίθεται ως ελεύθερο λογισμικό με άδεια AGPL-3 στο GitHub:

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

Στην Biricon IT Services χρησιμοποιούμε το πρόσθετο στο περιβάλλον παραγωγής μας από τις 3 Νοεμβρίου 2026. Είναι καινούργιο, επομένως η εμπειρία μας από τη χρήση του είναι ακόμη περιορισμένη. Όποιος το υιοθετήσει θα πρέπει να διαβάσει τις ενότητες για το πεδίο εφαρμογής και τους περιορισμούς .

Το πρόβλημα στην τυπική λειτουργία του 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').

Η αιτία: ο web client καλεί απευθείας την action_archive και εκτελεί την ενέργεια που επιστρέφεται χωρίς περαιτέρω επεξεργασία. Κατά την εκτέλεση διαβάζει υποχρεωτικά το κλειδί views της ενέργειας. Η δική μας ενέργεια περιείχε μόνο το view_mode. Ο διακομιστής συμπληρώνει εκ των προτέρων τις ενέργειες από κουμπιά με type="object" (clean_action στην call_button), αλλά δεν κάνει το ίδιο στην απευθείας κλήση της action_archive. Οι δοκιμές καλούσαν τη μέθοδο μόνο από την Python, όπου η απουσία του πεδίου δεν έγινε αντιληπτή.

Η διόρθωση είναι μία γραμμή ("views": [(False, "form")]), μαζί με έναν έλεγχο στη δοκιμή που απαιτεί συγκεκριμένα αυτό το κλειδί. Κατά το σφάλμα δεν αρχειοθετήθηκε τίποτα. Το δίδαγμα: όταν επιστρέφετε μια ενέργεια από μέθοδο που καλεί απευθείας ο client (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, να δημιουργήσετε μια πύλη για τους πελάτες σας ή να εγκαταστήσετε με ασφάλεια ένα πρόσθετο στο παραγωγικό σας περιβάλλον, είμαστε στη διάθεσή σας. Άλλα πρόσθετα που έχουμε αναπτύξει: Αρίθμηση παραστατικών με πρόθεμα, έτος και αύξοντα αριθμό, Εμπορικό μητρώο και έλεγχος διευθύνσεων για πελάτες στην Αυστρία και τους Σετ προϊόντων ως ενότητα στην προσφορά.

Επικοινωνήστε μαζί μας τώρα

Τελευταία ενημέρωση: 3 Νοεμβρίου 2026. Έκδοση πρόσθετου 19.0.1.0.0 με τη διόρθωση της ίδιας ημέρας. Όλα τα ονόματα και τα ονόματα σύνδεσης στις εικόνες είναι ενδεικτικά.