Online-editor

Overzicht

Met de online editor kunt je de broncode van jouw builds vanuit een webbrowser bewerken. Het geeft je ook de mogelijkheid om terminals, Python-consoles, Odoo Shell-consoles en Notebooks te openen.

../../../_images/interface-editor.png

You can access the editor of a build through the branches tabs, the builds dropdown menu or by adding /odoo-sh/editor to your build domain name (e.g. https://odoo-addons-master-1.dev.odoo.com/odoo-sh/editor).

Bewerk de broncode

De werkmap bestaat jeit de volgende mappen:

.
├── home
│    └── odoo
│         ├── src
│         │    ├── odoo                Odoo Community source code
│         │    │    └── odoo-bin       Odoo server executable
│         │    ├── enterprise          Odoo Enterprise source code
│         │    ├── themes              Odoo Themes source code
│         │    └── user                Your repository branch source code
│         ├── data
│         │    ├── filestore           database attachments, as well as the files of binary fields
│         │    └── sessions            visitors and users sessions
│         └── logs
│              ├── install.log         Database installation logs
│              ├── odoo.log            Running server logs
│              ├── update.log          Database updates logs
│              └── pip.log             Python packages installation logs

Je kunt de broncode (bestanden onder /src) bewerken in ontwikkelings- en staging-builds.

Notitie

Jouw wijzigingen worden niet doorgevoerd in een nieuwe build; je moet ze in jouw broncode vastleggen als je ze wilt behouden.

Voor productiebuilds is de broncode alleen-lezen, omdat het toepassen van lokale wijzigingen op een productieserver geen goede gewoonte is.

Om een bestand in de editor te openen, dubbelklikt je erop in het bestandsbrowserpaneel aan de linkerkant.

../../../_images/interface-editor-open-file.png

Je kunt dan beginnen met het aanbrengen van jouw wijzigingen. Je kunt jouw wijzigingen opslaan met het menu :menuselectie:`Bestand --> Opslaan .. Bestand` of door op de sneltoets Ctrl+S te drukken.

../../../_images/interface-editor-save-file.png

Als je een Python-bestand opslaat dat zich onder het pad van jouw Odoo-server-add-ons bevindt, zal Odoo het detecteren en automatisch opnieuw laden, zodat jouw wijzigingen onmiddellijk worden doorgevoerd, zonder dat je de server handmatig opnieuw hoeft op te starten.

../../../_images/interface-editor-automaticreload.gif

Als de wijziging echter betrekking heeft op gegevens die zijn opgeslagen in de database, zoals het label van een veld of een weergave, moet je de overeenkomstige module bijwerken om de wijziging toe te passen. Je kunt de module van het momenteel geopende bestand bijwerken via het menu :menuselectie:`Odoo --> Update huidige module`. Houd er rekening mee dat het bestand dat als momenteel geopend wordt beschouwd, het bestand is dat in de teksteditor is gemarkeerd, en niet het bestand dat in de bestandsbrowser is gemarkeerd.

../../../_images/interface-editor-update-current-module.png

Je kunt ook een terminal openen en de opdracht jeitvoeren:

$ odoo-bin -u <comma-separated module names> --stop-after-init

Commit & Push jouw wijzigingen

Je hebt de mogelijkheid om jouw wijzigingen vast te leggen en naar jouw Github-repository te pushen.

  • Open een terminal (:menuselectie:`Bestand --> Nieuw --> Terminal`),

  • Verander de directory naar ~/src/user met cd ~/src/user,

  • Stage jouw wijzigingen met behulp van git add,

  • Leg jouw wijzigingen vast met git commit,

  • Push jouw wijzigingen met :code:`git push https HEAD:<branch> `.

In dit laatste commando,

  • https is de naam van jouw HTTPS Github externe repository (bijvoorbeeld https://github.com/username/repository.git),

  • HEAD is de verwijzing naar de laatste revisie die je hebt vastgelegd,

  • <branch>moet worden vervangen door de naam van de branch waarnaar je de wijzigingen wilt pushen, hoogstwaarschijnlijk de huidige branch als je in een ontwikkelingsbuild werkt.

../../../_images/interface-editor-commit-push.png

Notitie

De SSH Github-afstandsbediening wordt niet gebruikt omdat jouw persoonlijke SSH-sleutel niet wordt gehost in jouw build-containers (vanwege duidelijke veiligheidsproblemen) en ook niet wordt doorgestuurd via een SSH-agent (aangezien je deze editor opent via een webbrowser) en je zich daarom niet kunt authenticeren bij Github met behulp van SSH. Je moet de HTTPS-afstandsbediening van je Github-repository gebruiken om je wijzigingen door te voeren, die automatisch worden toegevoegd met de naam https in je Git-afstandsbedieningen. Jij wordt gevraagd jouw Github-gebruikersnaam en wachtwoord in te voeren. Als je de tweefactorauthenticatie op Github hebt geactiveerd, kun je een `persoonlijk toegangstoken maken <https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/ >`_ en gebruik het als wachtwoord. Het verlenen van de repo toestemming is voldoende.

Notitie

De Git bronmap ~/src/user wordt niet uitgecheckt op een branch maar eerder op een losse revisie: Dit komt omdat builds werken op specifieke revisies in plaats van op branches. Met andere woorden, dit betekent dat je meerdere builds op dezelfde branch kunt hebben, maar op verschillende revisies.

Once your changes are pushed, according to your branch push behavior, a new build may be created. You can continue to work in the editor you pushed from, as it will have the same revision as the new build that was created, but always make sure to be in an editor of a build using the latest revision of your branch.

Consoles

Je kunt Python-consoles openen, dit zijn IPython interactieve shells. Een van de meest interessante toevoegingen om een Python-console te gebruiken in plaats van een IPython-shell binnen een terminal is de rich display <https://ipython.readthedocs.io/en/stable/config/integrating.html#rich-display> _ mogelijkheden. Hierdoor kunt je objecten in HTML weergeven.

Je kunt bijvoorbeeld cellen van een CSV-bestand weergeven met pandas.

../../../_images/interface-editor-console-python-read-csv.png

Je kunt ook een Odoo Shell-console openen om te spelen met het Odoo-register en de modelmethoden van jouw database. Je kunt ook direct in jouw administratie lezen of schrijven.

Waarschuwing

In een Odoo Console worden transacties automatisch vastgelegd. Dit betekent bijvoorbeeld dat wijzigingen in records effectief worden doorgevoerd in de database. Als je de naam van een gebruiker wijzigt, wordt de naam van de gebruiker ook in jouw database gewijzigd. Daarom moet je Odoo-consoles zorgvuldig gebruiken op productiedatabases.

Je kunt env gebruiken om modellen van jouw databaseregister op te roepen, b.v. env['res.users'].

env['res.users'].search_read([], ['name', 'email', 'login'])
[{'id': 2,
'login': 'admin',
'name': 'Administrator',
'email': 'admin@example.com'}]

De klasse Pretty geeft je de mogelijkheid om eenvoudig lijsten en dictaten op een mooie manier weer te geven, met behulp van de rich display hierboven vermeld.

../../../_images/interface-editor-console-odoo-pretty.png

Je kunt ook pandas gebruiken om grafieken weer te geven.

../../../_images/interface-editor-console-odoo-graph.png