온라인 편집기

전체보기

온라인 편집기를 사용하면 웹 브라우저에서 빌드의 소스 코드를 편집할 수 있습니다. 또한 터미널, Python 콘솔, Odoo 셸 콘솔 및 Notebooks 를 열 수 있습니다.

../../../_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).

소스 코드 편집

작업 디렉토리는 다음과 같은 폴더로 구성됩니다.

.
├── 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

개발 및 스테이징 빌드에서 소스 코드 (/src 아래에 있는 파일)를 편집할 수 있습니다.

참고

변경 사항은 새 빌드에 적용되지 않습니다. 변경 사항을 유지하려면 소스 코드에서 커밋해야 합니다.

프로덕션 빌드의 경우 소스 코드는 읽기 전용이며, 프로덕션 서버에 로컬 변경 사항을 적용하는 것은 바람직한 방법이 아니기 때문입니다.

  • Github 저장소의 소스 코드는 /src/user 아래에 있습니다.

  • Odoo의 소스 코드는 다음과 같은 위치에 있습니다.

편집기에서 파일을 열려면 왼쪽의 파일 브라우저 패널에서 해당 파일을 더블 클릭합니다.

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

그런 다음 변경 작업을 시작할 수 있습니다. 파일 ‣ 저장 .. 파일 메뉴를 사용하거나 Ctrl+S 단축키를 누르면 변경 사항을 저장할 수 있습니다.

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

Odoo 서버 애드온 경로 아래에 있는 Python 파일을 저장하면 Odoo에서 이를 인식하여 자동으로 다시 로드하므로 서버를 수동으로 다시 시작할 필요 없이 변경 사항이 즉시 반영됩니다.

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

하지만 필드 또는 뷰의 레이블 변경과 같이 데이터베이스에 저장된 데이터와 관련된 수정 사항인 경우 해당 모듈을 업데이트하여 변경 사항을 구현해야 합니다. 현재 열려 있는 파일의 모듈은 메뉴 :menuselection:`Odoo –> 현재 모듈 업데이트`를 사용하여 업데이트할 수 있습니다. 현재 열려 있는 것으로 간주되는 파일은 파일 브라우저에서 강조 표시된 파일이 아니라 텍스트 편집기에서 초점이 맞춰진 파일입니다.

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

터미널을 열어서 다음 명령을 실행할 수도 있습니다.

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

변경 사항 커밋 및 푸시

Github 저장소에 변경 사항을 커밋하고 푸시할 수 있습니다.

  • 터미널을 엽니다 (파일 ‣ 새로 만들기 ‣ 터미널),

  • cd ~/src/user 를 사용하여 디렉토리를 ~/src/user 로 변경합니다.

  • git add 를 사용하여 변경 사항을 스테이징합니다.

  • git commit 을 사용하여 변경 사항을 커밋합니다.

  • git push https HEAD:<branch> 를 사용하여 변경 사항을 푸시합니다.

마지막 명령어에서,

  • httpsHTTPS Github 원격 저장소의 이름입니다 (예: https://github.com/username/repository.git).

  • HEAD는 커밋한 최신 개정 버전의 참조입니다.

  • <branch> 반드시 변경 사항을 푸시하려는 브랜치의 이름으로 변경해야 하며, 개발 빌드에서 작업하는 경우 보통은 현재 브랜치로 변경합니다.

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

참고

보안 고려 사항으로 인해 빌드 컨테이너에 SSH 개인 키가 없거나 웹 브라우저를 통해 이 편집기에 액세스하는 경우 SSH 에이전트를 통해 전달되기 때문에 SSH Github 리모트는 사용되지 않습니다. 따라서 SSH를 사용하여 Github에 인증할 수 없습니다. 대신, 변경 사항을 푸시하려면 Git 리포지토리의 HTTPS 리모컨을 사용해야 하며, 이 리모컨은 자동으로 추가되고 Git 리모컨의 이름이 *https*로 지정됩니다. 이 과정에서 Github 사용자 이름과 비밀번호를 입력하라는 메시지가 표시됩니다. Github에서 2단계 인증을 사용 설정한 경우 개인 액세스 토큰 <https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/>`_을 생성하여 비밀번호로 사용할 있습니다. ``리포지토리` 권한을 부여하는 것이 적절합니다.

참고

Git 소스 폴더 ~/src/user 는 브랜치가 아니라 분리된 리비전에서 체크아웃됩니다. 이는 빌드가 브랜치가 아닌 특정 리비전에서 작동하기 때문입니다. 즉, 여러 개의 빌드가 동일한 브랜치에 있으나 서로 다른 리비전에 있을 수 있다는 의미입니다.

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.

콘솔

Python 콘솔을 열 수 있으며, 이는 IPython 대화형 셸 입니다. 터미널 내에서 IPython 셸 대신 Python 콘솔을 사용할 때 가장 특이한 추가 사항 중 하나는 풍부한 디스플레이 <https://ipython.readthedocs.io/en/stable/config/integrating.html#rich-display> 기능입니다. _ 능력. 이 기능 덕분에 HTML로 개체를 표시할 수 있습니다.

예를 들어 CSV 파일의 셀을 표시하는 데 pandas 를 사용할 수 있습니다.

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

또한 Odoo 셸 콘솔을 열어서 데이터베이스의 Odoo 레지스트리 및 모델 메서드를 가지고 여러 가지 방법으로 실행해 볼 수도 있습니다. 레코드를 직접 읽거나 쓸 수도 있습니다.

경고

Odoo 콘솔에서는 트랜잭션이 자동으로 커밋됩니다. 이를 통해 예를 들어 레코드의 변경 사항이 데이터베이스에 효과적으로 적용된다는 것을 알 수 있습니다. 사용자 이름을 변경하면 데이터베이스에서도 사용자 이름이 변경됩니다. 따라서 프로덕션 데이터베이스에서는 Odoo 콘솔을 주의해서 사용해야 합니다.

env 를 사용하여 데이터베이스 레지스트리 모델을 호출할 수 있습니다. 예: env['res.users']

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

Pretty 클래스는 위에서 언급한 rich display 를 사용하여 목록과 사전을 수려한 방식으로 쉽게 표시할 수 있습니다.

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

pandas 를 사용하여 그래프를 표시할 수도 있습니다.

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