Bỏ qua, tới nội dung chính
Cà Phê & Code Cà Phê & Code
  • Trang chủ
  • Chuyên mục
    • Backend
    • Bảo mật
    • Bảo mật ứng dụng web
    • Cơ sở dữ liệu
    • DevOps
    • Docker
    • Giải thuật
    • Go
    • Hệ điều hành
    • Java
    • Linux
    • Mang
    • Mạng
    • Message Queue
    • Odoo
    • RabbitMQ
    • Spring
    • Trình biên dịch
    • Vert.x

    • Tất cả chuyên mục
  • Sê-ri
  • Thẻ
  • Luyện thi
  • Ghi chú
  • Giới thiệu
  • Liên hệ
Đăng nhập
  1. Trang chủ
  2. Chuyên mục
  3. Odoo

Odoo

Theo dõi riêng chuyên mục này 400 bài viết
Odoo 17/09/2026 4 phút

Gom thẻ theo hạng rồi theo trạng thái, mỗi nhóm tự cộng tổng điểm: sắp xếp và nhóm nhiều cấp trên list Odoo

Ba tầng điều khiển thứ tự và nhóm: _order của model, default_order của list, và group_by của search view. Nhóm nhiều cấp tự tính subtotal. Hiểu cách phối hợp và vì sao field không store không sort được.

#group-by#odoo-19#list#developer#order#lap-trinh#odoo
7
Odoo 17/09/2026 4 phút

Khung trao đổi bên phải form tự ghi lại '120 → 150 điểm' mà không cần code: chatter và mail.thread trong Odoo 19

Chatter là khung bên phải form: lịch sử thay đổi, ghi chú, tin nhắn, hoạt động — tất cả gắn vào bản ghi. Chỉ cần model kế thừa mail.thread, thêm tracking=True, và một thẻ chatter. Dựng thật với log thay đổi và ghi chú.

#odoo-19#mail-thread#chatter#developer#lap-trinh#odoo
7
Odoo 17/09/2026 4 phút

Cùng một form, admin thấy 'Số dư' còn nhân viên thì không: ẩn field và nút theo nhóm với thuộc tính groups

Thuộc tính groups trên field, nút, tab hay group ẩn phần tử đó với ai không thuộc nhóm. Hiểu các nhóm hay dùng, và khác biệt quan trọng giữa groups ở view (ẩn giao diện) và ở model (bảo mật thật). Xem hai user thấy hai form khác nhau.

#odoo-19#groups#phan-quyen#developer#lap-trinh#odoo
7
Odoo 17/09/2026 5 phút

Cùng một view gốc, thêm mode='primary' là ra một form biến thể mới mà không đụng bản gốc: primary vs extension trong Odoo

Kế thừa view có hai chế độ: extension sửa view gốc tại chỗ (mọi nơi dùng nó đều đổi), primary tạo một view mới dựa trên gốc mà gốc không đổi. Hiểu khi nào dùng cái nào, qua một form biến thể thật.

#odoo-19#developer#inheritance#lap-trinh#odoo#view
7
Odoo 17/09/2026 4 phút

Dải 'Mới cấp → Đang dùng → Hết hạn' ở đầu form: biến một field Selection thành quy trình bấm được với statusbar

statusbar biến một field trạng thái thành dải các bước quy trình ngay đầu form. Hiểu statusbar_visible để ẩn bước ngoại lệ, options clickable để bấm chuyển, và cách kết hợp với nút quy trình. Dựng thật.

#statusbar#odoo-19#developer#lap-trinh#odoo#view
8
Odoo 17/09/2026 4 phút

Cùng một trường điểm, hiện thành con số hay thanh tiến độ là do một chữ widget: chọn đúng widget trong Odoo 19

widget đổi cách một field hiển thị và cho nhập — badge, progressbar, image, monetary, many2many_tags, priority, boolean_toggle... Chọn đúng widget làm form vừa đẹp vừa đúng chức năng. Xem nhiều widget chạy thật trên một form.

