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.
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.
De broncode van jouw Github-repository bevindt zich onder /src/user,
De broncode van Odoo bevindt zich onder
/src/odoo (odoo/odoo),
/src/enterprise (odoo/enterprise),
/src/themes (odoo/design-themes).
Om een bestand in de editor te openen, dubbelklikt je erop in het bestandsbrowserpaneel aan de linkerkant.
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.
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.
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.
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.
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.
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.
Je kunt ook pandas gebruiken om grafieken weer te geven.