Tìm hiểu ODOO FRAMEWORK và xây dựng ứng dụng thương mại điện tử WEBSITE EPIC furniture (báo cáo cuối kì đồ án 1)

183 50 0
Tìm hiểu ODOO FRAMEWORK và xây dựng ứng dụng thương mại điện tử WEBSITE EPIC furniture (báo cáo cuối kì đồ án 1)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM -🙞🙜🕮🙞🙜 - BÁO CÁO ĐỒ ÁN ĐỀ TÀI: TÌM HIỂU ODOO FRAMEWORK VÀ XÂY DỰNG ỨNG DỤNG THƯƠNG MẠI ĐIỆN TỬ WEBSITE: EPIC Furniture GVHD: Thái Thụy Hàn Uyển Sinh viên thực hiện: Hà Minh Quang TPHCM, tháng 06 năm 2022 Copyright © 2022 by Epic - 18521293 Báo cáo cuối kì Đồ án LỜI CẢM ƠN Lời đầu tiên, nhóm tác giả xin chân thành cảm ơn Quý Thầy Cô khoa Công nghệ Phần mềm, Trường Đại Học Công Nghệ Thông Tin, ĐHQG TP.HCM, tận tình hướng dẫn nhóm suốt thời gian qua Những kiến thức mà Thầy Cô truyền đạt tảng quan trọng để nhóm hồn thành đề tài Nhóm tác giả xin gửi lời cảm ơn chân thành lòng biết ơn sâu sắc đến ThS Thái Thụy Hàn Uyển, cảm ơn tận tình hướng dẫn tạo điều kiện tốt cho nhóm hồn thành đề tài Những lời động viên, góp ý chân tình Cơ động lực quý báu để nhóm vượt qua khó khăn tìm hiểu thực đề tài Trong thời gian thực đề tài, nhóm tác giả cố gắng vận dụng kiến thức tảng học, kết hợp học hỏi tìm hiểu cơng nghệ để ứng dụng xây dựng đề tài môn học Tuy nhiên trình thực hiện, kiến thức kinh nghiệm cịn nhiều hạn chế, khó tránh khỏi thiếu sót Chính vậy, nhóm tác giả mong nhận góp ý từ Q Thầy Cơ để nhóm hồn thiện thêm kiến thức mà nhóm học tập, làm hành trang quý báu cho nhóm cơng việc sau Sau cùng, nhóm tác giả xin kính chúc Q Thầy Cơ khoa Cơng nghệ phần mềm Cô Thái Thụy Hàn Uyển thật dồi sức khỏe, niềm tin để tiếp tục thực sứ mệnh cao đẹp truyền đạt kiến thức cho hệ mai sau Xin chân thành cảm ơn Q Thầy Cơ ! Copyright © 2022 by Epic Báo cáo cuối kì Đồ án NHẬN XÉT (Của giáo viên hướng dẫn) Copyright © 2022 by Epic Báo cáo cuối kì Đồ án DANH SÁCH THÀNH VIÊN NHÓM Tên thành viên Hà Minh Quang MSSV 18521293 Copyright © 2022 by Epic Báo cáo cuối kì Đồ án MỤC LỤC TỔNG QUAN VỀ ĐỀ TÀI Đặt vấn đề Giải pháp Mục tiêu đề tài Phạm vi đề tài Cơng cụ sử dụng Tìm hiểu Odoo (có đính kèm tài liệu dịch thuật nhóm) KHẢO SÁT VÀ PHÂN TÍCH ĐẶC TẢ YÊU CẦU Khảo sát trạng Phương pháp khảo sát Hiện trạng nghiệp vụ Mua có trả góp Mua khơng trả góp Lập hoá đơn bán hàng Quản lý khách hàng Quản lý sản phẩm Quản lý nhân viên Quản lý doanh thu Hiện trạng tổ chức Hiện trạng tin học Danh sách yêu cầu Yêu cầu khách hàng Yêu cầu nghiệp vụ Danh sách yêu cầu Danh sách biểu mẫu quy định Biểu mẫu qui định Biểu mẫu Biểu mẫu Biểu mẫu qui định Biểu mẫu qui định Biểu mẫu quy định Biểu mẫu quy định Biểu mẫu Biểu mẫu quy định Copyright © 2022 by Epic 1 2 6 9 10 11 11 12 13 14 15 16 16 16 16 18 18 18 18 18 18 19 19 19 20 Báo cáo cuối kì Đồ án Biểu mẫu 10 quy định Biểu mẫu 11 quy định 10 Biểu mẫu 12 Biểu mẫu 13 quy định 11 Biểu mẫu 14 quy định 12 Biểu mẫu 15 quy định 13 Biểu mẫu 16 quy định 14 Biểu mẫu 17 quy định 15 Yêu cầu tiến hóa Yêu cầu hiệu Yêu cầu tiện dụng Bảng trách nhiệm cho yêu cầu Yêu cầu nghiệp vụ Yêu cầu tiến hóa Yêu cầu hiệu Yêu cầu tiện dụng Yêu cầu phần cứng Quy tắc nghiệp vụ Use Case, Đặc tả use case sơ đồ hoạt động Usecase tổng quát Usecase cho Khách Usecase cho Người dùng Usecase cho Nhân viên bán hàng Usecase cho Nhân viên kho Usecase cho Kế toán Usecase cho Quản lý Sơ đồ Sơ đồ việc xem sản phẩm Sơ đồ cho việc đặt hàng Sơ đồ cho việc nhập hàng Sơ đồ cho việc thêm tài khoản Sơ đồ cho việc thêm sản phẩm Sơ đồ cho việc lập báo cáo Sơ đồ trạng thái Sơ đồ trạng thái cho Đăng nhập Sơ đồ trạng thái cho Thêm tài khoản Copyright © 2022 by Epic 20 20 20 20 21 21 21 21 22 22 23 25 25 27 30 31 33 35 36 37 38 50 55 58 62 64 88 88 88 89 90 91 91 92 92 94 Báo cáo cuối kì Đồ án Sơ đồ trạng thái cho Đặt hàng Sơ đồ trạng thái cho Tạo sản phẩm Sơ đồ trạng thái cho Tạo phiếu nhập hàng State Diagram cho Lập hóa đơn bán hàng Sơ đồ lớp Mơ hình thực thể ERD Sơ đồ lớp Mô tả sơ đồ lớp Danh sách lớp đối tượng quan hệ Mô tả chi tiết lớp đối tượng Người dùng Chức vụ Phân quyền Chi tiết chức vụ Phiếu nhập Chi tiết phiếu nhập Hóa đơn Chi tiết hóa đơn Mặt hàng Nguồn phân phối Loại sản phẩm ThamSo THIẾT KẾ HỆ THỐNG Sơ đồ logic Thiết kế sơ đồ logic Mô tả sơ đồ logic Người dùng Chức vụ Phân quyền Chi tiết chức vụ Phiếu nhập Chi tiết phiếu nhập Hóa đơn Chi tiết hóa đơn Mặt hàng 94 96 96 97 99 99 100 100 100 101 101 101 102 102 102 102 103 103 103 103 104 104 105 105 105 106 106 106 106 107 107 107 107 108 108 Copyright © 2022 by Epic Báo cáo cuối kì Đồ án Nguồn phân phối 108 Loại sản phẩm 109 ThamSo 109 Thiết kế kiến trúc 110 Kiến trúc tổng quan 110 Designing models 110 Rendering views 111 Authoring controllers 111 Mơ hình MVC thành phần bên MVC 111 Model (M) 112 View (V) 112 Controller (C) 112 Luồng tương tác thành phần MVC 112 Data Flow MVC 113 Ưu & nhược điểm MVC 113 Ưu điểm 113 Nhược điểm 114 Ứng dụng mơ hình MVC vào lập trình 114 Thiết kế giao diện 114 Đăng nhập 114 Đăng ký 115 Trang chủ 115 Cửa hàng 116 Tin tức 116 Liên hệ 117 So sánh hai sản phẩm Error! Bookmark not defined Sản phẩm yêu thích Error! Bookmark not defined Thay đổi thông tin cá nhân 117 Đổi mật 118 Giỏ hàng 119 PHÁT TRIỂN VÀ CÀI ĐẶT ỨNG DỤNG Môi trường phát triển ứng dụng Môi trường triển khai ứng dụng KIỂM THỬ Test Case 119 119 120 Error! Bookmark not defined Error! Bookmark not defined Copyright © 2022 by Epic Báo cáo cuối kì Đồ án Unit Test Error! Bookmark not defined KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Kết luận Kết đạt Điểm đặc sắc đề tài Hướng phát triển 120 120 120 Error! Bookmark not defined 120 Copyright © 2022 by Epic Báo cáo cuối kì Đồ án CHƯƠNG 1.1 TỔNG QUAN VỀ ĐỀ TÀI Đặt vấn đề Để bám kịp tốc độ phát triển chóng mặt kinh tế giới nói chung Việt Nam nói riêng, hoạt động kinh doanh - thương mại dần chuyển đổi số, đặc biệt thời kỳ Covid-19, thương mại điện tử trở nên thiết yếu hết Thấy nhu cầu trên, nhóm định chọn đề tài “TÌM HIỂU ODOO FRAMEWORK VÀ XÂY DỰNG ỨNG DỤNG THƯƠNG MẠI ĐIỆN TỬ” (đồ án ThS Thái Thụy Hàn Uyển nắm vai trò giảng viên hướng dẫn) Với tiềm rộng mở thị trường dành cho thương mại điện tử nay, Odoo Framework dần lên tượng đầu tư phát triển rộng khắp nước, nay, Odoo đặt chân đến Việt Nam, sở hữu đội ngũ nghiên cứu phát triển chuyên biệt cho thị trường nơi dần củng cố vị trí danh sách tảng đa dụng hướng đến nhu cầu doanh nghiệp với quy mô vừa nhỏ đến công ty tầm cỡ, ứng với phiên Community Enterprise Các thành viên nhóm cịn sinh viên q trình học tập nên điều kiện tài khơng cho phép, nhóm tiến hành phát triển sản phẩm phiên Community vận hành website local hosting Mong cô xem xét thông cảm cho khiếm khuyết EPIC Furniture mô cửa hàng nhỏ chuyên bán lẻ phân phối trung gian mặt hàng nội thất, thiết bị gia dụng dựa nhu cầu thực tế cửa hàng chưa tiếp cận hệ thống quản lý số hố EPIC Furniture hứa hẹn cơng cụ đắc lực cho khơng khách hàng mà cịn quản lý cửa hàng, mở rộng tiềm kinh doanh, tiếp cận thêm với nhiều đối tượng khách hàng rút ngắn nhiều thời gian việc vận hành kinh doanh, mang lại trải nghiệm tuyệt vời với cơng việc 1.2 Giải pháp Để hồn thành đề tài cần phải nghiên cứu nội dung sau: ● Tìm hiểu cách thức vận hành kinh doanh cửa hàng nội thất - gia dụng Copyright © 2022 by Epic Báo cáo cuối kì Đồ án 160 Cơ chế "onchange" cung cấp cách để giao diện máy khách cập nhật biểu mẫu người dùng điền vào giá trị trường mà không lưu thứ vào sở liệu Ví dụ: giả sử mơ hình có ba trường số tiền , unit price giá bạn muốn cập nhật giá biểu mẫu trường khác sửa đổi Để đạt điều này, xác định phương thức tự đại diện cho ghi dạng xem biểu mẫu trang trí onchange() để định trường phải kích hoạt Bất kỳ thay đổi bạn thực thân phản ánh biểu mẫu # onchange handler @api.onchange('amount', 'unit_price') def _onchange_price(self): # set auto-changing field self.price = self.amount * self.unit_price # Can optionally return a warning and domains return { 'warning': { 'title': "Something bad happened", 'message': "It was very bad indeed", } } Đối với trường tính tốn, hành vi onchange có giá trị tích hợp sẵn thấy cách chơi với biểu mẫu Phiên: thay đổi số lượng chỗ ngồi người tham gia tiến trình taken_seats tự động cập nhật Bài tập Cảnh báo Thêm thay đổi rõ ràng để cảnh báo giá trị không hợp lệ, chẳng hạn số ghế âm nhiều người tham gia chỗ ngồi Ràng buộc mơ hình Odoo cung cấp hai cách để thiết lập bất biến xác minh tự động: Python constraints SQL constraints Một ràng buộc Python định nghĩa phương pháp trang trí với constrains()và gọi tập ghi Bộ trang trí định trường có liên quan đến ràng buộc, để ràng buộc tự động đánh giá số chúng sửa đổi Phương pháp dự kiến đưa ngoại lệ bất biến khơng thỏa mãn: Copyright © 2022 by Epic5 Báo cáo cuối kì Đồ án 161 from odoo.exceptions import ValidationError @api.constrains('age') def _check_something(self): for record in self: if record.age > 20: raise ValidationError("Your record is too old: %s" % record.age) # all records passed the test, don't return anything Bài tập Thêm ràng buộc Python Thêm ràng buộc kiểm tra xem người hướng dẫn khơng có mặt người tham dự phiên riêng Ràng buộc SQL xác định thơng qua thuộc tính mô _sql_constraints Sau gán cho danh sách ba chuỗi (tên, sql_definition, thơng báo), tên tên ràng buộc SQL hợp lệ, sql_definition biểu thức table_constraint thông báo thông báo lỗi Bài tập Thêm ràng buộc SQL Với trợ giúp PostgreSQL’s documentation , thêm ràng buộc sau: KIỂM TRA xem mơ tả khóa học tiêu đề khóa học có khác khơng Làm cho tên khóa học trở nên ĐỘC ĐÁO Bài tập Bài tập - Thêm tùy chọn trùng lặp Vì chúng tơi thêm ràng buộc cho độc đáo tên khóa học, nên khơng thể sử dụng chức "trùng lặp" (Form ‣ Duplicate) Triển khai lại phương pháp "sao chép" riêng bạn cho phép chép đối tượng Khóa học, thay đổi tên gốc thành "Bản [tên gốc]" Dạng xem Nâng cao Dạng xem Chế độ xem lấy thuộc tính bổ sung để tùy chỉnh thêm hành vi chúng: decoration-{$name} cho phép thay đổi kiểu văn hàng dựa thuộc tính ghi tương ứng Copyright © 2022 by Epic5 Báo cáo cuối kì Đồ án 162 Giá trị biểu thức Python Đối với ghi, biểu thức đánh giá với thuộc tính ghi dạng giá trị ngữ cảnh đúng, kiểu tương ứng áp dụng cho hàng Dưới số giá trị khác có sẵn ngữ cảnh: uid: id người dùng tại, hôm nay: ngày địa phương dạng chuỗi biểu mẫu YYYY-MMDD, ● : giống ngày hôm với việc bổ sung thời gian Giá trị định dạng YYYY-MM-DD hh:mm:ss {$name} bf (phơng chữ-trọng lượng: đậm), (kiểu phơng chữ: in ), bootstrap contextual (danger, info, muted, primary, success or warning) ● ● editable "Trên "top" "bottom".Làm cho dạng xem dạng chỉnh sửa chỗ (thay phải qua dạng xem biểu mẫu), giá trị vị trí xuất hàng Bài tập Tô màu danh sách Sửa đổi chế độ xem phiên theo cách mà phiên kéo dài ngày có màu xanh lam phiên kéo dài 15 ngày có màu đỏ Lịch Hiển thị ghi dạng kiện lịch Yếu tố gốc chúng thuộc tính phổ biến chúng là: color Tên trường sử dụng để phân đoạn màu Màu sắc tự động phân phối cho kiện, kiện phân đoạn màu (bản ghi có giá trị cho trường @color chúng) cung cấp màu date_start trường ghi giữ ngày/giờ bắt đầu cho kiện date_stop (tùy chọn) trường ghi giữ ngày/giờ kết thúc cho kiện string trường ghi để xác định nhãn cho kiện lịch Copyright © 2022 by Epic5 Báo cáo cuối kì Đồ án 163 Bài tập Dạng xem Lịch Thêm dạng xem Lịch vào mơ hình Phiên cho phép người dùng xem kiện liên kết với Open Academy Dạng xem tìm kiếm Chế độ xem có @filter_domain ghi đè miền tạo để tìm kiếm trường cho Trong miền cho, tự đại diện cho giá trị người dùng nhập Trong ví dụ đây, sử dụng để tìm kiếm tên trường name description Dạng xem tìm kiếm có , hoạt động nút bật/tắt cho tìm kiếm xác định trước Bộ lọc phải có thuộc tính sau: domain thêm tên miền cho vào tìm kiếm ngữ cảnh thêm số ngữ cảnh vào tìm kiếm tại; sử dụng khóa group_by để nhóm kết tên trường cho < trường= chuỗi"mô tả" ="Tên mô tả" filter_domain ="['|', ('tên', 'ilike', self), ('mô tả', 'ilike', self)]"/> Để sử dụng chế độ xem tìm kiếm không mặc định hành động, chế độ xem nên liên kết search_view_id ghi hành động Hành động đặt giá trị mặc định cho trường tìm kiếm thơng qua trường ngữ cảnh nó: khóa ngữ cảnh biểu mẫu search_default_field_name khởi tạo field_name Copyright © 2022 by Epic5 Báo cáo cuối kì Đồ án 164 với giá trị cung cấp Bộ lọc tìm kiếm phải có tùy chọn @name có mặc định hoạt động booleans (chúng bật theo mặc định) Bài tập Dạng xem tìm kiếm Thêm nút để lọc khóa học mà người dùng chịu trách nhiệm chế độ xem tìm kiếm khóa học Làm cho chọn theo mặc định Thêm nút vào khóa học nhóm người dùng có trách nhiệm Gantt Cảnh báo Dạng xem gantt u cầu web_gantt mơ-đun có phiên doanh nghiệp Biểu đồ ngang thường sử dụng để hiển thị lập kế hoạch tiến dự án, yếu tố gốc chúng Bài tập Biểu đồ Gantt Thêm biểu đồ Gantt cho phép người dùng xem lịch biểu phiên liên kết với mô-đun Học viện Mở Các buổi học nên nhóm theo người hướng dẫn Dạng xem biểu đồ Chế độ xem biểu đồ cho phép tổng quan tổng hợp phân tích mơ hình, phần tử gốc chúng ghi Dạng xem Pivot phần tử bảng đa chiều, cho phép lựa chọn file kích thước để có tập liệu tổng hợp phù hợp trước chuyển sang tổng quan đồ họa Dạng xem pivot có định nghĩa nội dung với dạng xem biểu đồ Chế độ xem biểu đồ có chế độ hiển thị, chế độ mặc định chọn @type tính Thanh (mặc định) biểu đồ thanh, thứ nguyên sử dụng để xác định nhóm trục ngang, thứ nguyên khác xác định tổng hợp nhóm Copyright © 2022 by Epic5 Báo cáo cuối kì Đồ án 165 Theo mặc định, nằm cạnh nhau, chúng xếp chồng lên cách sử dụng @stacked = "True" Dòng Biểu đồ đường chiều Pie Bánh chiều Dạng xem biểu đồ chứa < trường> với thuộc tính @type bắt buộc lấy giá trị: Hàng (mặc định) trường phải tổng hợp theo mặc định Đo trường nên tổng hợp thay nhóm lại cảnh báo Dạng xem biểu đồ thực tổng hợp giá trị sở liệu, chúng không hoạt động với trường tính tốn khơng lưu trữ Bài tập Dạng xem biểu đồ Thêm dạng xem Biểu đồ đối tượng Phiên hiển thị, khóa học, số lượng người dự dạng biểu đồ Tiếng Kanban Được sử dụng để tổ chức nhiệm vụ, quy trình sản xuất, v.v yếu tố gốc chúng Dạng xem kanban hiển thị tập hợp thẻ nhóm cột Mỗi thẻ đại diện cho ghi cột giá trị trường tổng hợp Ví dụ: nhiệm vụ dự án xếp theo giai đoạn (mỗi cột giai đoạn) theo trách nhiệm (mỗi cột người dùng), v.v Chế độ xem Kanban xác định cấu trúc thẻ kết hợp yếu tố biểu mẫu (bao gồm HTML bản) QWeb Bài tập Copyright © 2022 by Epic5 Báo cáo cuối kì Đồ án 166 Dạng xem Kanban Thêm chế độ xem Kanban hiển thị phiên nhóm theo khóa học (các cột khóa học) 10 An ninh Cơ chế kiểm sốt truy cập phải cấu hình để đạt sách bảo mật mạch lạc Cơ chế kiểm sốt truy cập dựa nhóm Các nhóm tạo dạng ghi bình thường mơ-đun ir.model.access cấp quyền truy cập menu thông qua định nghĩa menu Tuy nhiên, khơng có menu, đối tượng truy cập gián tiếp, quyền cấp đối tượng thực tế (đọc, ghi, tạo, hủy liên kết) phải xác định cho nhóm Chúng thường chèn qua tệp CSV bên mơđun Cũng hạn chế quyền truy cập vào trường cụ thể dạng xem đối tượng thuộc tính nhóm trường Quyền truy cập Quyền truy cập định nghĩa mô-đun ir.model.access Mỗi quyền truy cập liên kết với mô hình, nhóm (hoặc khơng có nhóm để truy cập toàn cầu) tập hợp quyền: đọc, ghi, tạo, hủy liên kết Quyền truy cập thường tạo tệp CSV đặt theo mơ hình nó: ir.model.access.csv id, tên, model_id / id, group_id / id, perm_read,perm_write,perm_create,perm_unlink access_idea_idea,idea.idea,model_idea_idea,base.group_user,1,1,1,0 access_idea_vote,idea.vote,model_idea_vote,base.group_user,1,1,1,0 Bài tập Thêm kiểm sốt truy cập thơng qua giao diện Odoo Tạo người dùng "John Smith" Sau tạo nhóm "OpenAcademy / Session Read" với quyền truy cập đọc vào mơ-đun Phiên Bài tập Thêm kiểm sốt truy cập thơng qua tệp liệu mô-đun bạn Sử dụng tệp liệu, Tạo nhóm OpenAcademy / Manager với quyền truy cập đầy đủ vào tất mơ hình OpenAcademy ● Làm cho phiên khóa học đọc tất người dùng ● Quy tắc ghi Copyright © 2022 by Epic5 Báo cáo cuối kì Đồ án 167 Quy tắc ghi hạn chế quyền truy cập vào tập hợp ghi mơ hình cho Quy tắc ghi mơ hình ir.rule liên kết với mơ hình, số nhóm (trường many2many), quyền áp dụng hạn chế tên miền Tên miền định ghi quyền truy cập bị hạn chế Dưới ví dụ quy tắc ngăn chặn việc xóa khách hàng tiềm khơng trạng thái cancel Lưu ý giá trị nhóm trường phải tuân theo quy ước tương tự phương thức write() ORM Only cancelled leads may be deleted [('state','=','cancel')] Bài tập Quy tắc ghi Thêm quy tắc ghi cho khóa học mơ hình nhóm "OpenAcademy / Manager", hạn chế quyền truy câp write hủy liên kết với người chịu trách nhiệm khóa học Nếu khóa học khơng có trách nhiệm, tất người dùng nhóm phải có khả sửa đổi 11 Wizards Trình hướng dẫn mơ tả phiên tương tác với người dùng (hoặc hộp thoại) thông qua biểu mẫu động Trình hướng dẫn đơn giản mơ hình mở rộng lớp TransientModel thay Model Lớp TransientModel mở rộng Model sử dụng lại tất chế có nó, với đặc điểm sau: Bản ghi thuật sĩ khơng có nghĩa liên tục; chúng tự động bị xóa khỏi sở liệu sau thời gian định Đây lý chúng gọi thoáng qua ● Bản ghi thuật sĩ tham chiếu đến ghi thơng thường ghi trình hướng dẫn thông qua trường quan hệ (many2one many2many), ghi thông thường tham chiếu đến ghi thuật sĩ thông qua trường many2one Chúng tơi muốn tạo trình hướng dẫn cho phép người dùng tạo người dự cho phiên cụ thể cho danh sách phiên lúc ● Bài tập Xác định thuật sĩ Copyright © 2022 by Epic5 Báo cáo cuối kì Đồ án 168 Tạo mơ hình trình hướng dẫn với mối quan hệ nhiều2one với mơ hình Session mối quan hệ nhiều - nhiều với mơ hình Đối tác Khởi chạy trình hướng dẫn Trình hướng dẫn đơn giản window actions động cửa sổ với target đặt thành giá trị new, mở dạng xem (thường biểu mẫu)trong hộp thoại riêng biệt Hành động kích hoạt thơng qua mục menu, thường kích hoạt nút Một cách khác để khởi chạy trình hướng dẫn thông qua menu Hành động dạng xem biểu mẫu Điều thực thông qua trường binding_model_id hành động Thiết lập trường làm cho hành động xuất chế độ xem mơ hình mà hành động "ràng buộc" đến Launch the Wizard wizard.model.name form new Mẹo Trong trình hướng dẫn sử dụng chế độ xem nút thông thường, thông thường bấm vào nút biểu mẫu trước tiên lưu biểu mẫu sau đóng hộp thoại Bởi điều thường khơng mong muốn trình hướng dẫn, thuộc tính special="cancel" có sẵn mà đóng trình hướng dẫn mà không lưu biểu mẫu Bài tập Khởi chạy wizard Xác định dạng xem biểu mẫu cho trình hướng dẫn Thêm hành động để khởi chạy ngữ cảnh mơ hình Phiên Xác định giá trị mặc định cho trường phiên trình hướng dẫn; sử dụng tham số ngữ self._context để truy xuất phiên Bài tập Đăng ký người tham dự Thêm nút vào trình hướng dẫn thực phương pháp tương ứng để thêm người dựa vào phiên cho Bài tập Đăng ký người tham dự vào nhiều phiên Sửa đổi mơ hình trình hướng dẫn để người dự đăng ký nhiều phiên Copyright © 2022 by Epic5 Báo cáo cuối kì Đồ án 169 12 Quốc tế hóa Mỗi mơ-đun cung cấp dịch riêng thư mục i18n, cách đặt tên LANG.po LANG mã ngôn ngữ cho ngôn ngữ kết hợp ngơn ngữ quốc gia chúng khác (ví dụ: pt.po pt_BR.po) Bản dịch Odoo tải tự động cho tất ngôn ngữ bật Các nhà phát triển sử dụng tiếng Anh tạo mơ-đun, sau xuất thuật ngữ mơ-đun tính xuất POT gettext Odoo (Settings ‣ Translations ‣ Import/Export ‣ Export Translation mà không cần định ngơn ngữ), để tạo tệp POT mẫu mơ-đun, sau lấy tệp PO dịch Nhiều IDE có plugin chế độ để chỉnh sửa hợp tệp PO / POT Mẹo Các tệp Đối tượng di động Odoo tạo xuất Transifex, giúp dễ dàng dịch phần mềm |- idea/ # The module directory |- i18n/ # Translation files | - idea.pot # Translation Template (exported from Odoo) | - fr.po # French translation | - pt_BR.po # Brazilian Portuguese translation | ( ) Mẹo Theo mặc định, xuất POT Odoo trích xuất nhãn bên tệp XML định nghĩa trường bên trong mã Python, chuỗi Python dịch theo cách cách bao quanh với hàm odoo._() (ví dụ: _("Label")) Bài tập Dịch mơ-đun Chọn ngơn ngữ thứ hai để cài đặt Odoo bạn Dịch mô-đun bạn cách sử dụng sở Odoo cung cấp 13 Báo cáo Báo cáo in Odoo sử dụng công cụ báo cáo dựa QWeb, Wkhtmltopdf Twitter Bootstrap Báo cáo kết hợp hai yếu tố: ● ir.actions.report cấu hình tham số khác cho báo cáo (loại mặc định, cho dù báo cáo nên lưu vào sở liệu sau tạo, ) ● ● Invoices Copyright © 2022 by Epic5 Báo cáo cuối kì Đồ án ● ● ● ● ● ● ● ● ● ● 170 account.invoice qweb-pdf account.report_invoice account.report_invoice (object.state in ('open','paid')) and ('INV'+(object.number or '').replace('/','')+'.pdf') report Mẹo Bởi lớn hành động tiêu chuẩn, với Wizards, thường hữu ích thêm báo cáo dạng mục theo ngữ cảnh / chế độ xem biểu mẫu mơ hình báo cáo thơng qua trường binding_model_id Ở sử dụng binding_type để báo cáo nằm menu ngữ cảnh báo cáo thay báo cáo hành động Khơng có khác biệt kỹ thuật đặt yếu tố vào nơi giúp người dùng ● Chế độ xem QWeb tiêu chuẩn cho báo cáo thực tế: ● ● ● ● ● ● ● ● ● Report title bối cảnh kết xuất tiêu chuẩn cung cấp số yếu tố, quan trọng là: docs hồ sơ mà báo cáo in user người dùng in báo cáo Vì báo cáo trang web tiêu chuẩn, chúng có sẵn thơng qua URL tham số đầu thao tác thơng qua URL này, ví dụ: phiên HTML báo cáo Hóa đơn có sẵn thơng qua http://localhost:8069/report/html/account.report_invoice/1 (nếu tài khoản cài đặt) phiên PDF thông qua http://localhost:8069/report/pdf/account.report_invoice/1 Nguy hiểm Nếu báo cáo PDF bạn bị thiếu kiểu (tức văn xuất kiểu / bố cục khác với phiên html), có lẽ quy trình wkhtmltopdf bạn khơng thể truy cập máy chủ web bạn để tải xuống Copyright © 2022 by Epic5 Báo cáo cuối kì Đồ án 171 Nếu bạn kiểm tra nhật ký máy chủ thấy kiểu CSS khơng tải xuống tạo báo cáo PDF, chắn vấn đề Quá trình wkhtmltopdf sử dụng tham số hệ thống web.base.url làm đường dẫn gốc cho tất tệp liên kết, tham số tự động cập nhật Quản trị viên đăng nhập Nếu máy chủ bạn nằm phía sau số loại proxy, điều khơng thể đạt Bạn khắc phục điều cách thêm tham số hệ thống: ● ● report.url, trỏ đến URL tiếp cận từ máy chủ bạn (có thể http://localhost:8069 tương tự) Nó sử dụng cho mục đích cụ thể web.base.url.freeze, đặt thành True,sẽ dừng cập nhật tự động cho web.base.url Bài tập Tạo báo cáo cho mơ hình Phiên Đối với phiên, hiển thị tên phiên, bắt đầu kết thúc liệt kê người tham dự phiên Dashboards Bài tập Xác định Bảng điều khiển Xác định bảng thông tin chứa dạng xem biểu đồ bạn tạo, dạng xem lịch phiên dạng xem danh sách khóa học (có thể chuyển sang dạng xem biểu mẫu) Bảng điều khiển có sẵn thơng qua menuitem menu tự động hiển thị máy khách web menu OpenAcademy chọn 14 Dịch vụ Web Mô-đun dịch vụ web cung cấp giao diện chung cho tất dịch vụ web: XML-RPC JSON-RPC Các đối tượng kinh doanh truy cập thông qua chế đối tượng phân tán Tất chúng sửa đổi thông qua giao diện máy khách với chế độ xem theo ngữ cảnh ● ● Odoo truy cập thông qua giao diện XML-RPC / JSON-RPC, mà thư viện tồn nhiều ngôn ngữ Thư viện XML-RPC Copyright © 2022 by Epic5 Báo cáo cuối kì Đồ án 172 Ví dụ sau chương trình Python tương tác với máy chủ Odoo với thư viện xmlrpc.client: import xmlrpc.client root = 'http://%s:%d/xmlrpc/' % (HOST, PORT) uid = xmlrpc.client.ServerProxy(root + 'common').login(DB, USER, PASS) print("Logged in as %s (uid: %d)" % (USER, uid)) # Create a new note sock = xmlrpc.client.ServerProxy(root + 'object') args = { 'color' : 8, 'memo' : 'This is a note', 'create_uid': uid, } note_id = sock.execute(DB, uid, PASS, 'note.note', 'create', args) Bài tập Thêm dịch vụ vào máy khách Viết chương trình Python gửi u cầu XML-RPC đến PC chạy Odoo (của bạn người hướng dẫn bạn) Chương trình hiển thị tất phiên số lượng chỗ ngồi tương ứng họ Nó tạo phiên cho khóa học Thư viện JSON-RPC Ví dụ sau chương trình Python tương tác với máy chủ Odoo với thư viện Python tiêu chuẩn urllib.request json Ví dụ giả sử ứng dụng Productivity ( note) cài đặt: import json import random import urllib.request HOST = 'localhost' PORT = 8069 DB = 'openacademy' USER = 'admin' PASS = 'admin' def json_rpc(url, method, params): data = { "jsonrpc": "2.0", "method": method, "params": params, "id": random.randint(0, 1000000000), } req = urllib.request.Request(url=url, data=json.dumps(data).encode(), headers={ Copyright © 2022 by Epic5 Báo cáo cuối kì Đồ án 173 "Content-Type":"application/json", }) reply = json.loads(urllib.request.urlopen(req).read().decode('UTF-8')) if reply.get("error"): raise Exception(reply["error"]) return reply["result"] def call(url, service, method, *args): return json_rpc(url, "call", {"service": service, "method": method, "args": args}) # log in the given database url = "http://%s:%s/jsonrpc" % (HOST, PORT) uid = call(url, "common", "login", DB, USER, PASS) # create a new note args = { 'color': 8, 'memo': 'This is another note', 'create_uid': uid, } note_id = call(url, "object", "execute", DB, uid, PASS, 'note.note', 'create', args) Ví dụ dễ dàng thích nghi từ XML-RPC sang JSON-RPC ghi Có số API cấp cao nhiều ngôn ngữ khác để truy cập hệ thống Odoo mà không cần thông qua XML-RPC JSON-RPC cách rõ ràng, chẳng hạn như: ● ● ● ● ● https://github.com/akretion/ooor https://github.com/OCA/odoorpc https://github.com/nicolas-van/openerp-client-lib http://pythonhosted.org/OdooRPC https://github.com/abhishek-jaiswal/php-openerp-lib vơ hiệu hóa việc tạo tự động số trường viết truy vấn SQL thơ có thể, địi hỏi cẩn thận bỏ qua tất chế xác thực bảo mật Odoo Chỉnh sửa GitHub TRÊN TRANG NÀY ● o o o o o o Khởi động/Dừng máy chủ Odoo Xây dựng mô-đun Odoo Dạng xem Quan hệ mơ hình Kế thừa Trường tính tốn giá trị mặc định Copyright © 2022 by Epic5 Báo cáo cuối kì Đồ án o o o o o o o 174 Onchange Hạn chế mơ hình Dạng xem Nâng cao An ninh Wizards Quốc tế Báo cáo Copyright © 2022 by Epic5 ... biệt thời kỳ Covid-19, thương mại điện tử trở nên thiết yếu hết Thấy nhu cầu trên, nhóm định chọn đề tài “TÌM HIỂU ODOO FRAMEWORK VÀ XÂY DỰNG ỨNG DỤNG THƯƠNG MẠI ĐIỆN TỬ” (đồ án ThS Thái Thụy Hàn... Copyright © 2022 by Epic Báo cáo cuối kì Đồ án 10 Thực hiện: 2.1.2.3 Lập hố đơn bán hàng Tình huống: Nhân viên lập hoá đơn bán hàng Thực hiện: Copyright © 2022 by Epic Báo cáo cuối kì Đồ án 2.1.2.4 11... thành cảm ơn Quý Thầy Cô ! Copyright © 2022 by Epic Báo cáo cuối kì Đồ án NHẬN XÉT (Của giáo viên hướng dẫn) Copyright © 2022 by Epic Báo cáo cuối kì Đồ án DANH SÁCH THÀNH VIÊN NHÓM Tên thành viên

Ngày đăng: 16/06/2022, 20:33

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan