Hướng dẫn viết tài liệu trên local

1. Requirements

  • Eclipse + Pydev

  • Python 3.8 venv

  • Git

  • Có SSH key cho tài khoản github

2. Lấy mã nguồn về local

  1. Truy cập vào đường dẫn https://github.com/Viindoo/documentation. Nếu KHÔNG truy cập được thì thực hiện các bước sau:

  2. Tạo tài khoản github, một tài khoản github phải có đầy đủ 2 thông tin sau để dễ dàng nhận diện:
    • Name = Tên trên hồ sơ nhân viên

    • Avatar

  3. Mở Eclipse

  4. Truy cập vào menu File > Import

  5. Chọn Project from Git

    ../../_images/img01.png
  6. Next và paste đường dẫn git@github.com:Viindoo/documentation.git vào ô URI

    ../../_images/img02.png
  7. Next

  8. Next và điền thông tin:
    • Directory: /home/leotran/git/documentation/documentation14 vào ô Directory. Lưu ý: thay leotran = tên đăng nhập trên máy

    • Initial branch: 14.0. Có thể thay bằng 15.0, 16.0,... nếu muốn

    ../../_images/img04.png
  9. Next và chọn Import using the New Project wizard

    ../../_images/img04.png
  10. Finish và chọn Pydev Project

    ../../_images/img05.png
  11. Next
    • Bỏ tích Use default và click vào nút Browse

    • Chọn đến đường dẫn đã khai báo ở bước 7 (xem ảnh bên dưới): /home/leotran/git/documentation/documentation14 và hoàn thành các thông tin sau

      • Viết tài liệu

      • Interpreter: python3.8-venv-odoo14

    ../../_images/img06.png
  12. NextFinish

LƯU Ý: phần này chỉ thực hiện 1 lần đầu tiên

3. Cài đặt requirements

  1. Mở màn hình Terminal hoặc nhấn tổ hợp bàn phím Ctrl + alt + T

  2. Gõ lệnh: cd /home/leotran/git/documentation/documentation14 lưu ý đây là đường dẫn lưu mã nguồn đã khai báo ở bước 7 hoặc bước 12 ở trên

  3. Gõ lệnh: source /home/leotran/python3.8-venv/odoo14/bin/activate Trong đó /home/leotran/python3.8-venv/odoo14 là đường dẫn python venv cho Odoo 14 đã được đào tạo trước đó

  4. Gõ lệnh: pip install -r requirements.txt

  5. Sau khi cài đặt xong thì chạy lại lệnh trên để kiểm tra lại. Nếu kết quả như hình dưới đây thì việc cài đặt đã thành công

    ../../_images/img07.png

LƯU Ý: phần này chỉ thực hiện 1 lần đầu tiên

4. Preview tài liệu dưới local

  1. Gõ lệnh: cd /home/leotran/git/documentation/documentation14 lưu ý đây là đường dẫn lưu mã nguồn đã khai báo ở bước 7 hoặc bước 12 ở trên. Lưu ý: nếu trên màn hình Terminal đang đứng ở đây rồi thì không cần thực hiện bước này nữa

  2. Gõ lệnh: source /home/leotran/python3.8-venv/odoo14/bin/activate

  3. Gõ lệnh: make clean

  4. Gõ lệnh: make đây là câu lệnh để tạo ra trang với 1 ngôn ngữ (không có đa ngôn ngữ)

  5. Gõ lệnh: make LANGUAGES=en,vi CURRENT_LANG=en Đây là câu lệnh để tạo ra trang tài liệu tiếng Anh (html)

  6. Gõ lệnh: make LANGUAGES=en,vi CURRENT_LANG=vi Đây là câu lệnh để tạo ra trang tài liệu tiếng Việt (html)

  7. Sau 2 câu lệnh trên, một file index.html sẽ được tạo ra trong thư mục /home/leotran/git/documentation/documentation14/_build/html/en,vi trong đó /home/leotran/git/documentation/documentation14 là thư mục lưu trữ mã nguồn

  8. Truy cập vào thư mục trên và mở file index.html

LƯU Ý:
  • Nếu bạn không quan tâm tới đa ngôn ngữ thì có thể bỏ qua bước 5 và 6.

  • Việc này có thể thực hiện lặp đi lặp lại bất cứ khi nào muốn xem trước hệ thống website tài liệu dưới local. Đặc biệt khi có nội dung mới, sử dụng phần này để preview nội dung dưới local trước khi đẩy lên server

5. Tạo bản Fork:

  1. Truy cập vào đường link https://github.com/Viindoo/documentation

  2. Click vào nút Fork như hình vẽ dưới đây