#odoo-19#widget#developer#lap-trinh#odoo#view
13
  • 1
  • …
  • 28
  • 29
  • 30
  • 31
  • 32
  • …
  • 67

Trang 30 / 67 — tổng 400 bài viết

Tìm kiếm
Admin

Nhấp một ngụm cà phê, viết thêm một dòng code

Xem thêm
Chuyên mục
  • Odoo 400
  • Giải thuật 270
  • Cơ sở dữ liệu 237
  • DevOps 102
  • Java 100
  • Hệ điều hành 90
  • Docker 68
  • Spring 60
  • Go 60
  • Linux 54
  • Vert.x 50
  • Mạng 45
  • Trình biên dịch 45
  • Message Queue 40
  • Backend 40
  • RabbitMQ 40
  • Bảo mật 39
  • Bảo mật ứng dụng web 1
Xem nhiều nhất
Bốn mươi dòng kiểm trước khi bấm nút triển khai — mỗi dòng đến từ một lần đã hỏng 10/08/2026 · 121
900 lần chạy test không bắt được lỗi luôn nằm đó — thêm một dòng sleep, nó lộ ra 100% 05/08/2026 · 108
Cùng một jar, ảnh Docker từ 866 MB xuống 126 MB — và cái bẫy làm ảnh nhỏ nhất in tiếng Việt ra dấu hỏi 06/08/2026 · 88
Integer 127 == 127 cho true, nhưng 128 == 128 cho false — vì sao, và bẫy đó ẩn ở đâu 05/05/2026 · 68
Một dòng println nở ra sáu lệnh, dấu cộng nối chuỗi biến thành invokedynamic — mở file .class ra xem 04/05/2026 · 63
Thẻ phổ biến
#zero-to-hero#do-dac#odoo#odoo-19#hieu-nang#developer#lap-trinh#devops#postgresql#sql#java#huong-dan#he-dieu-hanh#database#toi-uu#100-ngay-java#trinh-bien-dich#bao-mat#docker#dong-thoi#container#csdl#docker-compose#spring#go#golang#kubernetes#linux#giam-sat#mang#vertx#cau-truc-du-lieu#co-so-du-lieu#giai-thuat#kien-truc-may-tinh#quan-sat#kafka#message-queue#redis#rabbitmq#orm#web#van-hanh#view#ke-toan#owl#index#microservice#reactive#kho#qweb#website#kien-truc#crm#collections#nhan-su#thiet-ke#ban-hang#controller#do-tin-cay#gioi-thieu#bao-cao#cau-hinh#mua-hang#ecommerce#jvm#report#spring-boot#jpa#monitoring#san-xuat#stream#action#spring-security#test#bloat#du-an#http#oop#planner#tong-ket#context#event-bus#explain#jmh#module#mrp#phan-quyen#ton-kho#vacuum#amqp#bo-nho#email#exchange#io#join#kanban#lien-he#luong-ao#phan-vung#spring-amqp#thanh-toan#bat-dong-bo#concurrency#cong-cu#error#form#functional#go-loi#interface#json#logging#network#routing#spring-mvc#testing#wizard#api#assets#bytecode#chan-doan#chatter#cong-no#connection-pooling#consumer#debug#domain#generics#list#replication#san-pham#scss#statistics#trien-khai#tu-dong-hoa#widget#automation#bat-bien#bom#build#cache#chat-luong#deploy#dich-vu-khach-hang#dlx#erp#event-loop#exception#frontend#gc#group-by#helpdesk#hoa-don#hot-update#inheritance#jackson#javascript#jdbc#kieu-du-lieu#lambda#lo-trinh#luu-tru#maven#migration#nha-cung-cap#phe-duyet#portal#quan-ly-cong-viec#rang-buoc#retry#server-action#snippet#testcontainers#tim-kiem#tracing#tuy-bien#vertx-web#wal#work-mem#xpath#activity#analyze#bao-gia#bao-tri#barcode#batch#bat-dau#bien-the#button#cham-cong#channel#chi-phi#chuan-hoa#cluster#collectors#copy#crud#csrf#da-cong-ty#deadlock#default#delete#dich-thuat#dinh-gia-ton-kho#field-widget#fillfactor#future#giao-dich#giao-dien#giao-hang#ha#hikaricp#hoat-dong#hop-dong#i18n#ir-cron#java-time#jdk#jfr#jit#jsonb#junit#jwt#ke-thua#ket-noi#khoa#lead#log#luong#many2one#menu#model#nap-du-lieu#ngan-hang#nghi-phep#nhap-du-lieu#optional#owasp#parallel#partitioning#pattern-matching#phan-tich#phan-trang#pipeline#prefetch#python#queue#quorum-queue#record#recordset#rest#sap-xep#sealed#search#seo#theme#thue#tich-hop#timeout#timezone#tls#toast#transaction#transientmodel#trigram#tuyen-dung#unicode#upload#websocket#xay-dung-web#xml#abstract-model#ack#active-ids#actuator#addons#aggregate#alignment#analytic#approvals#assert#async#at-least-once#atomic#attachment#attendances#auth#autoboxing#automated-action#autovacuum#backpressure#backup#bang-dieu-khien#bang-gia#ban-hang-online#bao-cao-tai-chinh#bigdecimal#binding#blockingqueue#blog#brin#budget#bulk-load#but-toan#cache-hit-ratio#calendar#ca-nhan-hoa#canh-bao#cas#cham-gio#chart-of-accounts#chat#checklist#checkpoint#chung-chi#circuit-breaker#classloader#classpath#client-action#codec#command#comparator#completablefuture#component#compose#composite#computed#concurrenthashmap#config#cong-doan#cong-tac#constructor#cors#cot-moc#criteria#cron#csp#css#cte#da-hinh#da-ngon-ngu#danh-gia#danh-so#dashboard#datetime#ddl#default-method#delegation#demo-data#deque#developer-mode#dev-mode#devtools#dia-chi#dialog#dieu-chuyen#dieu-khien#dieu-kien#dinh-kem#discuss#display-name#distinct#doi-chieu#doi-sales#doi-soat#do-luong#don-hang#don-mua#don-vi-tinh#do-tre#download#dto#du-bao#editor#effective-cache-size#effective-io-concurrency#email-marketing#employees#encapsulation#encoding#env#ep-kieu#equals#error-boundary#error-handling#etcd#event#executor#exists#fanout#federation#field#filestore#flaky#flatmap#flyway#forkjoin#form-view#full-page-writes#full-text#full-text-search#getter#get-view#gia#giay-bao-co#gin#gist#git#gitops#gop-du-lieu#graalvm#gradle#graph#grep#group#groups#gtgt#handle#hang-doi#hash#hashcode#hashmap#hazelcast#headers#helm#help#hibernate#hoa-don-dien-tu#hoan-tien#hook#hooks#hoot#html#https#huge-pages#idempotency#inherit#inherits#inner-class#invoicing#ir-attachment#ir-sequence#isolation-level#iterator#javac#javap#jlink#jmm#journal#jsonrpc#jstack#keyset#khach-hang#khau-hao#khoa-chinh#khoa-ngoai#khoa-so#khuyen-mai#kiem-ke#kiem-soat#kien-hang#kiosk#knowledge#ky-dien-tu#ky-nang#ky-online#lag#lateral#lazy-load#lazy-queue#like#list-view#lock-date#logical#lo-serial#mail#mail-activity#mail-mail#mail-template#mail-thread#maintenance#maintenance-work-mem#management#many2many#map#materialize#mat-khau#mau-bao-gia#mau-email#ma-vach#max-connections#media#memcached#memory-leak#merge-join#message#message-post#method#mixin#mockito#moi-truong#monetary#mvcc#name-search#nang-cap#native-image#ngan-sach#nginx#nguoi-dung#nhan-hang#nhap-kho#nhat-ky#nhieu-buoc#nio#no-co#notification#n-plus-1#numeric#oauth2#observability#oca#oidc#onchange#on-conflict#one2many#openssl#or#order#outbox#package#padding#pagination#paperformat#partition-management#partition-pruning#partition-wise-join#patch#pdb#pdf#pecs#pgbadger#pgbench#pgbouncer#pg-locks#pg-repack#pg-stat-statements#pgstattuple#pg-trgm#phan-bo#phan-tan#phong-ban#phu-thuoc#pivot#plan-cache#poison-message#port#pprof#prepared-statement#producer#prometheus#promise#properties#props#publisher-confirms#pubsub#pylint#qos#qrcode#quality#quan-he#quyen#quy-trinh#random-page-cost#recruitment#redelivery#reference#regex#registry#reindex#related#replica#requests#res-company#resource#restclient#rfq#route#router#routes-rules#rpc#safe-eval#sao-ke#sao-luu#sargable#scaffold#scaling#scheduled#scheduled-action#sdkman#select#selection#separator#serialization#service-discovery#servlet#session#set#sharding#shared-buffers#shell#shovel#sign#sitemap#skip-locked#sla#slf4j#slice#slots#smart-button#so-cai#sockjs#so-do-to-chuc#solid#sort#source-code#spring-data#ssd#sse#statusbar#streaming#string#struct#structured-concurrency#studio#subquery#sudo#su-kien#switch#sync#synchronized#systray#tagged#tai-dat-hang#tai-khoan#tai-san#t-call#template#text#t-field#t-foreach#thao-tac-hang-loat#the-phan-loai#thiet-ke-api#thiet-lap#thread#threadlocal#thread-pool#thuc-hanh#thue-gtgt#thymeleaf#tieng-viet#tien-te#time#time-off#tinh-phi#toan-tu#to-khai#topic#topology#tour#transactioncase#transient-model#tra-truoc#treemap#tri-thuc#truncate#ttl#tuning#tuyen-duong#ty-gia#type-erasure#ung-dung#union#unlink#unlogged#update#upsert#useref#useservice#usestate#uuid#ux#vacuum-full#validation#varargs#verticle#vhost#viet-nam#viettel#visibility-map#volatile#wait-events#wal-compression#web-client#webclient#webhook#werkzeug#window-function#worker#workers#wraparound#write#xac-thuc-hai-lop#xml-id#xmlrpc#xuat-du-lieu#xuat-kho
Lưu trữ
  • Tháng 9/2026 1214
  • Tháng 8/2026 197
  • Tháng 7/2026 114
  • Tháng 6/2026 64
  • Tháng 5/2026 30
  • Tháng 11/2025 4
  • Tháng 10/2025 27
  • Tháng 9/2025 30
  • Tháng 8/2025 31
  • Tháng 7/2025 30
Theo dõi blog

Nhận email mỗi khi có bài viết mới. Không quảng cáo, huỷ bất cứ lúc nào.

Hoặc dùng RSS
Cà Phê & Code Cà Phê & Code

Cà Phê & Code là blog dành cho những người yêu công nghệ và lập trình. Nơi chia sẻ kiến thức coding, công cụ hữu ích, xu hướng công nghệ, kinh nghiệm phát triển phần mềm và những câu chuyện phía sau màn hình — tất cả được kể theo cách gần gũi, dễ hiểu, như một cuộc trò chuyện bên tách cà phê.

Liên kết
  • Trang chủ
  • Chuyên mục
  • Thẻ
  • Giới thiệu
  • Liên hệ
Chuyên mục nổi bật
Odoo (400)Giải thuật (270)Cơ sở dữ liệu (237)DevOps (102)Java (100)Hệ điều hành (90)Docker (68)Spring (60)Go (60)Linux (54)Vert.x (50)Mạng (45)Trình biên dịch (45)Message Queue (40)Backend (40)RabbitMQ (40)Bảo mật (39)Bảo mật ứng dụng web (1)

© 2026 Cà Phê & Code. Bảo lưu mọi quyền.