../../_images/img08.png
  1. Chọn tài khoản của bạn để Fork

../../_images/img09.png

LƯU Ý: phần này chỉ thực hiện lần đầu tiên

6. Add remote dưới Local:

  • Truy cập và đăng nhập vào https://github.com/

  • Click vào avatar và chọn Your Repository

../../_images/img10.png
  • Tìm và truy cập vào repository có tên documentation. Đây là bản đã được Fork ở trên

  • Click vào nút Code và copy đường dẫn SSH

../../_images/img11.png
  • Mở Eclipse

  • Chuyển sang Perspective là Git như hình vẽ dưới đây

../../_images/img12.png
  • Tìm đến project Documentation14 ở bên trái và click phải chuột vào Remotes đồng thời chọn Create Remote

  • Nhập Remote name (tên của bạn, viết thường, không cách trống) và tích chọn Configure fetch

../../_images/img13.png
  • Click vào nút Create

  • Click vào nút Change và paste đường dẫn đã copy ở bước 4 vào ô URI

../../_images/img14.png
  • Các thông tin khác giữ nguyên và click vào nút Finish

  • Click vào nút Save and Fetch

  • Chuyển lại Respective là Pydev bằng cách click vào biểu tượng cạnh bên trái của Git (xem hình vẽ tại bước số 6) để kết thúc phần này

    base_url = self.env['ir.config_parameter'].sudo().get_param('web.base.url')

LƯU Ý: phần này chỉ thực hiện 1 lần đầu tiên

7. Tạo nhánh (branch) dưới Local:

  1. Mở Eclipse

  2. Viết tài liệu

  3. Đảm bảo đang ở nhánh 14.0, nếu chưa thì cần phải Switch sang nhánh 14.0 bằng cách click phải chuột vào project documentation14 và chọn Team -> Switch To -> 14.0

  4. Trước khi tạo nhánh mới cần lấy code mới nhất của 14.0 về

  5. Click phải chuột vào project documentation14 và chọn Team -> Switch To -> New Branch

  6. Nhập tên nhánh vào ô Branch name. Tên nhánh phải viết thường, ngăn cách bởi _, không có ký tự đặc biệt và phải đảm bảo format v<odoo_version>_<tinh_nang>. Ví dụ: v14_accounting_expense, v14_point_of_sale_overview, v14_add_approve_category,...

  7. Click vào nút Finish

  8. Tên nhánh sẽ được thể hiện ở ngay tên của project

../../_images/img15.png

LƯU Ý: phần này sẽ được thực hiện mỗi khi bạn định tạo **PR (để đưa code lên) trên github**

8. Quản lý Category:

Hệ thống tài liệu gồm 3 phần chính. 3 phần này nếu muốn thêm, sửa, xóa thì cần liên lạc với bộ phận kỹ thuật để can thiệp kỹ thuật
  • User Documentation: Tài liệu người dùng

  • Technical Documentation: Tài liệu kỹ thuật

  • Đóng góp

Bài tập 1: trong phần User Documentation, thêm category Approval ngang cấp với Finance
  1. Mở Eclipse

  2. Tạo nhánh (branch) có tên v14_add_approval_category

  3. Mở thư mục content

  4. Mở file applications.rst

  5. Thêm một dòng applications/approval vào dưới dùng applications/productivitylưu lại

  6. Mở thư mục content > applications

  7. Click phải chuột vào thư mục applications và chọn New -> File

  8. Nhập tên file là approval.rst Lưu ý tên file (không tính phần đuôi .rst) phải giống hệt approval đã thêm ở bước 5

  9. Gõ đoạn code sau vào file approval.rst

:hide-local-toc:
:display-toc:

     ========
     Approval
     ========
  1. Save file (Ctrl + S)

  2. Thực hiện mục số 4. Preview tài liệu để xem kết quả

Bài tập 2: Thêm 2 categories là Timesheet ApprovalOvertime Approval nằm trong category Approval
  • Update file approval.rst thành

:hide-local-toc:
:display-toc:

     ========
     Approval
     ========

.. toctree::

 approval/timesheet
 approval/overtime
  • Click phải chuột vào thư mục applications (nằm trong thư mục content) và chọn New -> Folder. Nhập tên Folder name là approval (lưu ý không vết hoa)

  • Click phải chuột vào thư mục approval mới tạo ở trên và chọn New -> File. Nhập File name là timesheet.rst

  • Làm tương tự để tạo ra file overtime.rst

  • File timesheet.rst có nội dung như sau:

==================
Timesheet Approval
==================

File overtime.rst có nội dung như sau .. code-block:

=================
Overtime Approval
=================
  • Thực hiện mục số 4. Preview tài liệu để xem kết quả. Lưu ý nếu chưa nhận nội dung mới thêm vào thì có thể tắt trình duyệt đi mở lại file index.html

9. Quản lý bài viết

Việc tạo ra 2 file timesheet.rst và overtime.rst ở trên chính là việc thêm 2 bài viết mới cho category Approval. Nội dung trong 2 file này chính là nội dung bài viết.

Bây giờ bạn có thể viết nội dung bất kỳ vào 2 file này hoặc 1 file khác nếu bạn muốn, ví dụ file expense.rst nằm trong thư mục content > application > finance.

Nội dung bài viết được viết theo cú pháp reStructuredText

Các bài viết thuộc phần User Documentation sẽ được lưu trữ và phân cấp trong thư mục applications. Bạn có thể dựa theo category được phân cấp ở bên tay trái của file index.html để tìm ra bài viết tương ứng trong thư mục applications này

../../_images/img15.png

Như hình ví dụ trên, nếu bạn muốn viết bài CRM thuộc category Sales, bạn tìm đến file crm.rst trong thư mục content > applications > sales.

../../_images/img16.png

Như hình ví dụ trên, nếu bạn muốn viết bài CRM thuộc category Sales, bạn tìm đến file crm.rst trong thư mục content > applications > sales.

10. Tạo hoặc Update file dịch

  1. Gõ lệnh: cd /home/leotran/git/documentation/documentation14. Lưu ý đây là đường dẫn lưu mã nguồn đã khai báo ở bước 7 hoặc bước 12 ở trên. Nếu trên màn hình Terminal đang đứng ở đây rồi thì không cần thực hiện bước này nữa.

  2. Gõ lệnh: make translate.

  3. Sau câu lệnh trên, các file ngôn ngữ tiếng Việt sẽ được tạo mới hoặc update trong thư mục locale > vi > LC_MESSAGES.

  4. Mở file .po muốn dịch để thực hiện dịch, trong trường hợp này sẽ là file applications.po.

11. Commit và Push

  1. Mở Eclipse

  2. Đảm bảo project documentation14 đang ở nhánh mong muốn, trong trường hợp này là nhánh v14_add_approval_category

  3. Click phải chuột vào project này

  4. Chọn Team -> Commit

  5. Tại màn hình commit, click vào dấu cộng như hình dưới đây để đảm bảo đã add toàn bộ những thay đổi trước khi commit

../../_images/img17.png
  1. Nhập Commit Message và nhấn nút Commit and Push…

  2. Tại màn hình Push, phần thông tin Remote chọn remote mà được add ở mục số 6.

../../_images/img18.png
  1. Click vào nút Preview

  2. Click vào nút Push

  3. Nhấn nút Close để hoàn tất

LƯU Ý: tại bước 7 nếu chọn sai remote có thể bạn sẽ không có quyền push, vì thông thường bạn chỉ có quyền push lên bản Fork của mình

12. Tạo PR trên Github

  1. Truy cập vào đường link https://github.com/Viindoo/documentation/pulls

  2. Bạn sẽ thấy thông tin warning (nền màu vàng) như hình dưới đây

../../_images/img19.png
  1. Nếu đấy đúng là nhánh mà bạn vừa push, trong trường hợp này là v14_add_approval_category thì bạn click vào nút Compare & pull request

../../_images/img20.png
  1. Chỉnh sửa tiêu đề nếu cần

  2. Nhập nội dung miêu tả của Pull Request

  3. Request Reviewers ở bên tay phải nếu cần

  4. Kéo chuột xuống bên dưới để review lại nội dung thay đổi trước khi tạo Pull Request

  5. Click vào nút Create pull request

13. Review và Merge

  1. Cài extension Better Pull Request for GitHub trên google chrome

  2. F5 trình duyệt google chrome để cập nhật extension

  3. Truy cập vào Pull Request bất kỳ trong danh sách https://github.com/Viindoo/documentation/pulls

  4. Click vào tab Files Changed để thực hiện review

../../_images/img21.png
  1. Bên tay trái là danh sách các files có sự thay đổi

  2. Bên tay phải là nội dung thay đổi tương ứng với từng file

14. Rebase

15. Reset

16. Cách viết reStructuredText

Tham khảo tài liệu hướng dẫn viết reStructuredText tại https://viindoo.com/documentation/14.0/contributing/documentation/rst_cheat_sheet.html