.o_anim_zoom_out.o_anim_from_left{animation-name: o_anim_zoom_out_left;}@keyframes o_anim_zoom_out_bottom{0%{opacity: 0; transform: scale(var(--wanim-zoom-out-scale)) translate(0, 100%);}10%{opacity: calc(0.1 + (0.9 * (var(--wanim-opacity-adjustment))));}100%{opacity: 1;}}.o_anim_zoom_out.o_anim_from_bottom{animation-name: o_anim_zoom_out_bottom;}@keyframes o_anim_zoom_out_top{0%{opacity: 0; transform: scale(var(--wanim-zoom-out-scale)) translate(0, -100%);}10%{opacity: calc(0.1 + (0.9 * (var(--wanim-opacity-adjustment))));}100%{opacity: 1;}}.o_anim_zoom_out.o_anim_from_top{animation-name: o_anim_zoom_out_top;}@keyframes o_anim_zoom_in{0%{opacity: 0; transform: scale(var(--wanim-zoom-in-scale));}10%{opacity: calc(0.2 + (0.8 * (var(--wanim-opacity-adjustment))));}50%{opacity: 1;}}.o_anim_zoom_in{animation-name: o_anim_zoom_in;}@keyframes o_anim_zoom_in_down{0%{opacity: 0; transform: scale(var(--wanim-zoom-in-scale)) translate(0, calc(-0.1px * var(--wanim-intensity-squared))); animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);}10%{opacity: calc(0.15 + (0.85 * (var(--wanim-opacity-adjustment))));}60%{opacity: 1; transform: scale(var(--wanim-zoom-in-scale-60)) translate(0, calc(1px * var(--wanim-intensity))); animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);}}.o_anim_zoom_in.o_anim_from_top{animation-name: o_anim_zoom_in_down;}@keyframes o_anim_zoom_in_up{0%{opacity: 0; transform: scale(var(--wanim-zoom-in-scale)) translate(0, calc(0.1px * var(--wanim-intensity-squared))); animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);}10%{opacity: calc(0.15 + (0.85 * (var(--wanim-opacity-adjustment))));}60%{opacity: 1; transform: scale(var(--wanim-zoom-in-scale-60)) translate(0, calc(-1px * var(--wanim-intensity))); animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);}}.o_anim_zoom_in.o_anim_from_bottom{animation-name: o_anim_zoom_in_up;}@keyframes o_anim_zoom_in_left{0%{opacity: 0; transform: scale(var(--wanim-zoom-in-scale)) translate(calc(-0.1px * var(--wanim-intensity-squared)), 0); animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);}10%{opacity: calc(0.15 + (0.85 * (var(--wanim-opacity-adjustment))));}60%{opacity: 1; transform: scale(var(--wanim-zoom-in-scale-60)) translate(calc(0.2px * var(--wanim-intensity)), 0); animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);}}.o_anim_zoom_in.o_anim_from_left{animation-name: o_anim_zoom_in_left;}@keyframes o_anim_zoom_in_right{0%{opacity: 0; transform: scale(var(--wanim-zoom-in-scale)) translate(calc(0.1px * var(--wanim-intensity-squared)), 0); animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);}10%{opacity: calc(0.15 + (0.85 * (var(--wanim-opacity-adjustment))));}60%{opacity: 1; transform: scale(var(--wanim-zoom-in-scale-60)) translate(calc(-0.2px * var(--wanim-intensity)), 0); animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);}}.o_anim_zoom_in.o_anim_from_right{animation-name: o_anim_zoom_in_right;}@keyframes o_anim_flash{0%, 50%, 100%{opacity: 1;}25%, 75%{opacity: calc(1 - (var(--wanim-intensity) / 100));}}.o_anim_flash{animation-name: o_anim_flash;}@keyframes o_anim_pulse{0%{transform: scale(1);}50%{transform: scale(calc(1.01 + (0.000016 * var(--wanim-intensity-squared))));}100%{transform: scale(1);}}.o_anim_pulse{animation-name: o_anim_pulse;}@keyframes o_anim_shake{0%, 100%{transform: translate(0, 0);}10%, 30%, 50%, 70%, 90%{transform: translate(calc(-1px - (0.0036px * var(--wanim-intensity-squared))), 0);}20%, 40%, 60%, 80%{transform: translate(calc(1px + (0.0036px * var(--wanim-intensity-squared))), 0);}}.o_anim_shake{animation-name: o_anim_shake;}@keyframes o_anim_tada{0%{transform: scale(1);}10%, 20%{transform: scale(calc(1 - (0.00004 * var(--wanim-intensity-squared)))) rotate(calc(-2deg - (0.02deg * var(--wanim-intensity))));}30%, 50%, 70%, 90%{transform: scale(calc(1 + (0.00004 * var(--wanim-intensity-squared)))) rotate(calc(2deg + (0.02deg * var(--wanim-intensity))));}40%, 60%, 80%{transform: scale(calc(1 + (0.00004 * var(--wanim-intensity-squared)))) rotate(calc(-2deg - (0.02deg * var(--wanim-intensity))));}100%{transform: scale(1);}}.o_anim_tada{animation-name: o_anim_tada;}@keyframes o_anim_flip_in_x{0%{transform: perspective(1000px) rotateX(calc(1deg * (5 + (var(--wanim-intensity) * 1.7)))); opacity: 0;}50%{opacity: 1;}}.o_anim_flip_in_x{backface-visibility: visible; animation-name: o_anim_flip_in_x; transition-timing-function: ease-out;}@keyframes o_anim_flip_in_y{0%{transform: perspective(1000px) rotateY(calc(1deg * (5 + (var(--wanim-intensity) * 1.7)))); opacity: 0;}50%{opacity: 1;}}.o_anim_flip_in_y{backface-visibility: visible; animation-name: o_anim_flip_in_y; transition-timing-function: ease-out;}.o_anim_dur500{animation-duration: 500ms;}.o_anim_dur1500{animation-duration: 1500ms;}.o_anim_dur2000{animation-duration: 2000ms;}.o_anim_dur2500{animation-duration: 2500ms;}.o_anim_dur3000{animation-duration: 3000ms;}.o_anim_del500{animation-delay: 500ms;}.o_anim_del1000{animation-delay: 1000ms;}.o_anim_del1500{animation-delay: 1500ms;}.o_anim_del2000{animation-delay: 2000ms;}.o_anim_del2500{animation-delay: 2500ms;}\n/* /website/static/src/scss/website.ui.scss */\n .o_frontend_to_backend_nav{position: absolute; top: 0; left: 0; bottom: auto; right: auto; z-index: 1055; font-size: 0.8125rem;}.o_frontend_to_backend_nav::before{content: ""; position: absolute; top: 0; left: 0; bottom: auto; right: auto; border-top: 20px solid #714B67; border-left: 20px solid #714B67; border-bottom: 20px solid transparent; border-right: 20px solid transparent; cursor: pointer;}.o_frontend_to_backend_nav::before, .o_frontend_to_backend_nav .o_frontend_to_backend_icon, .o_frontend_to_backend_nav .o_frontend_to_backend_buttons{transform-origin: top left; transition: transform 400ms ease 1s;}.o_frontend_to_backend_nav .o_frontend_to_backend_buttons{transition-duration: 800ms;}.o_frontend_to_backend_nav .o_frontend_to_backend_buttons{transform: translateX(-250%) scaleX(0.5);}.o_frontend_to_backend_nav .o_frontend_to_backend_buttons > a{min-width: 40px; height: 40px; color: #FFFFFF;}.o_frontend_to_backend_nav .o_frontend_to_backend_apps_menu{font-size: 0.92857143rem; max-height: 70vh; overflow: auto;}.o_frontend_to_backend_nav .o_frontend_to_backend_apps_btn{background-color: #714B67;}.o_frontend_to_backend_nav .o_frontend_to_backend_apps_btn:hover{background-color: #624159;}.o_frontend_to_backend_nav .o_frontend_to_backend_edit_btn{background-color: #3e3e46;}.o_frontend_to_backend_nav .o_frontend_to_backend_edit_btn:hover{background-color: #323238;}.o_frontend_to_backend_nav .o_frontend_to_backend_edit_btn > img{height: 1.8em; margin-right: 0.5em; border-radius: 0.25rem;}.o_frontend_to_backend_nav:hover:before, .o_frontend_to_backend_nav:hover .o_frontend_to_backend_icon{transform: scale(0.3); transition-delay: 0ms; transition-duration: 400ms;}.o_frontend_to_backend_nav:hover .o_frontend_to_backend_buttons{transform: translateX(0); transition-delay: 0ms; transition-duration: 400ms;}body{direction: ltr;}.oe_login_form, .oe_signup_form, .oe_reset_password_form{max-width: 300px; position: relative; margin: 50px auto;}.tour .popover-navigation{margin-left: 13px; margin-bottom: 8px;}.css_published .btn-danger, .css_published .css_publish{display: none;}.css_unpublished .btn-success, .css_unpublished .css_unpublish{display: none;}[data-publish='off'] > *:not(.css_options){opacity: 0.5;}@media print{a[href]:after{content: initial;}}.post_link:not(.o_post_link_js_loaded){pointer-events: none;}#wrapwrap.o_is_mobile, #wrapwrap.o_is_mobile .modal{scrollbar-color: #999 rgba(255, 255, 255, 0.5); scrollbar-width: thin;}#wrapwrap.o_is_mobile::-webkit-scrollbar, #wrapwrap.o_is_mobile .modal::-webkit-scrollbar{width: 5px; height: 5px;}#wrapwrap.o_is_mobile::-webkit-scrollbar-thumb, #wrapwrap.o_is_mobile .modal::-webkit-scrollbar-thumb{background: #999;}#wrapwrap.o_is_mobile::-webkit-scrollbar-track, #wrapwrap.o_is_mobile .modal::-webkit-scrollbar-track{background: rgba(255, 255, 255, 0.5);}\n/* /stock/static/src/scss/stock_traceability_report.scss */\n .o_stock_reports_body_print{background-color: white; color: black;}.o_stock_reports_body_print .o_stock_reports_level0{border-width: 1px; border-left-style: hidden; border-right-style: hidden; font-weight: bold; border-top-style: solid; border-bottom-style: groove;}.o_main_content .o_stock_reports_page{position: absolute;}.o_stock_reports_page{background-color: white;}.o_stock_reports_page.o_stock_reports_no_print{margin: 16px auto; padding-top: 24px; padding-right: 16px; padding-bottom: 24px; padding-left: 16px;}.o_stock_reports_page.o_stock_reports_no_print .o_stock_reports_level0{border-width: 1px; border-left-style: hidden; border-right-style: hidden; font-weight: normal; border-top-style: solid; border-bottom-style: groove;}.o_stock_reports_page.o_stock_reports_no_print .o_stock_reports_table{white-space: nowrap; margin-top: 30px;}.o_stock_reports_page.o_stock_reports_no_print .o_stock_reports_table thead{display: table-row-group;}.o_stock_reports_page.o_stock_reports_no_print .o_report_line_header{text-align: left; padding-left: 10px;}.o_stock_reports_page.o_stock_reports_no_print .o_report_header{border-top-style: solid; border-top-style: groove; border-bottom-style: groove; border-width: 2px;}.o_stock_reports_page .o_stock_reports_unfolded{display: inline-block;}.o_stock_reports_page .o_stock_reports_nofoldable{margin-left: 17px;}.o_stock_reports_page a.o_stock_report_lot_action{cursor: pointer;}.o_stock_reports_page .o_stock_reports_unfolded td + td{visibility: hidden;}.o_stock_reports_page div.o_stock_reports_web_action, .o_stock_reports_page span.o_stock_reports_web_action, .o_stock_reports_page i.fa, .o_stock_reports_page span.o_stock_reports_unfoldable, .o_stock_reports_page span.o_stock_reports_foldable, .o_stock_reports_page a.o_stock_reports_web_action{cursor: pointer;}.o_stock_reports_page .o_stock_reports_caret_icon{margin-left: -3px;}.o_stock_reports_page th{border-bottom: thin groove;}.o_stock_reports_page .o_stock_reports_level1{border-width: 2px; border-left-style: hidden; border-right-style: hidden; font-weight: inherit; border-top-style: hidden; border-bottom-style: solid;}.o_stock_reports_page .o_stock_reports_level2{border-width: 1px; border-left-style: hidden; border-right-style: hidden; font-weight: inherit; border-top-style: solid; border-bottom-style: solid;}.o_stock_reports_page .o_stock_reports_level2 > td > span:last-child{margin-left: 25px;}.o_stock_reports_page .o_stock_reports_default_style{border-width: 0px; border-left-style: hidden; border-right-style: hidden; font-weight: inherit; border-top-style: solid; border-bottom-style: solid;}.o_stock_reports_page .o_stock_reports_default_style > td > span:last-child{margin-left: 50px;}.o_report_reception{overflow-y: auto;}\n/* /rating/static/src/scss/rating_templates.scss */\n .o_rating_page_submit .btn-group > .btn:not(:first-child), .o_rating_page_submit .btn-group > .btn-group:not(:first-child) > .btn{margin-left: 0 !important;}.o_rating_page_submit .o_rating_label{opacity: 0.5;}.o_rating_page_submit .o_rating_label:hover{transform: scale(1.1);}.o_rating_page_submit .o_rating_label img.bg-white:hover, .o_rating_page_submit .o_rating_label img.bg-white:focus{background-color: #ffffff !important;}.o_rating_page_submit .btn-check:checked + .o_rating_label{transform: scale(1.2); opacity: 1;}.o_rating_page_submit .btn-check:checked + .o_rating_label img.bg-white:hover, .o_rating_page_submit .btn-check:checked + .o_rating_label img.bg-white:focus{background-color: #ffffff !important;}\n/* /project/static/src/scss/portal_rating.scss */\n .o_portal_project_rating .thumbnail{height: 240px;}.o_portal_project_rating .o_top_partner_rating_image{height: 15px;}.o_portal_project_rating .o_top_partner_image{height: 30px; width: 30px;}.o_portal_project_rating .o_top_partner_feedback{word-wrap: break-word;}.o_portal_project_rating .o_vertical_separator{border-left: 1px solid #eeeeee;}.o_portal_project_rating .o_rating_progress{margin-bottom: 10px;}.o_portal_project_rating .o_rating_count{display: inline-block; min-width: 22px;}.o_portal_project_rating .o_smiley_no_padding_left{padding-left: 0;}.o_portal_project_rating .o_smiley_no_padding_right{padding-right: 0;}.o_portal_project_rating .o_lighter_smileys{opacity: 0.4;}.o_priority_star{display: inline-block;}.o_priority_star.fa-star-o{color: rgba(73, 80, 87, 0.76);}.o_priority_star.fa-star{color: #f3cc00;}.o_status{display: block; background-color: #E9ECEF; height: 12px; width: 12px; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.2);}.dropdown-item > .o_status{transform: translateX(-50%);}\n/* /project/static/src/scss/project_sharing_frontend.scss */\n .o_project_sharing_container > main{display: -webkit-box; display: -webkit-flex; display: flex;}\n/* /website_livechat/static/src/legacy/widgets/public_livechat_floating_text_view/public_livechat_floating_text_view.scss */\n .o_PublicLivechatFloatingTextView{animation: o_PublicLivechatFloatingTextView_animation 0.6s ease-in-out forwards; display: -webkit-box; display: -webkit-flex; display: flex; position: absolute; box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); background-color: #FFF; color: #343A40; right: 4.0rem; bottom: 2.0rem; border-radius: 0.5rem 0.5rem 0 0.5rem; transform-origin: 100% 100%; user-select: none;}@keyframes o_PublicLivechatFloatingTextView_animation{0%{opacity: 0; transform: scale(0);}20%{opacity: 0; transform: scale(0.5);}50%{opacity: 1;}75%{transform: scale(1.05);}100%{transform: scale(1);}}.o_PublicLivechatFloatingTextView_background{transition: filter 0.3s; position: absolute; width: 100%; height: 100%; left: 0; top: 0; border-radius: 0.5rem 0.5rem 0 0.5rem; background-color: #FFF;}.o_PublicLivechatFloatingTextView_text{padding: 0.75rem 1rem; position: relative; color: #343A40; font-size: 1.2rem; font-weight: 500; font-family: var(--body-font-family); text-shadow: none;}\n/* /im_livechat/static/src/legacy/public_livechat.scss */\n .o_thread_window{direction: ltr; display: -webkit-box; display: -webkit-flex; display: flex; -webkit-flex-flow: column nowrap; flex-flow: column nowrap; position: fixed; width: 340px; max-width: 100%; height: 460px; max-height: 100%; font-size: 12px; background-color: #FAFAFA; border-radius: 6px 6px 0 0; z-index: 1056; box-shadow: -5px -5px 10px rgba(0, 0, 0, 0.18);}@media (max-width: 767.98px){.o_thread_window{width: 100%; height: 100% !important; box-shadow: none;}.o_frontend_to_backend_nav:not(.d-none) ~ .o_thread_window .o_thread_window_header{padding-left: 2rem;}.o_thread_window.o_folded{display: none;}}@media print{.o_thread_window{display: none;}}.o_thread_window .o_thread_window_header{align-items: center; display: -webkit-box; display: -webkit-flex; display: flex; -webkit-box-flex: 0; -webkit-flex: 0 0 auto; flex: 0 0 auto; color: white; padding: 5px 10px; border-radius: 3px 3px 0 0; border-bottom: 1px solid #DEE2E6; background-color: #71639e; padding: 8px; cursor: pointer;}@media (max-width: 767.98px){.o_thread_window .o_thread_window_header{align-items: center; height: 46px; border-radius: 0px;}.o_thread_window .o_thread_window_header .o_thread_window_title{font-size: 16px;}.o_thread_window .o_thread_window_header .o_thread_window_close{padding: 14.5px; font-size: 17px; color: white;}}.o_thread_window .o_thread_window_header .o_thread_window_avatar{margin: -6px 6px -6px 0; position: relative;}.o_thread_window .o_thread_window_header .o_thread_window_avatar img{height: 25px; width: 25px; border-radius: 50%;}.o_thread_window .o_thread_window_header .o_thread_window_avatar span{bottom: -4px; right: -2px; position: absolute;}.o_thread_window .o_thread_window_header .o_thread_window_avatar span .fa-circle-o{display: none;}.o_thread_window .o_thread_window_header .o_thread_window_title{-webkit-box-flex: 1; -webkit-flex: 1 1 auto; flex: 1 1 auto; display: inline-block; max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; vertical-align: top;}.o_thread_window .o_thread_window_header .o_thread_window_title .o_mail_thread_typing_icon{padding-left: 2px;}.o_thread_window .o_thread_window_header .o_thread_window_title .o_mail_thread_typing_icon .o_mail_thread_typing_icon_dot{background: #DEE2E6;}.o_thread_window .o_thread_window_header .o_thread_window_buttons{-webkit-box-flex: 0; -webkit-flex: 0 0 auto; flex: 0 0 auto;}.o_thread_window .o_thread_window_header .o_thread_window_buttons .o_thread_window_close{color: white; padding: 0px 3px; margin-left: 5px; opacity: 0.7;}.o_thread_window .o_thread_window_header .o_thread_window_buttons .o_thread_window_close:hover, .o_thread_window .o_thread_window_header .o_thread_window_buttons .o_thread_window_close:focus, .o_thread_window .o_thread_window_header .o_thread_window_buttons .o_thread_window_close.focus{opacity: 1;}.o_thread_window .o_mail_thread{flex: 1 1 100%; overflow: auto; -webkit-overflow-scrolling: touch;}.o_thread_window .o_mail_thread .o_thread_date_separator{margin: 0px 0px 15px 0px;}.o_thread_window .o_mail_thread .o_thread_date_separator .o_thread_date{background-color: #FAFAFA;}.o_thread_window .o_mail_thread .o_thread_message{padding: 4px 5px;}.o_thread_window .o_mail_thread .o_thread_message .o_thread_message_sidebar{margin-right: 5px;}@media (min-width: 768px){.o_thread_window .o_mail_thread .o_thread_message .o_attachment{width: 33.33333333%;}}.o_thread_window .o_thread_composer input{width: 100%;}.o_thread_window_dropdown{width: auto; height: 28px; color: white; background-color: #212529; cursor: pointer; box-shadow: none;}@media (max-width: 767.98px){.o_thread_window_dropdown{display: none;}}.o_thread_window_dropdown .o_thread_window_header{border-radius: 0;}.o_thread_window_dropdown .o_thread_window_dropdown_toggler{padding: 5px;}.o_thread_window_dropdown .o_thread_window_dropdown_toggler .o_total_unread_counter{position: absolute; top: -10px; left: auto; bottom: auto; right: 0; background-color: #71639e; padding: 0 2px; font-size: smaller;}.o_thread_window_dropdown.show .o_thread_window_dropdown_toggler .o_total_unread_counter{display: none;}.o_thread_window_dropdown > ul{max-width: 340px; padding: 0;}.o_thread_window_dropdown > ul > li.o_thread_window_header{font-size: 12px; padding: 3px 5px;}.o_thread_window_dropdown > ul > li.o_thread_window_header ~ li.o_thread_window_header{border-top: 1px solid white;}.o_thread_window_dropdown > ul > li.o_thread_window_header:hover{background-color: #5a4f7f;}.o_ui_blocked .o_thread_window{z-index: 1101;}.o_mail_thread_loading{display: -webkit-box; display: -webkit-flex; display: flex; align-items: center; justify-content: center;}.o_mail_thread_loading_icon{margin-right: 5px;}.o_mail_thread .o_thread_show_more, .o_mail_activity .o_thread_show_more{text-align: center;}.o_mail_thread .o_mail_thread_content, .o_mail_activity .o_mail_thread_content{display: -webkit-box; display: -webkit-flex; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -webkit-flex-direction: column; flex-direction: column; min-height: 100%;}.o_mail_thread .o_thread_bottom_free_space, .o_mail_activity .o_thread_bottom_free_space{height: 15px;}.o_mail_thread .o_thread_date_separator, .o_mail_activity .o_thread_date_separator{margin-top: 15px; margin-bottom: 30px; border-bottom: 1px solid #CED4DA; text-align: center;}@media (max-width: 767.98px){.o_mail_thread .o_thread_date_separator, .o_mail_activity .o_thread_date_separator{margin-top: 0px; margin-bottom: 15px;}}.o_mail_thread .o_thread_date_separator .o_thread_date, .o_mail_activity .o_thread_date_separator .o_thread_date{position: relative; top: 10px; margin: 0 auto; padding: 0 10px; font-weight: bold; background: white;}.o_mail_thread .o_thread_new_messages_separator, .o_mail_activity .o_thread_new_messages_separator{margin-bottom: 15px; border-bottom: solid #9c92bb 1px; text-align: right;}.o_mail_thread .o_thread_new_messages_separator .o_thread_separator_label, .o_mail_activity .o_thread_new_messages_separator .o_thread_separator_label{position: relative; top: 8px; padding: 0 10px; background: white; color: #9c92bb; font-size: smaller;}.o_mail_thread .o_thread_message, .o_mail_activity .o_thread_message{display: -webkit-box; display: -webkit-flex; display: flex; padding: 4px 16px; margin-bottom: 0px;}.o_mail_thread .o_thread_message.o_mail_not_discussion, .o_mail_activity .o_thread_message.o_mail_not_discussion{background-color: rgba(222, 226, 230, 0.5); border-bottom: 1px solid #CED4DA;}.o_mail_thread .o_thread_message .o_thread_message_sidebar, .o_mail_activity .o_thread_message .o_thread_message_sidebar{flex: 0 0 36px; margin-right: 10px; margin-top: 2px; text-align: center; font-size: smaller;}.o_mail_thread .o_thread_message .o_thread_message_sidebar .o_thread_message_sidebar_image, .o_mail_activity .o_thread_message .o_thread_message_sidebar .o_thread_message_sidebar_image{position: relative; height: 36px;}.o_mail_thread .o_thread_message .o_thread_message_sidebar .o_thread_message_sidebar_image .o_updatable_im_status, .o_mail_activity .o_thread_message .o_thread_message_sidebar .o_thread_message_sidebar_image .o_updatable_im_status{width: 36px;}.o_mail_thread .o_thread_message .o_thread_message_sidebar .o_thread_message_sidebar_image .o_mail_user_status, .o_mail_activity .o_thread_message .o_thread_message_sidebar .o_thread_message_sidebar_image .o_mail_user_status{position: absolute; bottom: 0; right: 0;}.o_mail_thread .o_thread_message .o_thread_message_sidebar .o_thread_message_sidebar_image .o_mail_user_status.fa-circle-o, .o_mail_activity .o_thread_message .o_thread_message_sidebar .o_thread_message_sidebar_image .o_mail_user_status.fa-circle-o{display: none;}@media (max-width: 767.98px){.o_mail_thread .o_thread_message .o_thread_message_sidebar, .o_mail_activity .o_thread_message .o_thread_message_sidebar{margin-top: 4px; font-size: x-small;}}.o_mail_thread .o_thread_message .o_thread_message_sidebar .o_thread_message_avatar, .o_mail_activity .o_thread_message .o_thread_message_sidebar .o_thread_message_avatar{width: 36px; height: 36px; object-fit: cover;}.o_mail_thread .o_thread_message .o_thread_message_sidebar .o_thread_message_side_date, .o_mail_activity .o_thread_message .o_thread_message_sidebar .o_thread_message_side_date{display: none; margin-left: -5px;}.o_mail_thread .o_thread_message .o_thread_message_sidebar .o_thread_message_star, .o_mail_activity .o_thread_message .o_thread_message_sidebar .o_thread_message_star{display: none; margin-right: -5px;}.o_mail_thread .o_thread_message .o_thread_message_sidebar .o_thread_message_side_date, .o_mail_activity .o_thread_message .o_thread_message_sidebar .o_thread_message_side_date{opacity: 0;}.o_mail_thread .o_thread_message .o_thread_icon, .o_mail_activity .o_thread_message .o_thread_icon{cursor: pointer; opacity: 0;}.o_mail_thread .o_thread_message .o_thread_icon.fa-star, .o_mail_activity .o_thread_message .o_thread_icon.fa-star{opacity: 0.6; color: gold;}.o_mail_thread .o_thread_message:hover .o_thread_message_side_date, .o_mail_thread .o_thread_message.o_thread_selected_message .o_thread_message_side_date, .o_mail_activity .o_thread_message:hover .o_thread_message_side_date, .o_mail_activity .o_thread_message.o_thread_selected_message .o_thread_message_side_date{display: inline-block; opacity: 0.6;}.o_mail_thread .o_thread_message:hover .o_thread_icon, .o_mail_thread .o_thread_message.o_thread_selected_message .o_thread_icon, .o_mail_activity .o_thread_message:hover .o_thread_icon, .o_mail_activity .o_thread_message.o_thread_selected_message .o_thread_icon{display: inline-block; opacity: 0.6;}.o_mail_thread .o_thread_message:hover .o_thread_icon:hover, .o_mail_thread .o_thread_message.o_thread_selected_message .o_thread_icon:hover, .o_mail_activity .o_thread_message:hover .o_thread_icon:hover, .o_mail_activity .o_thread_message.o_thread_selected_message .o_thread_icon:hover{opacity: 1;}.o_mail_thread .o_thread_message .o_mail_redirect, .o_mail_activity .o_thread_message .o_mail_redirect{cursor: pointer;}.o_mail_thread .o_thread_message .o_thread_message_core, .o_mail_activity .o_thread_message .o_thread_message_core{-webkit-box-flex: 1; -webkit-flex: 1 1 auto; flex: 1 1 auto; min-width: 0; max-width: 100%; word-wrap: break-word;}.o_mail_thread .o_thread_message .o_thread_message_core > pre, .o_mail_activity .o_thread_message .o_thread_message_core > pre{white-space: pre-wrap; word-break: break-word; text-align: justify;}.o_mail_thread .o_thread_message .o_thread_message_core .o_mail_note_title, .o_mail_activity .o_thread_message .o_thread_message_core .o_mail_note_title{margin-top: 9px;}.o_mail_thread .o_thread_message .o_thread_message_core .o_mail_subject, .o_mail_activity .o_thread_message .o_thread_message_core .o_mail_subject{font-style: italic;}.o_mail_thread .o_thread_message .o_thread_message_core .o_mail_notification, .o_mail_activity .o_thread_message .o_thread_message_core .o_mail_notification{font-style: italic; color: gray;}.o_mail_thread .o_thread_message .o_thread_message_core [summary~=o_mail_notification], .o_mail_activity .o_thread_message .o_thread_message_core [summary~=o_mail_notification]{display: none;}.o_mail_thread .o_thread_message .o_thread_message_core p, .o_mail_activity .o_thread_message .o_thread_message_core p{margin: 0 0 9px;}.o_mail_thread .o_thread_message .o_thread_message_core p:last-child, .o_mail_activity .o_thread_message .o_thread_message_core p:last-child{margin-bottom: 0;}.o_mail_thread .o_thread_message .o_thread_message_core a, .o_mail_activity .o_thread_message .o_thread_message_core a{display: inline-block; word-break: break-all;}.o_mail_thread .o_thread_message .o_thread_message_core :not(.o_image_box) > img, .o_mail_activity .o_thread_message .o_thread_message_core :not(.o_image_box) > img{max-width: 100%; height: auto;}.o_mail_thread .o_thread_message .o_thread_message_core .o_mail_body_long, .o_mail_activity .o_thread_message .o_thread_message_core .o_mail_body_long{display: none;}.o_mail_thread .o_thread_message .o_thread_message_core .o_mail_info, .o_mail_activity .o_thread_message .o_thread_message_core .o_mail_info{margin-bottom: 2px;}.o_mail_thread .o_thread_message .o_thread_message_core .o_thread_message_star, .o_mail_thread .o_thread_message .o_thread_message_core .o_thread_message_needaction, .o_mail_thread .o_thread_message .o_thread_message_core .o_thread_message_reply, .o_mail_thread .o_thread_message .o_thread_message_core .o_thread_message_notification, .o_mail_activity .o_thread_message .o_thread_message_core .o_thread_message_star, .o_mail_activity .o_thread_message .o_thread_message_core .o_thread_message_needaction, .o_mail_activity .o_thread_message .o_thread_message_core .o_thread_message_reply, .o_mail_activity .o_thread_message .o_thread_message_core .o_thread_message_notification{padding: 4px;}.o_mail_thread .o_thread_message .o_thread_message_core .o_thread_message_notification, .o_mail_activity .o_thread_message .o_thread_message_core .o_thread_message_notification{color: grey;}.o_mail_thread .o_thread_message .o_thread_message_core .o_thread_message_notification.o_thread_message_notification_error, .o_mail_activity .o_thread_message .o_thread_message_core .o_thread_message_notification.o_thread_message_notification_error{color: red; opacity: 1; cursor: pointer;}.o_mail_thread .o_thread_message .o_thread_message_core .o_attachments_list:last-child, .o_mail_thread .o_thread_message .o_thread_message_core .o_attachments_previews:last-child, .o_mail_activity .o_thread_message .o_thread_message_core .o_attachments_list:last-child, .o_mail_activity .o_thread_message .o_thread_message_core .o_attachments_previews:last-child{margin-bottom: 30px;}.o_mail_thread .o_thread_message .o_thread_message_core .o_mail_read_more, .o_mail_activity .o_thread_message .o_thread_message_core .o_mail_read_more{display: block;}.o_web_client.o_touch_device .o_mail_thread .o_thread_icon{opacity: 0.6;}.o_mail_thread_typing_icon{position: relative; text-align: center; margin-left: auto; margin-right: auto;}.o_mail_thread_typing_icon .o_mail_thread_typing_icon_dot{display: inline-block; width: 3px; height: 3px; border-radius: 50%; background: #343A40; animation: o_mail_thread_typing_icon_dot 1.5s linear infinite;}.o_mail_thread_typing_icon .o_mail_thread_typing_icon_dot:nth-child(2){animation-delay: -1.35s;}.o_mail_thread_typing_icon .o_mail_thread_typing_icon_dot:nth-child(3){animation-delay: -1.2s;}@keyframes o_mail_thread_typing_icon_dot{0%, 40%, 100%{transform: initial;}20%{transform: translateY(-5px);}}.o_livechat_button{position: fixed; right: 0; bottom: 0; margin-right: 12px; min-width: 100px; cursor: pointer; white-space: nowrap; background-color: rgba(60, 60, 60, 0.6); font-family: 'Lucida Grande', 'Lucida Sans Unicode', Arial, Verdana, sans-serif; font-size: 14px; font-weight: bold; padding: 10px; color: white; text-shadow: #3b4c58 1px 1px 0px; border: 1px solid #505050; border-bottom: 0px; border-top-left-radius: 5px; border-top-right-radius: 5px; z-index: 5;}.o_thread_window{z-index: 1046;}.o_thread_window .o_thread_date_separator{display: none;}.o_thread_window .btn{color: #FFFFFF; background-color: #30908e; border-color: #2d8685; border: 1px solid transparent;}.o_thread_window .btn-sm, .o_thread_window .btn-group-sm > .btn{padding: 0.0625rem 0.3125rem; font-size: 0.75rem; line-height: 1.5; border-radius: 0.2rem;}.o_thread_window .o_livechat_rating{-webkit-box-flex: 1; -webkit-flex: 1 1 auto; flex: 1 1 auto; overflow: auto; padding: 15px; font-size: 14px;}.o_thread_window .o_livechat_rating .o_livechat_email{font-size: 12px;}.o_thread_window .o_livechat_rating .o_livechat_email > div{display: -webkit-box; display: -webkit-flex; display: flex; padding: 5px 0;}.o_thread_window .o_livechat_rating .o_livechat_email > div input{display: block; width: 100%; height: calc(1.5em + 0.75rem + 2px); padding: 0.375rem 0.75rem; font-size: 0.875rem; font-weight: 400; line-height: 1.5; color: #495057; background-color: #FFFFFF; background-clip: padding-box; border: 1px solid #CED4DA;}.o_thread_window .o_livechat_rating .o_livechat_email > div button{display: inline-block; font-weight: 400; text-align: center; vertical-align: middle; user-select: none; padding: 0.375rem 0.75rem; font-size: 0.875rem; line-height: 1.5;}.o_thread_window .o_livechat_rating .o_livechat_no_feedback{text-decoration: underline; cursor: pointer; margin: 20px 0;}.o_thread_window .o_livechat_rating .o_livechat_rating_box{margin: 40px 0 30px 0;}.o_thread_window .o_livechat_rating .o_livechat_rating_choices{margin: 10px 0;}.o_thread_window .o_livechat_rating .o_livechat_rating_choices > img{width: 65px; opacity: 0.60; cursor: pointer; margin: 10px;}.o_thread_window .o_livechat_rating .o_livechat_rating_choices > img:hover, .o_thread_window .o_livechat_rating .o_livechat_rating_choices > img.selected{opacity: 1;}.o_thread_window .o_livechat_rating .o_livechat_rating_reason{margin: 10px 0px 25px 0px; display: none;}.o_thread_window .o_livechat_rating .o_livechat_rating_reason > textarea{width: 100%; height: 70px; resize: none;}.o_thread_window .o_livechat_rating .o_livechat_rating_reason_button > button{float: right;}.o_thread_window .o_composer_text_field{line-height: 1.3em;}.o_livechat_operator_avatar{padding-right: 8px;}.o_livechat_no_rating{opacity: 0.5;}.o_PublicLivechatMessage{display: -webkit-box; display: -webkit-flex; display: flex; position: relative;}.o_PublicLivechatMessage.o-isVisitorTheAuthor{flex-direction: row-reverse !important;}.o_PublicLivechatMessage_content{word-break: break-word; word-wrap: break-word;}.o_PublicLivechatMessage_header{display: -webkit-box; display: -webkit-flex; display: flex; align-items: center;}.o_PublicLivechatMessage_header.o-isVisitorTheAuthor{-webkit-box-pack: end !important; justify-content: flex-end !important;}.o_PublicLivechatMessage_headerAuthor{margin-right: 0.5rem;}.o_PublicLivechatMessage_headerDate{opacity: 50%;}.o_PublicLivechatMessage_headerDatePrefix{opacity: 50%; margin-right: 0.125rem;}.o_PublicLivechatMessage_bubbleWrap{display: -webkit-box; display: -webkit-flex; display: flex; position: relative; align-items: flex-start;}.o_PublicLivechatMessage_bubbleWrap.o-isVisitorTheAuthor{-webkit-box-pack: end; justify-content: flex-end; margin-left: 1.5rem;}.o_PublicLivechatMessage_bubbleWrap.o-isOperatorTheAuthor{margin-right: 1.5rem;}.o_PublicLivechatMessage_bubble{position: relative;}.o_PublicLivechatMessage_bubble.o-isContentNonEmpty{padding: 0.75rem;}.o_PublicLivechatMessage_bubble.o-isVisitorTheAuthor{margin-left: 0.5rem;}.o_PublicLivechatMessage_bubble.o-isOperatorTheAuthor{margin-right: 0.5rem;}.o_PublicLivechatMessage_background{position: absolute; z-index: -1; left: 0; top: 0; width: 100%; height: 100%; transition: opacity .5s ease-out; margin-right: 3rem; border-bottom-right-radius: 0.6rem !important; border-bottom-left-radius: 0.6rem !important; border: 1px solid #C9CCD2 !important;}.o_PublicLivechatMessage_background.o-isVisitorTheAuthor{border-bottom-left-radius: 0.6rem !important; border-top-left-radius: 0.6rem !important; opacity: 50%; border-color: #198754 !important; background-color: rgba(40, 167, 69, 0.5) !important; color: #000; opacity: 25%;}.o_PublicLivechatMessage_background.o-isOperatorTheAuthor{border-top-right-radius: 0.6rem !important; border-bottom-right-radius: 0.6rem !important; border-color: #17a2b8 !important; background-color: rgba(23, 162, 184, 0.5) !important; color: #000; opacity: 15%;}.o_PublicLivechatWindow_composer{padding: 0.5rem; outline: none; border: 0; border-top: 1px solid lightgray;}\n/* /im_livechat/static/src/legacy/public_livechat_chatbot.scss */\n .o_thread_window .o_livechat_chatbot_main_restart{color: white; opacity: 0.7;}.o_thread_window .o_livechat_chatbot_main_restart:hover, .o_thread_window .o_livechat_chatbot_main_restart:focus, .o_thread_window .o_livechat_chatbot_main_restart.focus{opacity: 1;}@media (max-width: 767.98px){.o_thread_window .o_livechat_chatbot_main_restart{padding: 14.5px; font-size: 17px; opacity: 1;}}.o_thread_window .o_livechat_chatbot_options{list-style: none; margin-block-start: 0px; margin-block-end: 0px; padding-inline-start: 0px;}.o_thread_window .o_livechat_chatbot_options li{user-select: none;}.o_thread_window .o_livechat_chatbot_options li:not(.disabled){cursor: pointer;}.o_thread_window .o_livechat_chatbot_options li:not(.disabled):hover{color: white; background-color: #35979c;}\n/* /auth_totp_portal/static/src/scss/auth_totp_portal.scss */\n .o_auth_totp_enable_2FA .o_field_copy{height: 24px; position: relative; width: 100% !important; border-radius: 5px; border: 1px solid #35979c; font-size: 0.75rem; text-transform: uppercase; color: #71639e; font-weight: 700; text-align: center; padding-right: 6rem; word-break: break-word;}.o_auth_totp_enable_2FA .o_field_copy .o_clipboard_button{position: absolute; top: 0; left: auto; bottom: auto; right: 0;}.o_auth_totp_enable_2FA .o_field_copy .o_clipboard_button.o_btn_text_copy{position: absolute; top: 0; right: 0;}.o_auth_totp_enable_2FA .o_field_copy .o_clipboard_button.o_btn_char_copy{height: 100%;}.o_auth_totp_enable_2FA .o_field_copy.o_field_copy_url{cursor: pointer; padding-left: 3px;}\n/* /portal_rating/static/src/scss/portal_rating.scss */\n .o_website_rating_static{color: #FACC2E;}.o_website_rating_card_container{}.o_website_rating_card_container .o_message_counter{color: #495057;}.o_website_rating_card_container table.o_website_rating_table{width: 100%; overflow: visible;}.o_website_rating_card_container table.o_website_rating_table .o_website_rating_table_star_num{min-width: 50px; white-space: nowrap;}.o_website_rating_card_container table.o_website_rating_table .o_website_rating_table_progress{min-width: 120px;}.o_website_rating_card_container table.o_website_rating_table .o_website_rating_table_progress > .progress{margin-bottom: 2px; margin-left: 5px; margin-right: 5px;}.o_website_rating_card_container table.o_website_rating_table .o_website_rating_table_progress .o_rating_progressbar{background-color: #FACC2E;}.o_website_rating_card_container table.o_website_rating_table .o_website_rating_table_percent{text-align: right; padding-left: 5px; font-size: 0.75rem;}.o_website_rating_card_container table.o_website_rating_table .o_website_rating_table_reset .o_website_rating_selection_reset{color: #dc3545;}.o_website_rating_card_container table.o_website_rating_table .o_website_rating_table_row:not(o_website_rating_table_row_selected){cursor: pointer;}.o_rating_star_card{margin-bottom: 5px;}.o_rating_star_card .stars{display: -webkit-inline-box; display: -webkit-inline-flex; display: inline-flex; color: #FACC2E; margin-right: 15px;}.o_rating_star_card .stars i{padding-right: 1px; padding-left: 1px; text-align: center;}.o_rating_star_card .stars.enabled{cursor: pointer;}.o_rating_star_card .rate_text{display: inline-block;}.o_rating_popup_composer .o_rating_clickable{cursor: pointer;}.o_rating_popup_composer .o_portal_chatter_avatar{margin-right: 10px;}\n/* /website_livechat/static/src/legacy/public_livechat.scss */\n .o_website_livechat_button{display: -webkit-box; display: -webkit-flex; display: flex; justify-content: center; align-items: center; transition: filter 0.3s; padding: 0px; margin: 0 30px 30px 0; box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); border: none; border-radius: 50%; width: 56px; height: 56px; min-width: 56px; font-size: 24px; font-weight: normal; text-shadow: none;}.o_website_livechat_button.o-isExternalLib::before{content: "\n";}.o_website_livechat_button:hover{filter: brightness(90%);}.o_cookies_bar_toggle{inset-inline-end: calc(1rem + 86px); inset-block-end: var(--cookies-bar-toggle-inset-block-end, 30px);}\n/* /website_links/static/src/css/website_links.css */\n.no-link-style{color: black; text-decoration: none;}.required-form-control{background-color: #CECDFF;}#filters li a, #filters li.active a, #filters li.active a.active, #filters li.active a:hover, #filters li.active a:focus, #filters li a:hover{padding: 0px 5px; border-radius: 0px; border: 0px; border-color: transparent; border-right: 1px solid #999; padding-bottom: 0; background-color: #FFFFFF;}#filters li.active a{color: #999;}#filters li:last-child a, #filters li:last-child a:hover, #filters li:last-child a:focus{border-right: 0px;}.nav-tabs-inline{font-size: 14px;}#o_website_links_recent_links{min-height:30em;}.o_website_links_code_error{display:none; color:red; font-weight:bold;}.truncate_text{white-space: nowrap; text-overflow: ellipsis; overflow: hidden; max-width: 500px;}\n/* /website_mail/static/src/css/website_mail.scss */\n .js_follow[data-follow='on'] .js_follow_btn, .js_follow[data-follow='off'] .js_unfollow_btn{display: none;}.js_follow_icons_container .js_follow_btn, .js_follow_icons_container .js_unfollow_btn{animation: js_follow_fade 1s ease forwards; opacity: 0;}.js_follow_icons_container .js_follow_btn small, .js_follow_icons_container .js_follow_btn .small, .js_follow_icons_container .js_unfollow_btn small, .js_follow_icons_container .js_unfollow_btn .small{opacity: 0; transition: opacity 0.3s ease;}.js_follow_icons_container .js_follow_btn:hover small, .js_follow_icons_container .js_follow_btn:hover .small, .js_follow_icons_container .js_follow_btn:focus small, .js_follow_icons_container .js_follow_btn:focus .small, .js_follow_icons_container .js_unfollow_btn:hover small, .js_follow_icons_container .js_unfollow_btn:hover .small, .js_follow_icons_container .js_unfollow_btn:focus small, .js_follow_icons_container .js_unfollow_btn:focus .small{transition-duration: 1s; opacity: 1;}.js_follow_icons_container .fa:before{content: "\\f0f3"; color: rgba(33, 37, 41, 0.7);}.js_follow_icons_container .js_follow_btn:hover .fa:before{color: #212529;}.js_follow_icons_container .js_unfollow_btn .fa:before{color: #35979c;}.js_follow_icons_container .js_unfollow_btn:hover .fa:before{content: "\\f1f6"; color: #dc3545;}@keyframes js_follow_fade{to{opacity: 1;}}\n/* /website_mass_mailing/static/src/scss/website_mass_mailing_popup.scss */\n .o_newsletter_modal .modal-header{padding: 0; border: none;}.o_newsletter_modal .modal-title{display: none;}.o_newsletter_modal .close{z-index: 1055; position: absolute; top: 0; left: auto; bottom: auto; right: 0; width: 2.5rem; height: 2.5rem; line-height: 2.5rem; margin: 0; padding: 0; background-color: #FFFFFF !important; color: #35979c; box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075); opacity: 1;}\n/* /mass_mailing/static/src/snippets/s_alert/000.scss */\n .o_mail_snippet_general .s_mail_alert [class^="col-lg"]{padding-left: 0 !important; padding-right: 0 !important;}.s_mail_alert .s_alert{margin: auto; border-width: 1px; border-style: solid; border-radius: 0.25rem;}.s_mail_alert .s_alert p:last-child, .s_mail_alert .s_alert ul:last-child, .s_mail_alert .s_alert ol:last-child{margin-bottom: 0;}.s_mail_alert .s_alert_sm{padding: 10px; font-size: 0.75rem;}.s_mail_alert .s_alert_md{padding: 15px; font-size: 1rem;}.s_mail_alert .s_alert_lg{padding: 30px; font-size: 1.25rem;}.s_mail_alert .s_alert_icon{float: left; margin-right: 10px;}.s_mail_alert .s_alert_content{overflow: hidden;}\n/* /mass_mailing/static/src/snippets/s_features_grid/000.scss */\n .s_mail_features_grid .s_mail_features_grid_content{overflow: hidden;}.s_mail_features_grid .s_mail_features_grid_content p{margin-bottom: 0;}.s_mail_features_grid .s_mail_features_grid_icon{float: left;}\n/* /mass_mailing/static/src/snippets/s_hr/000.scss */\n .o_layout .s_hr{line-height: 0;}.o_layout .s_hr hr{padding: 0; border: 0; border-top: 1px solid currentColor; color: inherit; margin-top: auto; margin-bottom: auto;}.o_layout .s_hr hr:not(.ms-auto):not(.me-auto){margin-inline: auto;}\n/* /mass_mailing/static/src/snippets/s_masonry_block/001.scss */\n .o_mail_snippet_general.s_masonry_block[data-vcss='001'] .row > div{display: -webkit-box; display: -webkit-flex; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -webkit-flex-direction: column; flex-direction: column; justify-content: center;}.o_mail_snippet_general.s_masonry_block[data-vcss='001'] .o_masonry_grid_container > .row{height: 100%;}\n/* /mass_mailing/static/src/snippets/s_media_list/001.scss */\n .s_media_list[data-vcss="001"] .s_media_list_item > .row{overflow: hidden;}.s_media_list[data-vcss="001"] .s_media_list_body{padding: 2rem;}.s_media_list[data-vcss="001"] .s_media_list_img{object-fit: cover;}\n/* /mass_mailing/static/src/snippets/s_rating/001.scss */\n .o_mail_snippet_general .s_rating{padding-left: 0 !important; padding-right: 0 !important;}.s_rating[data-vcss="001"].s_rating_inline{display: -webkit-box; display: -webkit-flex; display: flex; align-items: center;}.s_rating[data-vcss="001"].s_rating_inline .s_rating_title{margin: 0; margin-right: 0.5em;}.s_rating[data-vcss="001"].s_rating_inline .s_rating_icons{margin-left: auto;}\n/* /website/static/src/snippets/s_title/000.scss */\n .s_title:not([data-vcss]) .s_title_boxed > *{display: inline-block; padding: 30px; border: 1px solid;}.s_title:not([data-vcss]) .s_title_lines{overflow: hidden;}.s_title:not([data-vcss]) .s_title_lines:before, .s_title:not([data-vcss]) .s_title_lines:after{content: ""; display: inline-block; vertical-align: middle; width: 100%; border-top: 1px solid; border-top-color: inherit;}.s_title:not([data-vcss]) .s_title_lines:before{margin: 0 15px 0 -100%;}.s_title:not([data-vcss]) .s_title_lines:after{margin: 0 -100% 0 15px;}.s_title:not([data-vcss]) .s_title_small_caps{font-variant: small-caps;}.s_title:not([data-vcss]) .s_title_transparent{opacity: .5;}.s_title:not([data-vcss]) .s_title_thin{font-weight: 300;}\n/* /website/static/src/snippets/s_alert/000.scss */\n .s_alert{margin: 15px 0; border: 1px solid; border-radius: 0.25rem;}.s_alert p:last-child, .s_alert ul:last-child, .s_alert ol:last-child{margin-bottom: 0;}.s_alert.s_alert_sm{padding: 10px; font-size: 0.75rem;}.s_alert.s_alert_md{padding: 15px; font-size: 1rem;}.s_alert.s_alert_lg{padding: 30px; font-size: 1.25rem;}.s_alert .s_alert_icon{float: left; margin-right: 10px;}.s_alert .s_alert_content{overflow: hidden;}\n/* /website/static/src/snippets/s_card/000.scss */\n .s_card{margin: 15px 0;}.s_card .card-body p:last-child, .s_card .card-body ul:last-child, .s_card .card-body ol:last-child{margin-bottom: 0;}\n/* /website/static/src/snippets/s_share/000.scss */\n .s_share > *{display: inline-block; vertical-align: middle;}.s_share .s_share_title{margin: 0 .4rem 0 0;}.s_share a{margin: .2rem;}.s_share a i.fa{display: -webkit-box; display: -webkit-flex; display: flex; justify-content: center; align-items: center;}\n/* /website/static/src/snippets/s_social_media/000.scss */\n .s_social_media > *{display: inline-block; vertical-align: middle;}.s_social_media .s_social_media_title{margin: 0 .4rem 0 0;}.s_social_media a{margin: .2rem;}.s_social_media a i.fa, .s_social_media a span.fa{display: -webkit-box; display: -webkit-flex; display: flex; justify-content: center; align-items: center;}\n/* /website/static/src/snippets/s_rating/001.scss */\n .s_rating[data-vcss="001"].s_rating_inline{display: -webkit-box; display: -webkit-flex; display: flex; align-items: center;}.s_rating[data-vcss="001"].s_rating_inline .s_rating_title{margin: 0; margin-right: 0.5em;}.s_rating[data-vcss="001"].s_rating_inline .s_rating_icons{margin-left: auto;}\n/* /website/static/src/snippets/s_hr/000.scss */\n .s_hr{line-height: 0;}.s_hr hr{padding: 0; border: 0; border-top: 1px solid currentColor; margin: 0; color: inherit; opacity: 1; background-color: transparent;}\n/* /website/static/src/snippets/s_image_gallery/001.scss */\n .s_image_gallery[data-vcss="001"].o_grid .img, .s_image_gallery[data-vcss="001"].o_masonry .img{width: 100%;}.s_image_gallery[data-vcss="001"].o_grid.o_spc-none div.row{margin-bottom: 0px;}.s_image_gallery[data-vcss="001"].o_grid.o_spc-small div.row > div{margin-bottom: 1rem;}.s_image_gallery[data-vcss="001"].o_grid.o_spc-medium div.row > div{margin-bottom: 2rem;}.s_image_gallery[data-vcss="001"].o_grid.o_spc-big div.row > div{margin-bottom: 3rem;}.s_image_gallery[data-vcss="001"].o_masonry.o_spc-none div.o_masonry_col{padding: 0;}.s_image_gallery[data-vcss="001"].o_masonry.o_spc-none div.o_masonry_col > img, .s_image_gallery[data-vcss="001"].o_masonry.o_spc-none div.o_masonry_col > a > img, .s_image_gallery[data-vcss="001"].o_masonry.o_spc-none div.o_masonry_col > .media_iframe_video{margin: 0 !important;}.s_image_gallery[data-vcss="001"].o_masonry.o_spc-small div.o_masonry_col{padding: 0 0.5rem;}.s_image_gallery[data-vcss="001"].o_masonry.o_spc-small div.o_masonry_col > img, .s_image_gallery[data-vcss="001"].o_masonry.o_spc-small div.o_masonry_col > a > img, .s_image_gallery[data-vcss="001"].o_masonry.o_spc-small div.o_masonry_col > .media_iframe_video{margin-bottom: 1rem !important;}.s_image_gallery[data-vcss="001"].o_masonry.o_spc-medium div.o_masonry_col{padding: 0 1rem;}.s_image_gallery[data-vcss="001"].o_masonry.o_spc-medium div.o_masonry_col > img, .s_image_gallery[data-vcss="001"].o_masonry.o_spc-medium div.o_masonry_col > a > img, .s_image_gallery[data-vcss="001"].o_masonry.o_spc-medium div.o_masonry_col > .media_iframe_video{margin-bottom: 2rem !important;}.s_image_gallery[data-vcss="001"].o_masonry.o_spc-big div.o_masonry_col{padding: 0 1.5rem;}.s_image_gallery[data-vcss="001"].o_masonry.o_spc-big div.o_masonry_col > img, .s_image_gallery[data-vcss="001"].o_masonry.o_spc-big div.o_masonry_col > a > img, .s_image_gallery[data-vcss="001"].o_masonry.o_spc-big div.o_masonry_col > .media_iframe_video{margin-bottom: 3rem !important;}.s_image_gallery[data-vcss="001"].o_nomode.o_spc-none .row > div{padding-top: 0; padding-bottom: 0;}.s_image_gallery[data-vcss="001"].o_nomode.o_spc-small .row > div{padding-top: 0.5rem; padding-bottom: 0.5rem;}.s_image_gallery[data-vcss="001"].o_nomode.o_spc-medium .row > div{padding-top: 1rem; padding-bottom: 1rem;}.s_image_gallery[data-vcss="001"].o_nomode.o_spc-big .row > div{padding-top: 1.5rem; padding-bottom: 1.5rem;}.s_image_gallery[data-vcss="001"]:not(.o_slideshow) img{cursor: pointer;}.s_image_gallery[data-vcss="001"].o_slideshow .carousel .carousel-item.active, .s_image_gallery[data-vcss="001"].o_slideshow .carousel .carousel-item-next, .s_image_gallery[data-vcss="001"].o_slideshow .carousel .carousel-item-prev, .s_image_gallery[data-vcss="001"].o_slideshow .carousel .carousel-control-next, .s_image_gallery[data-vcss="001"].o_slideshow .carousel .carousel-control-prev{padding-bottom: 64px;}.s_image_gallery[data-vcss="001"].o_slideshow .carousel ul.carousel-indicators li{border: 1px solid #aaa;}.s_image_gallery[data-vcss="001"].o_slideshow .carousel .media_iframe_video{width: 70%; height: 100%;}.s_image_gallery[data-vcss="001"].o_slideshow ul.carousel-indicators{position: absolute; left: 0%; bottom: 0; width: 100%; height: auto; margin-left: 0; padding: 0; border-width: 0;}.s_image_gallery[data-vcss="001"].o_slideshow ul.carousel-indicators > *{list-style-image: none; display: inline-block; width: 40px; height: 40px; line-height: 40px; margin: 2.5px 2.5px 2.5px 2.5px; padding: 0; border: 1px solid #aaa; text-indent: initial; background-size: cover; background-color: #fff; background-position: center; border-radius: 0; vertical-align: bottom; flex: 0 0 40px;}.s_image_gallery[data-vcss="001"].o_slideshow ul.carousel-indicators > *:not(.active){opacity: 0.8; filter: grayscale(1);}.s_image_gallery[data-vcss="001"].o_slideshow > .container, .s_image_gallery[data-vcss="001"].o_slideshow > .container-fluid, .s_image_gallery[data-vcss="001"].o_slideshow > .container-sm, .s_image_gallery[data-vcss="001"].o_slideshow > .container-md, .s_image_gallery[data-vcss="001"].o_slideshow > .container-lg, .s_image_gallery[data-vcss="001"].o_slideshow > .container-xl, .s_image_gallery[data-vcss="001"].o_slideshow > .container-xxl, .s_image_gallery[data-vcss="001"].o_slideshow > .o_container_small{height: 100%;}.s_image_gallery[data-vcss="001"].o_slideshow.s_image_gallery_cover .carousel-item > a{width: 100%; height: 100%;}.s_image_gallery[data-vcss="001"].o_slideshow.s_image_gallery_cover .carousel-item > a > img, .s_image_gallery[data-vcss="001"].o_slideshow.s_image_gallery_cover .carousel-item > img{width: 100%; height: 100%; object-fit: cover;}.s_image_gallery[data-vcss="001"].o_slideshow:not(.s_image_gallery_show_indicators) .carousel ul.carousel-indicators{display: none;}.s_image_gallery[data-vcss="001"].o_slideshow:not(.s_image_gallery_show_indicators) .carousel .carousel-item.active, .s_image_gallery[data-vcss="001"].o_slideshow:not(.s_image_gallery_show_indicators) .carousel .carousel-item-next, .s_image_gallery[data-vcss="001"].o_slideshow:not(.s_image_gallery_show_indicators) .carousel .carousel-item-prev, .s_image_gallery[data-vcss="001"].o_slideshow:not(.s_image_gallery_show_indicators) .carousel .carousel-control-next, .s_image_gallery[data-vcss="001"].o_slideshow:not(.s_image_gallery_show_indicators) .carousel .carousel-control-prev{padding-bottom: 0px;}.s_image_gallery[data-vcss="001"].o_slideshow.s_image_gallery_indicators_arrows_boxed .carousel .carousel-control-prev .fa, .s_image_gallery[data-vcss="001"].o_slideshow.s_image_gallery_indicators_arrows_boxed .carousel .carousel-control-next .fa, .s_image_gallery[data-vcss="001"].o_slideshow.s_image_gallery_indicators_arrows_rounded .carousel .carousel-control-prev .fa, .s_image_gallery[data-vcss="001"].o_slideshow.s_image_gallery_indicators_arrows_rounded .carousel .carousel-control-next .fa{text-shadow: none;}.s_image_gallery[data-vcss="001"].o_slideshow.s_image_gallery_indicators_arrows_boxed .carousel .carousel-control-prev .fa:before{content: "\\f104"; padding-right: 2px;}.s_image_gallery[data-vcss="001"].o_slideshow.s_image_gallery_indicators_arrows_boxed .carousel .carousel-control-next .fa:before{content: "\\f105"; padding-left: 2px;}.s_image_gallery[data-vcss="001"].o_slideshow.s_image_gallery_indicators_arrows_boxed .carousel .carousel-control-prev .fa:before, .s_image_gallery[data-vcss="001"].o_slideshow.s_image_gallery_indicators_arrows_boxed .carousel .carousel-control-next .fa:before{display: block; width: 3rem; height: 3rem; line-height: 3rem; color: black; background: white; font-size: 1.25rem; border: 1px solid #ADB5BD;}.s_image_gallery[data-vcss="001"].o_slideshow.s_image_gallery_indicators_arrows_rounded .carousel .carousel-control-prev .fa:before{content: "\\f060";}.s_image_gallery[data-vcss="001"].o_slideshow.s_image_gallery_indicators_arrows_rounded .carousel .carousel-control-next .fa:before{content: "\\f061";}.s_image_gallery[data-vcss="001"].o_slideshow.s_image_gallery_indicators_arrows_rounded .carousel .carousel-control-prev .fa:before, .s_image_gallery[data-vcss="001"].o_slideshow.s_image_gallery_indicators_arrows_rounded .carousel .carousel-control-next .fa:before{color: black; background: white; font-size: 1.25rem; border-radius: 50%; padding: 1.25rem; border: 1px solid #ADB5BD;}.s_image_gallery[data-vcss="001"].o_slideshow.s_image_gallery_indicators_rounded .carousel ul.carousel-indicators li{border-radius: 50%;}.s_image_gallery[data-vcss="001"].o_slideshow.s_image_gallery_indicators_dots .carousel ul.carousel-indicators{height: 40px; margin: auto;}.s_image_gallery[data-vcss="001"].o_slideshow.s_image_gallery_indicators_dots .carousel ul.carousel-indicators li{max-width: 8px; max-height: 8px; margin: 0 6px; border-radius: 10px; background-color: #000; background-image: none !important;}.s_image_gallery[data-vcss="001"].o_slideshow.s_image_gallery_indicators_dots .carousel ul.carousel-indicators li:not(.active){opacity: .4;}.s_image_gallery[data-vcss="001"] .carousel-inner .item img{max-width: none;}.s_gallery_lightbox .modal-dialog{height: 100%; background-color: rgba(0, 0, 0, 0.7);}@media (min-width: 576px){.s_gallery_lightbox .modal-dialog{max-width: 100%; padding: 0;}}.s_gallery_lightbox ul.carousel-indicators{display: none;}.s_image_gallery[data-vcss="001"].o_slideshow:not(.s_image_gallery_cover) .carousel-item > a, .s_gallery_lightbox .modal-body.o_slideshow:not(.s_image_gallery_cover) .carousel-item > a{display: -webkit-box; display: -webkit-flex; display: flex; height: 100%; width: 100%;}.s_image_gallery[data-vcss="001"].o_slideshow:not(.s_image_gallery_cover) .carousel-item > a > img, .s_gallery_lightbox .modal-body.o_slideshow:not(.s_image_gallery_cover) .carousel-item > a > img, .s_image_gallery[data-vcss="001"].o_slideshow:not(.s_image_gallery_cover) .carousel-item > img, .s_gallery_lightbox .modal-body.o_slideshow:not(.s_image_gallery_cover) .carousel-item > img{max-height: 100%; max-width: 100%; margin: auto;}.s_image_gallery[data-vcss="001"].o_slideshow .carousel, .s_gallery_lightbox .modal-body.o_slideshow .carousel{height: 100%;}.s_image_gallery[data-vcss="001"].o_slideshow .carousel .carousel-inner, .s_gallery_lightbox .modal-body.o_slideshow .carousel .carousel-inner{height: 100%;}.s_image_gallery[data-vcss="001"].o_slideshow .carousel .carousel-item.active, .s_gallery_lightbox .modal-body.o_slideshow .carousel .carousel-item.active, .s_image_gallery[data-vcss="001"].o_slideshow .carousel .carousel-item-next, .s_gallery_lightbox .modal-body.o_slideshow .carousel .carousel-item-next, .s_image_gallery[data-vcss="001"].o_slideshow .carousel .carousel-item-prev, .s_gallery_lightbox .modal-body.o_slideshow .carousel .carousel-item-prev, .s_image_gallery[data-vcss="001"].o_slideshow .carousel .carousel-control-next, .s_gallery_lightbox .modal-body.o_slideshow .carousel .carousel-control-next, .s_image_gallery[data-vcss="001"].o_slideshow .carousel .carousel-control-prev, .s_gallery_lightbox .modal-body.o_slideshow .carousel .carousel-control-prev{display: -webkit-box; display: -webkit-flex; display: flex; align-items: center; height: 100%;}.s_image_gallery[data-vcss="001"].o_slideshow .carousel .carousel-control-next .fa, .s_gallery_lightbox .modal-body.o_slideshow .carousel .carousel-control-next .fa, .s_image_gallery[data-vcss="001"].o_slideshow .carousel .carousel-control-prev .fa, .s_gallery_lightbox .modal-body.o_slideshow .carousel .carousel-control-prev .fa{text-shadow: 0px 0px 3px #343A40;}\n/* /website/static/src/snippets/s_product_catalog/001.scss */\n .s_product_catalog[data-vcss='001'] .s_product_catalog_dish .s_product_catalog_dish_title{line-height: 1.2;}.s_product_catalog[data-vcss='001'] .s_product_catalog_dish .s_product_catalog_dish_description{margin-bottom: 1rem;}.s_product_catalog[data-vcss='001'] .s_product_catalog_dish:last-child .s_product_catalog_dish_description{margin-bottom: 0;}.s_product_catalog[data-vcss='001'] .s_product_catalog_dish .s_product_catalog_dish_dot_leaders{display: -webkit-box; display: -webkit-flex; display: flex; flex-grow: 1; align-items: center;}.s_product_catalog[data-vcss='001'] .s_product_catalog_dish .s_product_catalog_dish_dot_leaders::after{content: ''; margin-left: 0.5rem; -webkit-box-flex: 1; -webkit-flex: 1 0 auto; flex: 1 0 auto; border-bottom: 1px dotted;}\n/* /website/static/src/snippets/s_comparisons/000.scss */\n .s_comparisons .card-body .card-title{margin: 0;}.s_comparisons .card-body .s_comparisons_currency, .s_comparisons .card-body .s_comparisons_price, .s_comparisons .card-body .s_comparisons_decimal{display: inline-block; vertical-align: middle;}.s_comparisons .card-body .s_comparisons_currency, .s_comparisons .card-body .s_comparisons_decimal{font-size: 80%;}.s_comparisons .card-body .s_comparisons_price{font-size: 200%;}\n/* /website/static/src/snippets/s_company_team/000.scss */\n @media (max-width: 991.98px){.s_company_team img{max-width: 50%;}}\n/* /website/static/src/snippets/s_references/000.scss */\n .s_references .img-thumbnail{border: none;}\n/* /website/static/src/snippets/s_popup/001.scss */\n .s_popup[data-vcss='001'] .modal-content{min-height: 2.5rem; border: 0; border-radius: 0; box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);}.s_popup[data-vcss='001'] .s_popup_close{z-index: 1055; position: absolute; top: 0; left: auto; bottom: auto; right: 0; width: 2.5rem; height: 2.5rem; line-height: 2.5rem; background-color: #FFFFFF !important; color: #35979c; box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075); cursor: pointer; font-size: 1.25rem; text-align: center;}.s_popup[data-vcss='001'] .s_popup_size_full{padding: 0 !important; max-width: 100%;}.s_popup[data-vcss='001'] .s_popup_size_full > .modal-content{background-color: transparent; box-shadow: none; border-radius: 0;}.s_popup[data-vcss='001'] .modal-dialog{margin: 0 0 0 auto; min-height: 100%;}.s_popup[data-vcss='001'] .modal-dialog:not(.s_popup_size_full){padding: 1rem !important;}.s_popup[data-vcss='001'] .s_popup_top .modal-dialog{align-items: flex-start;}.s_popup[data-vcss='001'] .s_popup_middle .modal-dialog{align-items: center; margin-right: auto;}.s_popup[data-vcss='001'] .s_popup_bottom .modal-dialog{align-items: flex-end;}.s_popup[data-vcss='001'] .s_popup_no_backdrop{pointer-events: none;}.s_popup[data-vcss='001'] .s_popup_no_backdrop .modal-dialog{height: 100%;}.s_popup[data-vcss='001'] .s_popup_no_backdrop .modal-dialog .modal-content{max-height: 100%; overflow-y: auto; overflow-x: hidden;}\n/* /website/static/src/snippets/s_faq_collapse/000.scss */\n .s_faq_collapse .accordion .card .card-header{cursor: pointer; display: inline-block; width: 100%; position: relative; padding: .5em 1em; padding-left: 2.25em; border-radius: 0; outline: none;}.s_faq_collapse .accordion .card .card-header:before{content: '\\f056'; font-family: 'FontAwesome'; color: #6C757D; position: absolute; margin-left: -1.5em;}.s_faq_collapse .accordion .card .card-header.collapsed:before{content: '\\f055';}.s_faq_collapse .accordion .card .card-header:hover, .s_faq_collapse .accordion .card .card-header:focus{text-decoration: none;}.s_faq_collapse .accordion .card .s_faq_collapse_right_icon{padding-left: 1em;}.s_faq_collapse .accordion .card .s_faq_collapse_right_icon:before{position: static; float: right; margin-left: 0;}.s_faq_collapse .accordion .card .s_faq_collapse_right_icon + div .card-body{padding-left: 1em;}.s_faq_collapse .accordion .card .card-body{padding: 1em; padding-left: 2.25em;}.s_faq_collapse .card-body p:last-child, .s_faq_collapse .card-body ul:last-child{margin-bottom: 0;}.s_faq_collapse.s_faq_collapse_light .accordion .card{border-left: 0; border-right: 0; border-radius: 0;}.s_faq_collapse.s_faq_collapse_light .accordion .card .card-header{background-color: transparent;}.s_faq_collapse.s_faq_collapse_light .accordion .card .card-header:before{content: '\\f068';}.s_faq_collapse.s_faq_collapse_light .accordion .card .card-header.collapsed:before{content: '\\f067';}.s_faq_collapse.s_faq_collapse_light .accordion .card .s_faq_collapse_right_icon{padding-left: 0;}.s_faq_collapse.s_faq_collapse_light .accordion .card .card-header + div .card-body{padding-left: 0; padding-right: 0;}.s_faq_collapse.s_faq_collapse_big .accordion .card{border: 0;}.s_faq_collapse.s_faq_collapse_big .accordion .card .card-header{background-color: transparent; font-size: 1.875rem;}.s_faq_collapse.s_faq_collapse_big .accordion .card .card-header:before{content: '\\f068';}.s_faq_collapse.s_faq_collapse_big .accordion .card .card-header.collapsed:before{content: '\\f067';}.s_faq_collapse.s_faq_collapse_big .accordion .card .s_faq_collapse_right_icon{padding-left: 0;}.s_faq_collapse.s_faq_collapse_big .accordion .card .card-header + div .card-body{padding-left: 0; padding-right: 0;}.s_faq_collapse.s_faq_collapse_boxed .accordion .card{border: 0; margin: 0.5rem 0;}.s_faq_collapse.s_faq_collapse_boxed .accordion .card:first-child{margin-top: 0;}.s_faq_collapse.s_faq_collapse_boxed .accordion .card:last-child{margin-bottom: 0;}.s_faq_collapse.s_faq_collapse_boxed .accordion .card .card-header{border: 0;}.s_faq_collapse.s_faq_collapse_boxed .accordion .card .card-header.collapsed{background-color: transparent;}.s_faq_collapse.s_faq_collapse_boxed .accordion .card .collapse.show .card-body, .s_faq_collapse.s_faq_collapse_boxed .accordion .card .collapsing .card-body{background-color: rgba(0, 0, 0, 0.03) !important;}\n/* /website/static/src/snippets/s_features_grid/000.scss */\n .s_features_grid .s_features_grid_content{overflow: hidden;}.s_features_grid .s_features_grid_content p{margin-bottom: 0;}.s_features_grid .s_features_grid_icon{float: left; margin-right: 15px;}\n/* /website/static/src/snippets/s_tabs/001.scss */\n .s_tabs[data-vcss="001"] .s_tabs_content.s_tabs_slide_up > .tab-pane.fade, .s_tabs[data-vcss="001"] .s_tabs_content.s_tabs_slide_down > .tab-pane.fade, .s_tabs[data-vcss="001"] .s_tabs_content.s_tabs_slide_left > .tab-pane.fade, .s_tabs[data-vcss="001"] .s_tabs_content.s_tabs_slide_right > .tab-pane.fade{transition: all 0.2s;}.s_tabs[data-vcss="001"] .s_tabs_content.s_tabs_slide_up > .tab-pane.fade.show, .s_tabs[data-vcss="001"] .s_tabs_content.s_tabs_slide_down > .tab-pane.fade.show, .s_tabs[data-vcss="001"] .s_tabs_content.s_tabs_slide_left > .tab-pane.fade.show, .s_tabs[data-vcss="001"] .s_tabs_content.s_tabs_slide_right > .tab-pane.fade.show{transform: translateX(0rem) translateY(0rem);}.s_tabs[data-vcss="001"] .s_tabs_content.s_tabs_slide_up > .tab-pane.fade{transform: translateY(-1rem);}.s_tabs[data-vcss="001"] .s_tabs_content.s_tabs_slide_down > .tab-pane.fade{transform: translateY(1rem);}.s_tabs[data-vcss="001"] .s_tabs_content.s_tabs_slide_left > .tab-pane.fade{transform: translateX(-1rem);}.s_tabs[data-vcss="001"] .s_tabs_content.s_tabs_slide_right > .tab-pane.fade{transform: translateX(1rem);}\n/* /website/static/src/snippets/s_table_of_content/000.scss */\n .s_table_of_content:not([data-vcss]) .s_table_of_content_navbar_wrap.s_table_of_content_navbar_sticky.s_table_of_content_horizontal_navbar, .s_table_of_content:not([data-vcss]) .s_table_of_content_navbar_wrap.s_table_of_content_navbar_sticky.s_table_of_content_vertical_navbar .s_table_of_content_navbar{position: -webkit-sticky; position: sticky; top: 0px; left: auto; bottom: auto; right: auto;}.s_table_of_content:not([data-vcss]) .s_table_of_content_navbar_wrap.s_table_of_content_navbar_sticky.s_table_of_content_vertical_navbar .s_table_of_content_navbar{overflow: auto;}.s_table_of_content:not([data-vcss]) .s_table_of_content_navbar_wrap:not(.s_table_of_content_navbar_sticky), .s_table_of_content:not([data-vcss]) .s_table_of_content_navbar_wrap:not(.s_table_of_content_navbar_sticky) .s_table_of_content_navbar{top: 0px !important;}.s_table_of_content:not([data-vcss]) .s_table_of_content_navbar_wrap.s_table_of_content_vertical_navbar .s_table_of_content_navbar{overflow-wrap: break-word;}.s_table_of_content:not([data-vcss]) .s_table_of_content_navbar_wrap.s_table_of_content_vertical_navbar .s_table_of_content_navbar > a.list-group-item-action{background: none; color: inherit; opacity: 0.7; font-weight: 500; padding-left: 3px; transition: padding 0.1s;}.s_table_of_content:not([data-vcss]) .s_table_of_content_navbar_wrap.s_table_of_content_vertical_navbar .s_table_of_content_navbar > a.list-group-item-action:before{position: absolute; top: 10px; left: 0; bottom: 10px; right: auto; width: 2px; content: "";}.s_table_of_content:not([data-vcss]) .s_table_of_content_navbar_wrap.s_table_of_content_vertical_navbar .s_table_of_content_navbar > a.list-group-item-action:hover{opacity: 1;}.s_table_of_content:not([data-vcss]) .s_table_of_content_navbar_wrap.s_table_of_content_vertical_navbar .s_table_of_content_navbar > a.list-group-item-action:focus{background: none;}.s_table_of_content:not([data-vcss]) .s_table_of_content_navbar_wrap.s_table_of_content_vertical_navbar .s_table_of_content_navbar > a.list-group-item-action.active{background: none; padding-left: 8px; opacity: 1;}.s_table_of_content:not([data-vcss]) .s_table_of_content_navbar_wrap.s_table_of_content_vertical_navbar .s_table_of_content_navbar > a.list-group-item-action.active:before{background-color: #35979c;}.s_table_of_content:not([data-vcss]) .s_table_of_content_navbar_wrap.s_table_of_content_horizontal_navbar{z-index: 1; padding-top: 0.5rem; padding-bottom: 0.5rem; margin-bottom: 2rem;}.s_table_of_content:not([data-vcss]) .s_table_of_content_navbar_wrap.s_table_of_content_horizontal_navbar .s_table_of_content_navbar{display: inline;}.s_table_of_content:not([data-vcss]) .s_table_of_content_navbar_wrap.s_table_of_content_horizontal_navbar .s_table_of_content_navbar > a.list-group-item-action{width: auto;}.s_table_of_content:not([data-vcss]) .s_table_of_content_navbar_wrap.s_table_of_content_horizontal_navbar .s_table_of_content_navbar > a.list-group-item{display: inline-block; margin-bottom: 2px;}\n/* /website/static/src/snippets/s_quotes_carousel/001.scss */\n .s_quotes_carousel_wrapper[data-vcss='001'] .s_blockquote{margin-bottom: 0;}@media (max-width: 767.98px){.s_quotes_carousel_wrapper[data-vcss='001'] .s_blockquote{width: 100% !important;}}\n/* /website/static/src/snippets/s_masonry_block/001.scss */\n .s_masonry_block[data-vcss='001'] .row > div{display: -webkit-box; display: -webkit-flex; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -webkit-flex-direction: column; flex-direction: column; justify-content: center;}.s_masonry_block[data-vcss='001'] .row.o_grid_mode > div.o_grid_item_image{padding: 0 !important;}.s_masonry_block[data-vcss='001'] .row.o_grid_mode.o_we_padding_highlight > .o_grid_item_image::after{animation: none;}\n/* /website/static/src/snippets/s_media_list/001.scss */\n .s_media_list[data-vcss="001"] .s_media_list_item > .row{overflow: hidden;}.s_media_list[data-vcss="001"] .s_media_list_body{padding: 2rem;}.s_media_list[data-vcss="001"] .s_media_list_img{object-fit: cover;}\n/* /website/static/src/snippets/s_showcase/002.scss */\n .s_showcase[data-vcss='002'] .s_showcase_icon{align-self: flex-start;}\n/* /website/static/src/snippets/s_timeline/000.scss */\n .s_timeline .s_timeline_line{position: relative; border-color: #343A40;}.s_timeline .s_timeline_line:before{content: ''; display: block !important; position: absolute; width: 1px; top: 0px; bottom: 0px; left: 50%; border-left: 1px solid; border-color: inherit;}.s_timeline .s_timeline_row{align-items: center;}.s_timeline .s_timeline_row .s_timeline_content{align-items: center; -webkit-box-pack: end; justify-content: flex-end; width: 100%;}.s_timeline .s_timeline_row .s_timeline_content ~ .s_timeline_content{-webkit-box-pack: start; justify-content: flex-start;}.s_timeline .s_timeline_row.flex-row-reverse .s_timeline_content{flex-direction: row-reverse;}@media (min-width: 768px){.s_timeline .s_timeline_row.flex-row-reverse .s_timeline_content{flex-direction: row-reverse;}.s_timeline .s_timeline_row.flex-row-reverse .s_timeline_content:not(:last-child){margin-left: 10%;}.s_timeline .s_timeline_row:not(.flex-row-reverse) .s_timeline_content:last-child{margin-left: 10%;}}.s_timeline .s_timeline_date{text-align: center;}@media (min-width: 768px){.s_timeline .s_timeline_date{position: absolute; left: 0%; right: 0%;}}@media (max-width: 767.98px){.s_timeline .s_timeline_date{position: relative; margin: 20px 0px;}}.s_timeline .s_timeline_date span:not(.fa){display: inline-block; padding: 5px;}.s_timeline .s_timeline_date .fa{margin: 0 15px;}.s_timeline .s_timeline_icon{-webkit-box-flex: 0; -webkit-flex: 0 0 auto; flex: 0 0 auto; margin: 15px; z-index: 1;}\n/* /website/static/src/snippets/s_process_steps/001.scss */\n .s_process_steps[data-vcss='001'] .s_process_step{position: relative;}.s_process_steps[data-vcss='001'] .s_process_step .s_process_step_icon{position: relative; margin: 30px 0;}.s_process_steps[data-vcss='001'] .s_process_step .s_process_step_icon .fa, .s_process_steps[data-vcss='001'] .s_process_step .s_process_step_icon img{display: block; height: 5rem; width: 5rem; line-height: 5rem; object-fit: contain;}.s_process_steps[data-vcss='001'] .s_process_step .s_process_step_content{padding: 0 15px; text-align: center;}.s_process_steps[data-vcss='001'] .s_process_step .s_process_step_connector{position: absolute; z-index: 1; height: 5rem; width: calc(100% - 5rem); left: calc(50% + 2.5rem); margin: 30px 0;}.s_process_steps[data-vcss='001'] .s_process_step .s_process_step_connector path{stroke: #6C757D; stroke-width: 2; fill: transparent;}.s_process_steps[data-vcss='001'] .s_process_step:last-child .s_process_step_connector{display: none;}.s_process_steps[data-vcss='001'].s_process_steps_connector_curved_arrow .s_process_step:nth-child(odd) .s_process_step_connector{transform: scale(1, -1);}.s_process_steps[data-vcss='001'] .s_process_steps_arrow_head path{fill: #6C757D; stroke: transparent;}@media (max-width: 991.98px){.s_process_steps[data-vcss='001'] .s_process_step_connector{display: none;}}\n/* /website/static/src/snippets/s_text_highlight/000.scss */\n .s_text_highlight{padding: 1.5rem; border-radius: 0.25rem;}.s_text_highlight :last-child{margin-bottom: 0;}\n/* /website/static/src/snippets/s_blockquote/000.scss */\n .s_blockquote{border: 0; padding: 0;}.s_blockquote .s_blockquote_icon{font-size: 1rem;}.s_blockquote .s_blockquote_author{opacity: .75;}.s_blockquote.s_blockquote_classic .s_blockquote_icon{float: left; border-top-right-radius: 0 !important; border-bottom-right-radius: 0 !important;}.s_blockquote.s_blockquote_classic .s_blockquote_icon.float-end{border-top-left-radius: 0 !important; border-bottom-left-radius: 0 !important;}.s_blockquote.s_blockquote_classic .s_blockquote_content{overflow: hidden; padding: 1.5rem;}.s_blockquote.s_blockquote_classic .s_blockquote_content .blockquote-footer::before{content: '';}.s_blockquote.s_blockquote_classic .s_blockquote_content .blockquote-footer .s_blockquote_avatar{max-height: 2.5rem;}.s_blockquote.s_blockquote_cover{text-align: center;}.s_blockquote.s_blockquote_cover .s_blockquote_icon{position: relative; z-index: 1; float: none; margin-bottom: -1.5rem;}.s_blockquote.s_blockquote_cover p:last-of-type{margin-bottom: 0.5rem;}.s_blockquote.s_blockquote_cover .s_blockquote_content, .s_blockquote.s_blockquote_cover .s_blockquote_filter{padding: 3rem 2rem 2rem;}.s_blockquote.s_blockquote_cover .s_blockquote_filter{margin: -3rem -2rem -2rem;}.s_blockquote.s_blockquote_cover .quote_char{margin: 2rem 0 1rem 0;}.s_blockquote.s_blockquote_cover .quote_char ~ .blockquote-footer{padding-bottom: 2rem;}.s_blockquote.s_blockquote_minimalist{border-left: 5px solid; border-color: #685563;}.s_blockquote.s_blockquote_minimalist .s_blockquote_content{padding: 1rem; border-top-right-radius: 0.25rem; border-bottom-right-radius: 0.25rem;}.s_blockquote.s_blockquote_minimalist .s_blockquote_content p:last-of-type{margin-bottom: 0;}\n/* /website/static/src/snippets/s_badge/000.scss */\n .s_badge{padding: 0.5rem; margin: 0.5rem 0.5rem 0.5rem 0; border-radius: 0.25rem; font-size: 0.75rem;}.s_badge .fa{margin: 0 0.3rem 0 0;}\n/* /website/static/src/snippets/s_color_blocks_2/000.scss */\n .s_color_blocks_2.o_half_screen_height > :first-child, .s_color_blocks_2.cover_mid > :first-child, .s_color_blocks_2.o_half_screen_height > :first-child > .row, .s_color_blocks_2.cover_mid > :first-child > .row, .s_color_blocks_2.o_full_screen_height > :first-child, .s_color_blocks_2.cover_full > :first-child, .s_color_blocks_2.o_full_screen_height > :first-child > .row, .s_color_blocks_2.cover_full > :first-child > .row{min-height: inherit;}.s_color_blocks_2 .row{display: -webkit-box; display: -webkit-flex; display: flex; -webkit-flex-flow: row wrap; flex-flow: row wrap;}.s_color_blocks_2 .row::before, .s_color_blocks_2 .row::after{width: 0;}.s_color_blocks_2 > .container > .row > [class*="col-lg-"], .s_color_blocks_2 > .container-fluid > .row > [class*="col-lg-"], .s_color_blocks_2 > .container-sm > .row > [class*="col-lg-"], .s_color_blocks_2 > .container-md > .row > [class*="col-lg-"], .s_color_blocks_2 > .container-lg > .row > [class*="col-lg-"], .s_color_blocks_2 > .container-xl > .row > [class*="col-lg-"], .s_color_blocks_2 > .container-xxl > .row > [class*="col-lg-"], .s_color_blocks_2 > .o_container_small > .row > [class*="col-lg-"]{padding: 8% 5%; padding-top: 8vw; padding-bottom: 8vw;}@media (max-width: 991.98px){.s_color_blocks_2 [class*="col-lg-"]{flex: 1 1 100%;}}.s_color_blocks_2 img{max-width: 100%; height: auto;}\n/* /website/static/src/snippets/s_product_list/000.scss */\n .s_product_list{padding-top: 20px;}.s_product_list > div > .row:not(.o_grid_mode) > div{height: 200px;}.s_product_list > div > .row > div{position: relative; margin-bottom: 20px; text-align: center;}.s_product_list > div > .row > div a{display: block;}.s_product_list > div > .row > div img{margin: auto; max-height: 130px;}.s_product_list > div > .row > div .s_product_list_item_link{position: absolute; top: auto; left: 10%; bottom: 0; right: 10%;}.s_product_list > div > .row > div .s_product_list_item_link > .btn{width: 100%; padding: 5px !important; font-size: 16px;}@media only screen and (max-width: 1280px){.s_product_list > div > .row > div .s_product_list_item_link > .btn{font-size: 12px;}}.s_product_list > div > .row > div .s_product_list_item_link > .btn .fa{font-size: 18px; padding-right: 5px;}@media only screen and (max-width: 1024px){.s_product_list > div > .row > div .s_product_list_item_link > .btn .fa{display: block; font-size: 25px;}}\n/* /website/static/src/snippets/s_mega_menu_thumbnails/000.scss */\n .s_mega_menu_thumbnails:not([data-vcss]) .s_mega_menu_thumbnails_footer:not(.o_cc):not(.navbar-light):not(.o_footer)::before{position: absolute; top: 0; left: 0; bottom: 0; right: 0; width: auto; height: auto;}@media (max-width: 767.98px){.s_mega_menu_thumbnails:not([data-vcss]) .row > div.col-6{flex-grow: 1; min-width: min-content;}}\n/* /website/static/src/snippets/s_mega_menu_little_icons/000.scss */\n .s_mega_menu_little_icons:not([data-vcss]) .nav-link:hover, .s_mega_menu_little_icons:not([data-vcss]) .nav-link:focus{background: rgba(0, 0, 0, 0.05);}\n/* /website/static/src/snippets/s_mega_menu_images_subtitles/000.scss */\n .s_mega_menu_images_subtitles:not([data-vcss]) .d-flex img{max-width: 64px; align-self: start;}.s_mega_menu_images_subtitles:not([data-vcss]) .nav-link:hover, .s_mega_menu_images_subtitles:not([data-vcss]) .nav-link:focus{background: rgba(0, 0, 0, 0.05);}@media (max-width: 991.98px){.s_mega_menu_images_subtitles:not([data-vcss]) .row > div.col-sm-6{min-width: min-content;}}@media (max-width: 767.98px){.s_mega_menu_images_subtitles:not([data-vcss]) .row > div.col-sm-6{min-width: fit-content;}}\n/* /website/static/src/snippets/s_mega_menu_menus_logos/000.scss */\n .s_mega_menu_menus_logos:not([data-vcss]) .s_mega_menu_menus_logos_wrapper{border-color: rgba(0, 0, 0, 0.05) !important;}\n/* /website/static/src/snippets/s_mega_menu_odoo_menu/000.scss */\n .s_mega_menu_odoo_menu:not([data-vcss]) .s_mega_menu_odoo_menu_footer{border-color: rgba(0, 0, 0, 0.05);}.s_mega_menu_odoo_menu:not([data-vcss]) .s_mega_menu_odoo_menu_footer .row > div:not(.o_cc):not(.navbar-light):not(.o_footer)::before{position: absolute; top: 0; left: 0; bottom: 0; right: 0; width: auto; height: auto;}\n/* /website/static/src/snippets/s_mega_menu_cards/000.scss */\n .s_mega_menu_cards:not([data-vcss]) .nav-link:hover, .s_mega_menu_cards:not([data-vcss]) .nav-link:focus{background: rgba(0, 0, 0, 0.05);}\n/* /website/static/src/snippets/s_google_map/000.scss */\n .s_google_map{position: relative; min-height: 100px;}.s_google_map .map_container{position: absolute; top: 0; left: 0; bottom: 0; right: 0;}.s_google_map .description{position: absolute; top: auto; left: 0; bottom: 0; right: 0; z-index: 99; padding: 0 1em; background: rgba(53, 151, 156, 0.8); color: #212529; transition: background-color 250ms ease;}.s_google_map .description font{float: left; margin-top: 20px; margin-bottom: 15px; font-weight: bold; text-transform: uppercase;}.s_google_map .description span{float: left; text-transform: none; font-weight: normal; margin-top: 20px; margin-left: 10px;}.s_google_map:hover .description{background: #35979c; background: rgba(53, 151, 156, 0.55); color: #212529;}\n/* /website/static/src/snippets/s_map/000.scss */\n .s_map{position: relative; min-height: 100px;}.s_map .map_container{position: absolute; top: 0; left: 0; bottom: 0; right: 0;}.s_map .description{position: absolute; top: auto; left: 0; bottom: 0; right: 0; z-index: 99; padding: 0 1em; background: rgba(53, 151, 156, 0.8); color: #212529; transition: background-color 250ms ease;}.s_map .description font{float: left; margin-top: 20px; margin-bottom: 15px; font-weight: bold; text-transform: uppercase;}.s_map .description span{float: left; text-transform: none; font-weight: normal; margin-top: 20px; margin-left: 10px;}.s_map:hover .description{background: #35979c; background: rgba(53, 151, 156, 0.55); color: #212529;}.s_map .s_map_color_filter{position: absolute; top: 0; left: 0; bottom: 0; right: 0; position: absolute !important; pointer-events: none;}.editor_enable .s_map iframe{pointer-events: none;}\n/* /website/static/src/snippets/s_dynamic_snippet/000.scss */\n .s_dynamic.o_dynamic_empty{display: none !important;}.s_dynamic [data-url]{cursor: pointer;}.s_dynamic .card-img-top{height: 12rem;}.s_dynamic img{object-fit: scale-down;}\n/* /website/static/src/snippets/s_dynamic_snippet_carousel/000.scss */\n .s_dynamic .carousel-control-prev, .s_dynamic .carousel-control-next{position: absolute; width: 4rem;}.s_dynamic .carousel-control-prev > span.fa, .s_dynamic .carousel-control-next > span.fa{color: #495057; background: radial-gradient(#FFF 50%, transparent 50%);}.s_dynamic .dynamic_snippet_template .card-footer a, .s_dynamic .dynamic_snippet_template .card-footer button, .s_dynamic .o_dynamic_snippet_btn_wrapper{z-index: 2;}.s_dynamic .dynamic_snippet_template .card-body .card-text{display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; text-overflow: ellipsis; overflow: hidden;}.s_dynamic .s_dynamic_snippet_arrow_bottom > .carousel-control-prev, .s_dynamic .s_dynamic_snippet_arrow_bottom .carousel-control-next{position: relative;}\n/* /website/static/src/snippets/s_embed_code/000.scss */\n .editor_enable .s_embed_code{min-height: 1.08333333rem;}.s_embed_code .s_embed_code_embedded .bg-light.o_default_snippet_text{background-color: lightcyan !important; color: black;}\n/* /website/static/src/snippets/s_website_form/001.scss */\n .editor_enable .s_website_form[data-vcss="001"] .s_website_form_field_hidden{display: block; opacity: 0.5;}.editor_enable .s_website_form[data-vcss="001"] .s_website_form_field_hidden_if{display: block !important; background-color: #D9D9D9;}.editor_enable .s_website_form[data-vcss="001"] .s_website_form_field select{pointer-events: none;}.editor_enable .s_website_form[data-vcss="001"] #editable_select.form-control{height: auto;}.editor_enable .s_website_form[data-vcss="001"] #editable_select.form-control .s_website_form_select_item.selected{font-weight: bold;}.editor_enable .s_website_form[data-vcss="001"] #editable_select.form-control .s_website_form_select_item:empty::before{content: attr(data-empty-value); pointer-events: none; font-style: italic; font-weight: normal; opacity: 0.6;}@media (max-width: 575.98px){.s_website_form[data-vcss="001"] .s_website_form_label{width: auto !important;}}.s_website_form[data-vcss="001"] .s_website_form_field_hidden{display: none;}.s_website_form[data-vcss="001"] span.s_website_form_mark{font-size: 0.85em; font-weight: 400;}.s_website_form[data-vcss="001"] .s_website_form_dnone{display: none;}.s_website_form[data-vcss="001"] .s_website_form_submit .s_website_form_label, .s_website_form[data-vcss="001"] .s_website_form_recaptcha .s_website_form_label{float: left; height: 1px;}.s_website_form[data-vcss="001"] .s_website_form_no_submit_label .s_website_form_label{display: none;}.s_website_form[data-vcss="001"] .form-control-file.is-invalid{padding-left: 3px; border-left: 3px solid #dc3545;}body:not(.editor_enable) .s_website_form[data-vcss="001"] .s_website_form_date:not(.s_website_form_datepicker_initialized) [value], body:not(.editor_enable) .s_website_form[data-vcss="001"] .s_website_form_datetime:not(.s_website_form_datepicker_initialized) [value]{color: transparent;}\n/* /website_payment/static/src/snippets/s_donation/000.scss */\n .s_donation:not([data-vcss]) input::-webkit-outer-spin-button, .s_donation:not([data-vcss]) input::-webkit-inner-spin-button{-webkit--webkit-appearance: none; -moz-appearance: none; appearance: none; margin: 0;}.s_donation:not([data-vcss]) input[type=number]{-moz--webkit-appearance: textfield; -moz-appearance: textfield; appearance: textfield;}.s_donation:not([data-vcss]) .s_donation_btn{transition: background 0.2s;}.s_donation:not([data-vcss]) .s_donation_btn:focus{box-shadow: none !important;}.s_donation:not([data-vcss]) #s_donation_amount_input{border: none; outline: none; max-width: 145px; background-color: transparent; font-size: inherit; color: inherit;}.s_donation:not([data-vcss]) #s_donation_amount_input::placeholder{opacity: 0.6; color: inherit;}.s_donation:not([data-vcss]) .s_donation_range_slider_wrap{width: 90%;}.s_donation:not([data-vcss]) .s_donation_range_slider_wrap #s_donation_range_slider{margin-bottom: 50px;}.s_donation:not([data-vcss]) .s_donation_range_slider_wrap .s_range_bubble{position: absolute; left: 0%; margin-top: 28px; padding: 0.5rem 1rem; color: #FFFFFF; background: #35979c; font-size: 1.15rem; border-radius: 0.3rem; transform: translateX(-50%);}.s_donation:not([data-vcss]) .s_donation_range_slider_wrap .s_range_bubble::after{content: ""; position: absolute; top: -5px; left: 50%; width: 0; border-style: solid; border-color: #35979c transparent; border-width: 0 5px 5px; margin-left: -5px;}\n/* /website/static/src/scss/user_custom_rules.scss */	t	2025-06-19 04:32:49.566394	2025-06-19 04:32:49.566394	\N	\N	1	\N	\N
456	0	1	2595554	1	4	web.assets_frontend_lazy.min.js	ir.ui.view	\N	binary	/web/assets/456-64a0a2e/1/web.assets_frontend_lazy.min.js	\N	9f/9f1499255d1f4ae3b33d4a700c4672096a7e031b	9f1499255d1f4ae3b33d4a700c4672096a7e031b	application/javascript	\N	application	t	2025-06-19 04:32:49.566394	2025-06-19 04:32:49.566394	\N	\N	1	\N	\N
\.


--
-- Data for Name: ir_config_parameter; Type: TABLE DATA; Schema: public; Owner: odoo
--

COPY public.ir_config_parameter (id, create_uid, write_uid, key, value, create_date, write_date) FROM stdin;
5	1	1	base.login_cooldown_after	10	2025-06-18 15:49:05.568244	2025-06-18 15:49:05.568244
6	1	1	base.login_cooldown_duration	60	2025-06-18 15:49:05.568244	2025-06-18 15:49:05.568244
7	1	1	mail.catchall.alias	catchall	2025-06-18 15:49:05.568244	2025-06-18 15:49:05.568244
8	1	1	mail.bounce.alias	bounce	2025-06-18 15:49:05.568244	2025-06-18 15:49:05.568244
9	1	1	mail.default.from	notifications	2025-06-18 15:49:05.568244	2025-06-18 15:49:05.568244
10	1	1	base.template_portal_user_id	5	2025-06-18 15:49:05.568244	2025-06-18 15:49:05.568244
1	1	1	database.secret	676f0b9f-5706-4842-9c34-a1e41a4e6cd4	2025-06-18 15:49:05.568244	2025-06-18 15:49:05.568244
2	1	1	database.uuid	cbc11e62-4c5b-11f0-8d02-1d2d01b11326	2025-06-18 15:49:05.568244	2025-06-18 15:49:05.568244
3	1	1	database.create_date	2025-06-18 15:49:20	2025-06-18 15:49:05.568244	2025-06-18 15:49:05.568244
4	1	2	web.base.url	http://odoo.rni.vn	2025-06-18 15:49:05.568244	2025-06-18 15:57:28.164799
11	1	1	base_setup.show_effect	True	2025-06-18 15:58:03.295028	2025-06-18 15:58:03.295028
12	1	1	auth_signup.invitation_scope	b2c	2025-06-18 15:58:13.069492	2025-06-18 15:58:13.069492
13	1	1	auth_signup.reset_password	True	2025-06-18 15:58:13.069492	2025-06-18 15:58:13.069492
14	1	1	digest.default_digest_emails	True	2025-06-18 15:58:26.267004	2025-06-18 15:58:26.267004
15	1	1	digest.default_digest_id	1	2025-06-18 15:58:26.267004	2025-06-18 15:58:26.267004
16	1	1	account_payment.enable_portal_payment	True	2025-06-18 15:58:44.502111	2025-06-18 15:58:44.502111
17	1	1	sale.default_confirmation_template	12	2025-06-18 15:58:45.008304	2025-06-18 15:58:45.008304
18	1	1	sale.default_invoice_email_template	8	2025-06-18 15:58:45.008304	2025-06-18 15:58:45.008304
19	1	1	hr.hr_presence_control_login	True	2025-06-18 15:58:54.527284	2025-06-18 15:58:54.527284
20	1	1	mass_mailing.mass_mailing_reports	True	2025-06-18 15:59:06.262166	2025-06-18 15:59:06.262166
21	1	1	crm.pls_fields	phone_state,email_state	2025-06-18 16:03:55.245097	2025-06-18 16:03:55.245097
22	1	1	crm.pls_start_date	2025-06-10	2025-06-18 16:03:55.245097	2025-06-18 16:03:55.245097
23	2	2	recaptcha_min_score	0.7	2025-06-19 03:09:39.354522	2025-06-19 03:09:39.354522
24	2	2	product.product_pricelist_setting	basic	2025-06-19 03:09:39.354522	2025-06-19 03:09:39.354522
25	2	2	product.weight_in_lbs	0	2025-06-19 03:09:39.354522	2025-06-19 03:09:39.354522
26	2	2	product.volume_in_cubic_feet	0	2025-06-19 03:09:39.354522	2025-06-19 03:09:39.354522
27	2	2	account.show_line_subtotals_tax_selection	tax_excluded	2025-06-19 03:09:39.354522	2025-06-19 03:09:39.354522
28	2	2	crm.iap.lead.enrich.setting	auto	2025-06-19 03:09:39.354522	2025-06-19 03:09:39.354522
29	1	1	hr_expense.use_mailgateway	True	2025-06-19 03:12:53.578007	2025-06-19 03:12:53.578007
\.


--
-- Data for Name: ir_cron; Type: TABLE DATA; Schema: public; Owner: odoo
--

COPY public.ir_cron (id, ir_actions_server_id, user_id, interval_number, numbercall, priority, create_uid, write_uid, interval_type, cron_name, active, doall, nextcall, lastcall, create_date, write_date) FROM stdin;
1	33	1	1	-1	5	1	1	days	{"en_US": "Base: Auto-vacuum internal data", "vi_VN": "Cơ sở: Tự dộng thực thi vacuum dữ liệu nội bộ"}	t	\N	2025-11-06 15:49:17	2025-11-05 15:50:04	2025-06-18 15:49:05.568244	2025-06-18 15:49:05.568244
2	124	1	1	-1	5	1	1	hours	{"en_US": "Mail: Email Queue Manager", "vi_VN": "Thư: Trình quản lý hàng đợi email"}	t	f	2025-11-05 16:58:10	2025-11-05 15:59:06	2025-06-18 15:58:05.745465	2025-06-18 15:58:05.745465
4	126	1	1	-1	5	1	1	days	{"en_US": "Notification: Delete Notifications older than 6 Month", "vi_VN": "Notification: Delete Notifications older than 6 Month"}	t	f	2025-11-06 15:58:10	2025-11-05 15:59:06	2025-06-18 15:58:05.745465	2025-06-18 15:58:05.745465
6	128	1	1	-1	5	1	1	hours	{"en_US": "Notification: Send scheduled message notifications", "vi_VN": "Thông báo: Gửi thông báo tin nhắn đã lên lịch"}	t	f	2025-11-05 16:58:10	2025-11-05 15:59:06	2025-06-18 15:58:05.745465	2025-06-18 15:58:05.745465
3	125	1	1	-1	1000	1	1	weeks	{"en_US": "Publisher: Update Notification", "vi_VN": "Nhà xuất bản: Cập nhật thông báo"}	t	f	2025-11-12 15:58:10	2025-11-05 15:59:06	2025-06-18 15:58:05.745465	2025-06-18 15:58:05.745465
11	202	1	1	-1	5	1	1	days	{"en_US": "Digest Emails", "vi_VN": "Email tập san"}	t	\N	2025-11-05 17:58:26	2025-11-04 17:58:34	2025-06-18 15:58:26.267004	2025-06-18 15:58:26.267004
5	127	1	5	-1	5	1	1	minutes	{"en_US": "Mail: Fetchmail Service", "vi_VN": "Thư: Làm mới hộp thư đến"}	f	f	2025-06-18 15:58:10	\N	2025-06-18 15:58:05.745465	2025-06-18 15:58:05.745465
15	292	1	1	-1	5	1	1	days	{"en_US": "automatic invoicing: send ready invoice", "vi_VN": "xuất hóa đơn tự động: gửi hóa đơn đã sẵn sàng"}	f	\N	2025-06-18 15:58:47	\N	2025-06-18 15:58:45.008304	2025-06-18 15:58:45.008304
24	424	1	1	-1	5	1	1	days	{"en_US": "Predictive Lead Scoring: Recompute Automated Probabilities", "vi_VN": "Tính điểm khách hàng tiềm năng dự đoán: Tính lại xác suất tự động"}	f	f	2025-06-18 16:03:57	\N	2025-06-18 16:03:55.245097	2025-06-18 16:03:55.245097
20	364	1	1	-1	5	1	1	days	{"en_US": "Mail Marketing: A/B Testing", "vi_VN": "Marketing qua email: Thử nghiệm A/B"}	f	t	2025-06-18 15:59:08	\N	2025-06-18 15:59:06.262166	2025-06-18 15:59:06.262166
14	283	1	1	-1	5	1	1	days	{"en_US": "EDI : Perform web services operations", "vi_VN": "EDI : Thực hiện các hoạt động dịch vụ web"}	f	\N	2025-06-18 15:58:41	\N	2025-06-18 15:58:40.534094	2025-06-18 15:58:40.534094
31	605	1	1	-1	5	1	1	days	{"en_US": "HR Contract: update state", "vi_VN": "Hợp đồng nhân sự: cập nhật trạng thái"}	t	\N	2025-11-06 03:12:53	2025-11-05 03:13:07	2025-06-19 03:12:50.286027	2025-06-19 03:12:50.286027
25	428	1	1	-1	5	1	2	\N	{"en_US": "CRM: Lead Assignment", "vi_VN": "CRM: Phân công lead"}	f	f	2025-06-18 16:03:57	\N	2025-06-18 16:03:55.245097	2025-06-19 03:09:39.354522
12	205	1	10	-1	5	1	1	minutes	{"en_US": "payment: post-process transactions", "vi_VN": "thanh toán: xử lý sau giao dịch"}	t	\N	2025-11-05 16:38:28	2025-11-05 16:29:09	2025-06-18 15:58:27.036322	2025-06-18 15:58:27.036322
16	325	1	1	-1	5	1	1	days	{"en_US": "Gamification: Goal Challenge Check", "vi_VN": "Gamification: Kiểm tra mục tiêu."}	t	f	2025-11-06 15:58:53	2025-11-05 15:59:06	2025-06-18 15:58:52.013416	2025-06-18 15:58:52.013416
9	188	1	1	-1	5	1	1	hours	{"en_US": "SMS: SMS Queue Manager", "vi_VN": "SMS: SMS Queue Manager"}	t	f	2025-11-05 16:58:24	2025-11-05 15:59:06	2025-06-18 15:58:22.507448	2025-06-18 15:58:22.507448
21	416	1	1	-1	5	1	1	days	{"en_US": "Project: Send rating", "vi_VN": "Dự án: Gửi đánh giá"}	t	\N	2025-11-06 15:59:14	2025-11-05 16:00:07	2025-06-18 15:59:10.560412	2025-06-18 15:59:10.560412
19	363	1	1	-1	5	1	1	days	{"en_US": "Mail Marketing: Process queue", "vi_VN": "Marketing qua email: Danh sách chờ"}	t	f	2025-11-06 15:59:08	2025-11-05 16:00:07	2025-06-18 15:59:06.262166	2025-06-18 15:59:06.262166
23	420	1	1	-1	5	1	1	days	{"en_US": "Calendar: Event Reminder", "vi_VN": "Lịch: Nhắc nhở sự kiện"}	t	f	2025-11-06 16:03:54	2025-11-05 16:04:07	2025-06-18 16:03:51.438749	2025-06-18 16:03:51.438749
26	459	1	1	-1	5	1	1	hours	{"en_US": "CRM: enrich leads (IAP)", "vi_VN": "CRM: tăng cường lead (IAP)"}	t	f	2025-11-05 17:04:00	2025-11-05 16:04:07	2025-06-18 16:03:59.805691	2025-06-18 16:03:59.805691
28	466	1	1	-1	5	1	1	days	{"en_US": "Website Visitor : clean inactive visitors", "vi_VN": "Khách truy cập trang web: xóa những khách truy cập không hoạt động"}	t	f	2025-11-06 16:05:01	2025-11-05 16:05:07	2025-06-18 16:04:55.307597	2025-06-18 16:04:55.307597
27	464	1	1	-1	5	1	1	weeks	{"en_US": "Disable unused snippets assets", "vi_VN": "Tắt các snippets assets không sử dụng"}	t	\N	2025-11-12 16:05:00	2025-11-05 16:05:07	2025-06-18 16:04:55.307597	2025-06-18 16:04:55.307597
10	198	1	1	-1	5	1	1	hours	{"en_US": "Snailmail: process letters queue", "vi_VN": "Snailmail: process letters queue"}	t	f	2025-11-05 16:58:25	2025-11-05 15:59:06	2025-06-18 15:58:25.039143	2025-06-18 15:58:25.039143
22	417	1	1	-1	5	1	1	days	{"en_US": "Project: Create Recurring Tasks", "vi_VN": "Dự án: Tạo nhiệm vụ định kỳ"}	t	\N	2025-11-06 03:00:14	2025-11-05 03:01:06	2025-06-18 15:59:10.560412	2025-06-18 15:59:10.560412
13	278	1	1	-1	5	1	1	days	{"en_US": "Account: Post draft entries with auto_post enabled and accounting date up to today", "vi_VN": "Tài khoản: Vào sổ các bút toán nháp có bật auto_post và ngày hạch toán đến hôm nay"}	t	f	2025-11-06 02:00:38	2025-11-05 02:01:02	2025-06-18 15:58:29.583463	2025-06-18 15:58:29.583463
18	348	1	1	-1	5	1	1	days	{"en_US": "HR Employee: check work permit validity", "vi_VN": "Quản lý nhân sự: kiểm tra tính hợp lệ của giấy phép lao động"}	t	\N	2025-11-06 15:58:59	2025-11-05 15:59:06	2025-06-18 15:58:54.527284	2025-06-18 15:58:54.527284
7	143	1	1	-1	5	1	1	days	{"en_US": "Users: Notify About Unregistered Users", "vi_VN": "Người dùng: Thông báo về Người dùng chưa Đăng ký"}	t	\N	2025-11-06 15:58:13	2025-11-05 15:59:06	2025-06-18 15:58:13.069492	2025-06-18 15:58:13.069492
29	506	1	1	-1	5	1	1	days	{"en_US": "Procurement: run scheduler", "vi_VN": "Cung ứng: chạy trình lập kế hoạch"}	t	f	2025-11-06 03:10:58	2025-11-05 03:11:06	2025-06-19 03:10:52.944233	2025-06-19 03:10:52.944233
30	588	1	1	-1	5	1	1	days	{"en_US": "Purchase reminder", "vi_VN": "Nhắc nhở mua hàng"}	t	t	2025-11-06 03:12:06	2025-11-05 03:12:07	2025-06-19 03:12:02.293263	2025-06-19 03:12:02.293263
8	184	1	60	-1	5	1	1	minutes	{"en_US": "Partner Autocomplete : Sync with remote DB", "vi_VN": "Partner Autocomplete : Sync with remote DB"}	t	f	2025-11-05 16:58:21	2025-11-05 15:59:06	2025-06-18 15:58:20.972822	2025-06-18 15:58:20.972822
17	326	1	1	-1	5	1	1	months	{"en_US": "Gamification: Karma tracking consolidation", "vi_VN": "Gamification: Karma tracking consolidation"}	t	\N	2025-12-01 04:00:00	2025-11-01 04:00:42	2025-06-18 15:58:52.013416	2025-06-18 15:58:52.013416
\.


--
-- Data for Name: ir_cron_trigger; Type: TABLE DATA; Schema: public; Owner: odoo
--

COPY public.ir_cron_trigger (id, cron_id, create_uid, write_uid, call_at, create_date, write_date) FROM stdin;
\.


--
-- Data for Name: ir_default; Type: TABLE DATA; Schema: public; Owner: odoo
--

COPY public.ir_default (id, field_id, user_id, company_id, create_uid, write_uid, condition, json_value, create_date, write_date) FROM stdin;
1	901	\N	\N	1	1	\N	"vi_VN"	2025-06-18 15:49:05.568244	2025-06-18 15:49:05.568244
\.


--
-- Data for Name: ir_demo; Type: TABLE DATA; Schema: public; Owner: odoo
--

COPY public.ir_demo (id, create_uid, write_uid, create_date, write_date) FROM stdin;
\.


--
-- Data for Name: ir_demo_failure; Type: TABLE DATA; Schema: public; Owner: odoo
--

COPY public.ir_demo_failure (id, module_id, wizard_id, create_uid, write_uid, error, create_date, write_date) FROM stdin;
\.


--
-- Data for Name: ir_demo_failure_wizard; Type: TABLE DATA; Schema: public; Owner: odoo
--

COPY public.ir_demo_failure_wizard (id, create_uid, write_uid, create_date, write_date) FROM stdin;
\.


--
-- Data for Name: ir_exports; Type: TABLE DATA; Schema: public; Owner: odoo
--

COPY public.ir_exports (id, create_uid, write_uid, name, resource, create_date, write_date) FROM stdin;
\.


--
-- Data for Name: ir_exports_line; Type: TABLE DATA; Schema: public; Owner: odoo
--

COPY public.ir_exports_line (id, export_id, create_uid, write_uid, name, create_date, write_date) FROM stdin;
\.


--
-- Data for Name: ir_filters; Type: TABLE DATA; Schema: public; Owner: odoo
--

COPY public.ir_filters (id, user_id, action_id, create_uid, write_uid, name, model_id, domain, context, sort, is_default, active, create_date, write_date) FROM stdin;
1	\N	\N	1	1	By Salespersons	account.invoice.report	[]	{'group_by': ['invoice_date:month', 'invoice_user_id']}	[]	\N	t	2025-06-18 15:58:29.583463	2025-06-18 15:58:29.583463
2	\N	\N	1	1	By Product	account.invoice.report	[]	{'group_by': ['invoice_date:month', 'product_id'], 'set_visible':True, 'residual_invisible':True}	[]	\N	t	2025-06-18 15:58:29.583463	2025-06-18 15:58:29.583463
3	\N	\N	1	1	By Product Category	account.invoice.report	[]	{'group_by': ['invoice_date:month', 'product_categ_id'], 'residual_invisible':True}	[]	\N	t	2025-06-18 15:58:29.583463	2025-06-18 15:58:29.583463
4	\N	\N	1	1	By Credit Note	account.invoice.report	[('move_type', '=', 'out_refund')]	{'group_by': ['invoice_date:month', 'invoice_user_id']}	[]	\N	t	2025-06-18 15:58:29.583463	2025-06-18 15:58:29.583463
5	\N	\N	1	1	By Country	account.invoice.report	[]	{'group_by': ['invoice_date:month', 'country_id']}	[]	\N	t	2025-06-18 15:58:29.583463	2025-06-18 15:58:29.583463
\.


--
-- Data for Name: ir_logging; Type: TABLE DATA; Schema: public; Owner: odoo
--

COPY public.ir_logging (id, create_uid, write_uid, name, type, dbname, level, path, func, line, message, create_date, write_date) FROM stdin;
\.


--
-- Data for Name: ir_mail_server; Type: TABLE DATA; Schema: public; Owner: odoo
--

COPY public.ir_mail_server (id, smtp_port, sequence, create_uid, write_uid, name, from_filter, smtp_host, smtp_authentication, smtp_user, smtp_pass, smtp_encryption, smtp_debug, active, create_date, write_date, smtp_ssl_certificate, smtp_ssl_private_key, google_gmail_access_token_expiration, google_gmail_authorization_code, google_gmail_refresh_token, google_gmail_access_token) FROM stdin;
\.


--
-- Data for Name: ir_model; Type: TABLE DATA; Schema: public; Owner: odoo
--

COPY public.ir_model (id, create_uid, write_uid, model, "order", state, name, info, transient, create_date, write_date, is_mail_thread, is_mail_activity, is_mail_blacklist, website_form_default_field_id, website_form_label, website_form_key, website_form_access) FROM stdin;
647	\N	\N	barcodes.barcode_events_mixin	id	base	{"en_US": "Barcode Event Mixin", "vi_VN": "Mixin Sự kiện Mã vạch"}	 Mixin class for objects reacting when a barcode is scanned in their form views\n        which contains `<field name="_barcode_scanned" widget="barcode_handler"/>`.\n        Models using this mixin must implement the method on_barcode_scanned. It works\n        like an onchange and receives the scanned barcode in parameter.\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
649	\N	\N	barcode.rule	sequence asc, id	base	{"en_US": "Barcode Rule", "vi_VN": "Quy tắc Mã vạch"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
146	\N	\N	uom.uom	factor DESC, id	base	{"en_US": "Product Unit of Measure", "vi_VN": "Đơn vị tính của sản phẩm"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
648	\N	\N	barcode.nomenclature	id	base	{"en_US": "Barcode Nomenclature", "vi_VN": "Danh pháp Mã vạch"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
653	\N	\N	stock.location	complete_name, id	base	{"en_US": "Inventory Locations", "vi_VN": "Vị trí hàng tồn kho"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
62	\N	\N	ir.http	id	base	{"en_US": "HTTP Routing", "vi_VN": "Định tuyến HTTP"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
650	\N	\N	product.removal	id	base	{"en_US": "Removal Strategy", "vi_VN": "Chiến lược loại bỏ"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
651	\N	\N	stock.putaway.rule	sequence,product_id	base	{"en_US": "Putaway Rule", "vi_VN": "Quy tắc lưu kho"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
657	\N	\N	stock.rule	sequence, id	base	{"en_US": "Stock Rule", "vi_VN": "Quy tắc tồn kho"}	 A rule describe what a procurement should do; produce, buy, move, ... 	f	\N	\N	f	f	f	\N	\N	\N	\N
145	\N	\N	uom.category	id	base	{"en_US": "Product UoM Categories", "vi_VN": "Nhóm Đơn vị Đo lường Sản phẩm"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
7	\N	\N	ir.model.relation	id	base	{"en_US": "Relation Model", "vi_VN": "Đối tượng liên quan"}	\n    This model tracks PostgreSQL tables used to implement Odoo many2many\n    relations.\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
38	\N	\N	ir.autovacuum	id	base	{"en_US": "Automatic Vacuum", "vi_VN": "Automatic Vacuum"}	 Helper model to the ``@api.autovacuum`` method decorator. 	f	\N	\N	f	f	f	\N	\N	\N	\N
149	\N	\N	resource.calendar.attendance	week_type, dayofweek, hour_from	base	{"en_US": "Work Detail", "vi_VN": "Chi tiết Công việc"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
659	\N	\N	stock.warehouse.orderpoint	location_id,company_id,id	base	{"en_US": "Minimum Inventory Rule", "vi_VN": "Quy tắc hàng tồn kho tối thiểu"}	 Defines Minimum stock rules. 	f	\N	\N	f	f	f	\N	\N	\N	\N
154	\N	\N	utm.mixin	id	base	{"en_US": "UTM Mixin", "vi_VN": "UTM Mixin"}	 Mixin class for objects which can be tracked by marketing. 	f	\N	\N	f	f	f	\N	\N	\N	\N
581	\N	\N	calendar.attendee	create_date ASC	base	{"en_US": "Calendar Attendee Information", "vi_VN": "Thông tin người tham dự"}	 Calendar Attendee Information 	f	\N	\N	f	f	f	\N	\N	\N	\N
582	\N	\N	calendar.recurrence	id	base	{"en_US": "Event Recurrence Rule", "vi_VN": "Quy tắc lặp lại sự kiện"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
583	\N	\N	calendar.event	start desc	base	{"en_US": "Calendar Event", "vi_VN": "Lịch sự kiện"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	t	f	f	\N	\N	\N	\N
584	\N	\N	calendar.alarm	id	base	{"en_US": "Event Alarm", "vi_VN": "Cảnh báo sự kiện"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
217	\N	\N	mail.resend.partner	id	base	{"en_US": "Partner with additional information for mail resend", "vi_VN": "Partner with additional information for mail resend"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
218	\N	\N	mail.template.preview	id	base	{"en_US": "Email Template Preview", "vi_VN": "Xem trước Mẫu Email"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
219	\N	\N	mail.template.reset	id	base	{"en_US": "Mail Template Reset", "vi_VN": "Đặt lại mẫu email"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
220	\N	\N	mail.wizard.invite	id	base	{"en_US": "Invite wizard", "vi_VN": "Đồ thuật Mời"}	 Wizard to invite partners (or channels) and make them followers. 	t	\N	\N	f	f	f	\N	\N	\N	\N
118	\N	\N	auth_totp.device	id	base	{"en_US": "Authentication Device", "vi_VN": "Thiết bị Xác thực"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
119	\N	\N	auth_totp.wizard	id	base	{"en_US": "2-Factor Setup Wizard", "vi_VN": "Công cụ Cài đặt 2 Yếu tố"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
458	\N	\N	account.tax.template	id	base	{"en_US": "Templates for Taxes", "vi_VN": "Mẫu cho thuế"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
505	\N	\N	sale.report	date desc	base	{"en_US": "Sales Analysis Report", "vi_VN": "Báo cáo phân tích bán hàng"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
437	\N	\N	account.journal	sequence, type, code	base	{"en_US": "Journal", "vi_VN": "Sổ nhật ký"}	Populate factory part for account.journal.	f	\N	\N	t	t	f	\N	\N	\N	\N
595	\N	\N	crm.recurring.plan	sequence	base	{"en_US": "CRM Recurring revenue plans", "vi_VN": "Kế hoạch doanh thu định kỳ CRM"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
596	\N	\N	crm.activity.report	id	base	{"en_US": "CRM Activity Analysis", "vi_VN": "Phân tích hoạt động CRM"}	 CRM Lead Analysis 	f	\N	\N	f	f	f	\N	\N	\N	\N
598	\N	\N	crm.lead2opportunity.partner	id	base	{"en_US": "Convert Lead to Opportunity (not in mass)", "vi_VN": "Chuyển đổi lead thành cơ hội (không phải hàng loạt) "}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
599	\N	\N	crm.lead2opportunity.partner.mass	id	base	{"en_US": "Convert Lead to Opportunity (in mass)", "vi_VN": "Chuyển đổi lead thành cơ hội (hàng loạt) "}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
501	\N	\N	account.edi.xml.ubl_a_nz	id	base	{"en_US": "A-NZ BIS Billing 3.0", "vi_VN": "A-NZ BIS Billing 3.0"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
502	\N	\N	account.edi.xml.ubl_sg	id	base	{"en_US": "SG BIS Billing 3.0", "vi_VN": "SG BIS Billing 3.0"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
175	\N	\N	mail.blacklist	id	base	{"en_US": "Mail Blacklist", "vi_VN": "Email Blacklist"}	 Model of blacklisted email addresses to stop sending emails.	f	\N	\N	t	f	f	\N	\N	\N	\N
589	\N	\N	crm.stage	sequence, name, id	base	{"en_US": "CRM Stages", "vi_VN": "Trạng thái CRM"}	 Model for case stages. This models the main stages of a document\n        management flow. Main CRM objects (leads, opportunities, project\n        issues, ...) will now use only stages, instead of state and stages.\n        Stages are for example used to display the kanban view of records.\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
590	\N	1	crm.lead	priority desc, id desc	base	{"en_US": "Lead/Opportunity", "vi_VN": "Lead/Cơ hội"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	2025-06-18 16:05:07.264763	t	t	t	8360	Create an Opportunity	create_lead	t
506	\N	\N	sale.payment.provider.onboarding.wizard	id	base	{"en_US": "Sale Payment provider onboarding wizard", "vi_VN": "Công cụ hướng dẫn về nhà cung cấp dịch vụ thanh toán bán hàng"}	 Override for the sale quotation onboarding panel. 	t	\N	\N	f	f	f	\N	\N	\N	\N
666	\N	\N	stock.scrap	id desc	base	{"en_US": "Scrap", "vi_VN": "Loại bỏ"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	t	f	f	\N	\N	\N	\N
5	\N	\N	ir.model.fields.selection	sequence, id	base	{"en_US": "Fields Selection", "vi_VN": "Lựa chọn Trường"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
193	\N	\N	res.users.settings.volumes	id	base	{"en_US": "User Settings Volumes", "vi_VN": "Cài đặt người dùng Dung lượng"}	 Represents the volume of the sound that the user of user_setting_id will receive from partner_id. 	f	\N	\N	f	f	f	\N	\N	\N	\N
392	\N	\N	product.label.layout	id	base	{"en_US": "Choose the sheet layout to print the labels", "vi_VN": "Chọn bố cục trang tính để in nhãn"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
661	\N	\N	stock.picking.type	sequence, id	base	{"en_US": "Picking Type", "vi_VN": "Kiểu lấy hàng"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
654	\N	\N	stock.route	sequence	base	{"en_US": "Inventory Routes", "vi_VN": "Tuyến cung ứng hàng tồn kho"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
14	\N	\N	ir.ui.view.custom	create_date desc	base	{"en_US": "Custom View", "vi_VN": "Chế độ xem Tuỳ chỉnh"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
24	\N	\N	ir.server.object.lines	id	base	{"en_US": "Server Action value mapping", "vi_VN": "Giá trị tương ứng hoạt động máy chủ"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
32	\N	\N	ir.filters	model_id, name, id desc	base	{"en_US": "Filters", "vi_VN": "Bộ lọc"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
384	\N	\N	product.packaging	product_id, sequence, id	base	{"en_US": "Product Packaging", "vi_VN": "Bao bì sản phẩm"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
660	\N	\N	stock.lot	name, id	base	{"en_US": "Lot/Serial", "vi_VN": "Lô/sê-ri"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	t	t	f	\N	\N	\N	\N
658	\N	\N	procurement.group	id desc	base	{"en_US": "Procurement Group", "vi_VN": "Nhóm cung ứng"}	\n    The procurement group class is used to group products together\n    when computing procurements. (tasks, physical products, ...)\n\n    The goal is that when you have one sales order of several products\n    and the products are pulled from the same or several location(s), to keep\n    having the moves grouped into pickings that represent the sales order.\n\n    Used in: sales order (to group delivery order lines like the so), pull/push\n    rules (to pack like the delivery order), on orderpoints (e.g. for wave picking\n    all the similar products together).\n\n    Grouping is made only if the source and the destination is the same.\n    Suppose you have 4 lines on a picking from Output where 2 lines will need\n    to come from Input (crossdock) and 2 lines coming from Stock -> Output As\n    the four will have the same group ids from the SO, the move from input will\n    have a stock.picking with 2 grouped lines and the move from stock will have\n    2 grouped lines also.\n\n    The name is usually the name of the original document (sales order) or a\n    sequence computed if created manually.\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
664	\N	\N	stock.quant.package	name	base	{"en_US": "Packages", "vi_VN": "Kiện hàng"}	 Packages containing quants and/or other packages 	f	\N	\N	f	f	f	\N	\N	\N	\N
667	\N	\N	stock.package_level	id	base	{"en_US": "Stock Package Level", "vi_VN": "Mức độ đóng gói tồn kho"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
668	\N	\N	stock.package.type	id	base	{"en_US": "Stock package type", "vi_VN": "Loại kiện hàng tồn kho"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
669	\N	\N	stock.storage.category	name	base	{"en_US": "Storage Category", "vi_VN": "Danh mục lưu kho"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
670	\N	\N	stock.storage.category.capacity	storage_category_id	base	{"en_US": "Storage Category Capacity", "vi_VN": "Sức chứa danh mục lưu kho"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
672	\N	\N	report.stock.report_product_template_replenishment	id	base	{"en_US": "Stock Replenishment Report", "vi_VN": "Báo cáo bổ sung tồn kho"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
673	\N	\N	report.stock.quantity	id	base	{"en_US": "Stock Quantity Report", "vi_VN": "Báo cáo số lượng tồn kho"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
674	\N	\N	report.stock.report_reception	id	base	{"en_US": "Stock Reception Report", "vi_VN": "Báo cáo nhập kho"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
676	\N	\N	stock.traceability.report	id	base	{"en_US": "Traceability Report", "vi_VN": "Báo cáo truy xuất nguồn gốc"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
677	\N	\N	report.stock.label_product_product_view	id	base	{"en_US": "Product Label Report", "vi_VN": "Báo cáo nhãn sản phẩm"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
678	\N	\N	report.stock.label_lot_template_view	id	base	{"en_US": "Lot Label Report", "vi_VN": "Báo cáo nhãn lô"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
679	\N	\N	stock.assign.serial	id	base	{"en_US": "Stock Assign Serial Numbers", "vi_VN": "Số serial được dùng cho tồn kho"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
675	\N	\N	report.stock.report_stock_rule	id	base	{"en_US": "Stock rule report", "vi_VN": "Báo cáo quy tắc tồn kho"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
54	\N	\N	ir.qweb.field.monetary	id	base	{"en_US": "Qweb Field Monetary", "vi_VN": "Qweb trường Monetary"}	 ``monetary`` converter, has a mandatory option\n    ``display_currency`` only if field is not of type Monetary.\n    Otherwise, if we are in presence of a monetary field, the field definition must\n    have a currency_field attribute set.\n\n    The currency is used for formatting *and rounding* of the float value. It\n    is assumed that the linked res_currency has a non-empty rounding value and\n    res.currency's ``round`` method is used to perform rounding.\n\n    .. note:: the monetary converter internally adds the qweb context to its\n              options mapping, so that the context is available to callees.\n              It's set under the ``_values`` key.\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
63	\N	\N	ir.logging	id DESC	base	{"en_US": "Logging", "vi_VN": "Ghi nhận"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
665	\N	\N	stock.warehouse	sequence,id	base	{"en_US": "Warehouse", "vi_VN": "Kho hàng"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
682	\N	\N	stock.change.product.qty	id	base	{"en_US": "Change Product Quantity", "vi_VN": "Thay đổi số lượng sản phẩm"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
683	\N	\N	stock.inventory.conflict	id	base	{"en_US": "Conflict in Inventory", "vi_VN": "Không nhất quán trong Tồn kho"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
684	\N	\N	stock.inventory.warning	id	base	{"en_US": "Inventory Adjustment Warning", "vi_VN": "Cảnh báo điều chỉnh tồn kho"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
685	\N	\N	stock.inventory.adjustment.name	id	base	{"en_US": "Inventory Adjustment Reference / Reason", "vi_VN": "Tham chiếu/Lý do điều chỉnh tồn kho"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
686	\N	\N	picking.label.type	id	base	{"en_US": "Choose whether to print product or lot/sn labels", "vi_VN": "Chọn in nhãn sản phẩm hay số lô/sê-ri"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
687	\N	\N	lot.label.layout	id	base	{"en_US": "Choose the sheet layout to print lot labels", "vi_VN": "Chọn bố cục trang tính để in nhãn lô"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
688	\N	\N	stock.scheduler.compute	id	base	{"en_US": "Run Scheduler Manually", "vi_VN": "Chạy trình lập kế hoạch thủ công"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
689	\N	\N	stock.immediate.transfer.line	id	base	{"en_US": "Immediate Transfer Line", "vi_VN": "Dòng lệnh chuyển hàng ngay"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
690	\N	\N	stock.immediate.transfer	id	base	{"en_US": "Immediate Transfer", "vi_VN": "Lệnh chuyển hàng ngay"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
691	\N	\N	stock.backorder.confirmation.line	id	base	{"en_US": "Backorder Confirmation Line", "vi_VN": "Dòng xác nhận đơn hàng chậm trễ"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
692	\N	\N	stock.backorder.confirmation	id	base	{"en_US": "Backorder Confirmation", "vi_VN": "Xác nhận đơn hàng chậm trễ"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
25	\N	\N	ir.actions.todo	sequence, id	base	{"en_US": "Configuration Wizards", "vi_VN": "Trình Cấu hình"}	\n    Configuration Wizards\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
81	\N	\N	res.lang	active desc,name	base	{"en_US": "Languages", "vi_VN": "Ngôn ngữ"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
87	\N	\N	res.bank	name	base	{"en_US": "Bank", "vi_VN": "Ngân hàng"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
100	\N	\N	change.password.user	id	base	{"en_US": "User, Change Password Wizard", "vi_VN": "Thay đổi mật khẩu người dùng"}	 A model to configure users in the change password wizard. 	t	\N	\N	f	f	f	\N	\N	\N	\N
695	\N	\N	stock.warn.insufficient.qty	id	base	{"en_US": "Warn Insufficient Quantity", "vi_VN": "Cảnh báo số lượng không đủ"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
696	\N	\N	stock.warn.insufficient.qty.scrap	id	base	{"en_US": "Warn Insufficient Scrap Quantity", "vi_VN": "Cảnh báo số lượng phế phẩm không đủ"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
697	\N	\N	product.replenish	id	base	{"en_US": "Product Replenish", "vi_VN": "Bổ sung sản phẩm"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
698	\N	\N	stock.track.confirmation	id	base	{"en_US": "Stock Track Confirmation", "vi_VN": "Xác nhận theo dõi tồn kho"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
699	\N	\N	stock.track.line	id	base	{"en_US": "Stock Track Line", "vi_VN": "Dòng theo dõi tồn kho"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
700	\N	\N	stock.package.destination	id	base	{"en_US": "Stock Package Destination", "vi_VN": "Điểm đến của kiện hàng"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
701	\N	\N	stock.orderpoint.snooze	id	base	{"en_US": "Snooze Orderpoint", "vi_VN": "Tạm dừng điểm đặt hàng"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
704	\N	\N	stock.replenishment.option	id	base	{"en_US": "Stock warehouse replenishment option", "vi_VN": "Tuỳ chọn bổ sung kho hàng"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
702	\N	\N	stock.request.count	id	base	{"en_US": "Stock Request an Inventory Count", "vi_VN": "Tồn kho cần kiểm kho"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
694	\N	\N	stock.rules.report	id	base	{"en_US": "Stock Rules report", "vi_VN": "Báo cáo quy tắc tồn kho"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
703	\N	\N	stock.replenishment.info	id	base	{"en_US": "Stock supplier replenishment information", "vi_VN": "Thông tin bổ sung nhà cung cấp tồn kho"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
107	\N	\N	report.base.report_irmodulereference	id	base	{"en_US": "Module Reference Report (base)", "vi_VN": "Báo cáo tham chiếu mô-đun (cơ sở)"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
705	\N	\N	stock.valuation.layer	create_date, id	base	{"en_US": "Stock Valuation Layer", "vi_VN": "Lớp giá trị tồn kho"}	Stock Valuation Layer	f	\N	\N	f	f	f	\N	\N	\N	\N
706	\N	\N	stock.valuation.layer.revaluation	id	base	{"en_US": "Wizard model to reavaluate a stock inventory for a product", "vi_VN": "Model công cụ để tái định giá tồn kho cho một sản phẩm"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
143	\N	\N	web_editor.converter.test	id	base	{"en_US": "Web Editor Converter Test", "vi_VN": "Web Editor Converter Test"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
6	\N	\N	ir.model.constraint	id	base	{"en_US": "Model Constraint", "vi_VN": "Ràng buộc đối tượng"}	\n    This model tracks PostgreSQL foreign keys and constraints used by Odoo\n    models.\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
156	\N	\N	utm.source.mixin	id	base	{"en_US": "UTM Source Mixin", "vi_VN": "Mixin nguồn UTM"}	Mixin responsible of generating the name of the source based on the content\n    (field defined by _rec_name) of the record (mailing, social post,...).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
157	\N	\N	utm.stage	sequence	base	{"en_US": "Campaign Stage", "vi_VN": "Campaign Stage"}	Stage for utm campaigns.	f	\N	\N	f	f	f	\N	\N	\N	\N
158	\N	\N	utm.tag	name	base	{"en_US": "UTM Tag", "vi_VN": "UTM Tag"}	Model of categories of utm campaigns, i.e. marketing, newsletter, ...	f	\N	\N	f	f	f	\N	\N	\N	\N
159	\N	\N	iap.account	id	base	{"en_US": "IAP Account", "vi_VN": "Tài khoản IAP"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
160	\N	\N	iap.enrich.api	id	base	{"en_US": "IAP Lead Enrichment API", "vi_VN": "IAP Lead Enrichment API"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
167	\N	\N	mail.thread	id	base	{"en_US": "Email Thread", "vi_VN": "Luồng Email"}	 Update MailThread to add the support of bounce management in mass mailing traces. 	f	\N	\N	t	f	f	\N	\N	\N	\N
182	\N	\N	mail.message	id desc	base	{"en_US": "Message", "vi_VN": "Thông báo"}	 Override MailMessage class in order to add a new type: SMS messages.\n    Those messages comes with their own notification method, using SMS\n    gateway. 	f	\N	\N	f	f	f	\N	\N	\N	\N
132	\N	\N	base_import.tests.models.o2m	id	base	{"en_US": "Tests : Base Import Model, One to Many", "vi_VN": "Tests : Base Import Model, One to Many"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
407	\N	\N	sms.api	id	base	{"en_US": "SMS API", "vi_VN": "SMS API"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
37	\N	\N	ir.config_parameter	key	base	{"en_US": "System Parameter", "vi_VN": "System Parameter"}	Per-database storage of configuration key-value pairs.	f	\N	\N	f	f	f	\N	\N	\N	\N
656	\N	\N	stock.move.line	result_package_id desc, id	base	{"en_US": "Product Moves (Stock Move Line)", "vi_VN": "Dịch chuyển sản phẩm (Dòng dịch chuyển tồn kho)"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
663	\N	\N	stock.quant	id	base	{"en_US": "Quants", "vi_VN": "Quant"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
680	\N	\N	stock.return.picking.line	id	base	{"en_US": "Return Picking Line", "vi_VN": "Dòng phiếu trả hàng"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
693	\N	\N	stock.quantity.history	id	base	{"en_US": "Stock Quantity History", "vi_VN": "Lịch sử số lượng tồn kho"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
112	\N	\N	base.module.uninstall	id	base	{"en_US": "Module Uninstall", "vi_VN": "Gỡ cài đặt Mô-đun"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
138	\N	\N	bus.presence	id	base	{"en_US": "User Presence", "vi_VN": "Người dùng hiện diện"}	 User Presence\n        Its status is 'online', 'away' or 'offline'. This model should be a one2one, but is not\n        attached to res_users to avoid database concurrence errors. Since the 'update' method is executed\n        at each poll, if the user have multiple opened tabs, concurrence errors can happend, but are 'muted-logged'.\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
139	\N	\N	ir.websocket	id	base	{"en_US": "websocket message handling", "vi_VN": "xử lý thông báo websocket"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
161	\N	\N	mail.alias	alias_model_id, alias_name	base	{"en_US": "Email Aliases", "vi_VN": "Bí danh Email"}	A Mail Alias is a mapping of an email address with a given Odoo Document\n       model. It is used by Odoo's mail gateway when processing incoming emails\n       sent to the system. If the recipient address (To) of the message matches\n       a Mail Alias, the message will be either processed following the rules\n       of that alias. If the message is a reply it will be attached to the\n       existing discussion on the corresponding record, otherwise a new\n       record of the corresponding model will be created.\n\n       This is meant to be used in combination with a catch-all email configuration\n       on the company's mail server, so that as soon as a new mail.alias is\n       created, it becomes immediately usable and Odoo will accept email for it.\n     	f	\N	\N	f	f	f	\N	\N	\N	\N
383	\N	\N	product.category	complete_name	base	{"en_US": "Product Category", "vi_VN": "Danh mục sản phẩm"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
681	\N	\N	stock.return.picking	id	base	{"en_US": "Return Picking", "vi_VN": "Phiếu trả hàng"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
164	\N	\N	mail.alias.mixin	id	base	{"en_US": "Email Aliases Mixin", "vi_VN": "Email Aliases Mixin"}	 A mixin for models that inherits mail.alias. This mixin initializes the\n        alias_id column in database, and manages the expected one-to-one\n        relation between your model and mail aliases.\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
376	\N	\N	product.product	priority desc, default_code, name, id	base	{"en_US": "Product Variant", "vi_VN": "Biến thể sản phẩm"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	t	t	f	\N	\N	\N	\N
165	\N	\N	mail.render.mixin	id	base	{"en_US": "Mail Render Mixin", "vi_VN": "Mail Render Mixin"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
707	\N	\N	confirm.stock.sms	id	base	{"en_US": "Confirm Stock SMS", "vi_VN": "SMS xác nhận tồn kho"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
446	\N	\N	account.move	date desc, name desc, id desc	base	{"en_US": "Journal Entry", "vi_VN": "Bút toán sổ nhật ký"}	Populate factory part for account.move.\n\n    Because of the complicated nature of the interraction of account.move and account.move.line,\n    both models are actualy generated in the same factory.\n    	f	\N	\N	t	t	f	\N	\N	\N	\N
375	\N	\N	product.template	priority desc, name	base	{"en_US": "Product", "vi_VN": "Sản phẩm"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	t	t	f	\N	\N	\N	\N
509	\N	\N	sale.order.cancel	id	base	{"en_US": "Sales Order Cancel", "vi_VN": "Hủy đơn bán hàng"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
16	\N	\N	reset.view.arch.wizard	id	base	{"en_US": "Reset View Architecture Wizard", "vi_VN": "Trình hỗ trợ Đặt lại Kiến trúc Chế độ xem"}	 A wizard to compare and reset views architecture. 	t	\N	\N	f	f	f	\N	\N	\N	\N
504	\N	\N	sale.order.line	order_id, sequence, id	base	{"en_US": "Sales Order Line", "vi_VN": "Dòng đơn bán hàng"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
166	\N	\N	mail.composer.mixin	id	base	{"en_US": "Mail Composer Mixin", "vi_VN": "Mixin composer email"}	 Mixin used to edit and render some fields used when sending emails or\n    notifications based on a mail template.\n\n    Main current purpose is to hide details related to subject and body computation\n    and rendering based on a mail.template. It also give the base tools to control\n    who is allowed to edit body, notably when dealing with templating language\n    like inline_template or qweb.\n\n    It is meant to evolve in a near future with upcoming support of qweb and fine\n    grain control of rendering access.\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
655	\N	\N	stock.move	sequence, id	base	{"en_US": "Stock Move", "vi_VN": "Dịch chuyển tồn kho"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
671	\N	\N	report.stock.report_product_product_replenishment	id	base	{"en_US": "Stock Replenishment Report", "vi_VN": "Báo cáo bổ sung tồn kho"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
662	\N	\N	stock.picking	priority desc, scheduled_date asc, id desc	base	{"en_US": "Transfer", "vi_VN": "Lệnh chuyển hàng hàng"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	t	t	f	\N	\N	\N	\N
169	\N	\N	mail.thread.cc	id	base	{"en_US": "Email CC management", "vi_VN": "Quản lý Email CC"}	 Update MailThread to add the support of bounce management in mass mailing traces. 	f	\N	\N	t	f	f	\N	\N	\N	\N
171	\N	\N	fetchmail.server	priority	base	{"en_US": "Incoming Mail Server", "vi_VN": "Máy chủ thư đến"}	Incoming POP/IMAP mail server account	f	\N	\N	f	f	f	\N	\N	\N	\N
713	\N	\N	vendor.delay.report	id	base	{"en_US": "Vendor Delay Report", "vi_VN": "Báo cáo mức độ chậm trễ của nhà cung cấp"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
712	\N	\N	purchase.bill.union	date desc, name desc	base	{"en_US": "Purchases & Bills Union", "vi_VN": "Mua hàng & hóa đơn"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
709	\N	\N	purchase.order	priority desc, id desc	base	{"en_US": "Purchase Order", "vi_VN": "Đơn mua hàng"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	t	t	f	\N	\N	\N	\N
18	\N	\N	ir.actions.actions	name	base	{"en_US": "Actions", "vi_VN": "Các hành động"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
19	\N	\N	ir.actions.act_window	name	base	{"en_US": "Action Window", "vi_VN": "Cửa sổ Hành động"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
65	\N	\N	ir.module.category	name	base	{"en_US": "Application", "vi_VN": "Application"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
21	\N	\N	ir.actions.act_window_close	name	base	{"en_US": "Action Window Close", "vi_VN": "Đóng Cửa sổ Hành động"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
22	\N	\N	ir.actions.act_url	name	base	{"en_US": "Action URL", "vi_VN": "URL Hành động"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
82	\N	\N	format.address.mixin	id	base	{"en_US": "Address Format", "vi_VN": "Định dạng Địa chỉ"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
95	\N	\N	res.groups	name	base	{"en_US": "Access Groups", "vi_VN": "Nhóm Truy cập"}	 Update of res.groups class\n        - if adding users from a group, check mail.channels linked to this user\n          group and subscribe them. This is done by overriding the write method.\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
711	\N	\N	purchase.report	date_order desc, price_total desc	base	{"en_US": "Purchase Report", "vi_VN": "Báo cáo mua hàng"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
710	\N	\N	purchase.order.line	order_id, sequence, id	base	{"en_US": "Purchase Order Line", "vi_VN": "Dòng đơn mua hàng"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
4	\N	\N	ir.model.fields	name	base	{"en_US": "Fields", "vi_VN": "Trường"}	 fields configuration for form builder 	f	\N	\N	f	f	f	\N	\N	\N	\N
17	\N	\N	ir.asset	sequence, id	base	{"en_US": "Asset", "vi_VN": "Tài sản"}	This model contributes to two things:\n\n        1. It provides a function returning a list of all file paths declared\n        in a given list of addons (see _get_addon_paths);\n\n        2. It allows to create 'ir.asset' records to add additional directives\n        to certain bundles.\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
29	\N	\N	ir.binary	id	base	{"en_US": "File streaming helper model for controllers", "vi_VN": "Model hỗ trợ dòng tệp cho bộ điều khiển"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
716	\N	\N	hr.contract.history	is_under_contract	base	{"en_US": "Contract history", "vi_VN": "Lịch sử hợp đồng"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
536	\N	\N	hr.departure.wizard	id	base	{"en_US": "Departure Wizard", "vi_VN": "Công cụ hỗ trợ quá trình nghỉ việc"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
714	\N	\N	hr.contract	id	base	{"en_US": "Contract", "vi_VN": "Hợp đồng nhân viên"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	t	t	f	\N	\N	\N	\N
715	\N	\N	hr.payroll.structure.type	id	base	{"en_US": "Salary Structure Type", "vi_VN": "Loại cấu trúc lương"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
28	\N	\N	ir.attachment	id desc	base	{"en_US": "Attachment", "vi_VN": "Tệp đính kèm"}	Attachments are used to link binary files or url to any openerp document.\n\n    External attachment storage\n    ---------------------------\n\n    The computed field ``datas`` is implemented using ``_file_read``,\n    ``_file_write`` and ``_file_delete``, which can be overridden to implement\n    other storage engines. Such methods should check for other location pseudo\n    uri (example: hdfs://hadoopserver).\n\n    The default implementation is the file:dirname location that stores files\n    on the local filesystem using name based on their sha1 hash\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
191	\N	\N	mail.shortcode	id	base	{"en_US": "Canned Response / Shortcode", "vi_VN": "Đang trả lời/Ký tự đặt biệt"}	 Shortcode\n        Canned Responses, allowing the user to defined shortcuts in its message. Should be applied before storing message in database.\n        Emoji allowing replacing text with image for visual effect. Should be applied when the message is displayed (only for final rendering).\n        These shortcodes are global and are available for every user.\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
717	\N	\N	hr.expense	date desc, id desc	base	{"en_US": "Expense", "vi_VN": "Chi phí"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	t	t	f	\N	\N	\N	\N
214	\N	\N	mail.blacklist.remove	id	base	{"en_US": "Remove email from blacklist wizard", "vi_VN": "Remove email from blacklist wizard"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
720	\N	\N	hr.expense.approve.duplicate	id	base	{"en_US": "Expense Approve Duplicate", "vi_VN": "Duyệt chi phí trùng lặp"}	\n    This wizard is shown whenever an approved expense is similar to one being\n    approved. The user has the opportunity to still validate it or decline.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
719	\N	\N	hr.expense.refuse.wizard	id	base	{"en_US": "Expense Refuse Reason Wizard", "vi_VN": "Tính năng ghi nhận lý do từ chối chi phí"}	This wizard can be launched from an he.expense (an expense line)\n    or from an hr.expense.sheet (En expense report)\n    'hr_expense_refuse_model' must be passed in the context to differentiate\n    the right model to use.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
721	\N	\N	hr.expense.split.wizard	id	base	{"en_US": "Expense Split Wizard", "vi_VN": "Tính năng chia sẻ chi phí"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
528	\N	\N	hr.employee.public	name	base	{"en_US": "Public Employee", "vi_VN": "Thông tin chung"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
481	\N	\N	account.payment.register	id	base	{"en_US": "Register Payment", "vi_VN": "Ghi nhận thanh toán"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
718	\N	\N	hr.expense.sheet	accounting_date desc, id desc	base	{"en_US": "Expense Report", "vi_VN": "Kê khai chi phí"}	\n        Here are the rights associated with the expense flow\n\n        Action       Group                   Restriction\n        =================================================================================\n        Submit      Employee                Only his own\n                    Officer                 If he is expense manager of the employee, manager of the employee\n                                             or the employee is in the department managed by the officer\n                    Manager                 Always\n        Approve     Officer                 Not his own and he is expense manager of the employee, manager of the employee\n                                             or the employee is in the department managed by the officer\n                    Manager                 Always\n        Post        Anybody                 State = approve and journal_id defined\n        Done        Anybody                 State = approve and journal_id defined\n        Cancel      Officer                 Not his own and he is expense manager of the employee, manager of the employee\n                                             or the employee is in the department managed by the officer\n                    Manager                 Always\n        =================================================================================\n    	f	\N	\N	t	t	f	\N	\N	\N	\N
722	\N	\N	hr.expense.split	id	base	{"en_US": "Expense Split", "vi_VN": "Chia sẻ chi phí"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
15	\N	\N	ir.ui.view	priority,name,id	base	{"en_US": "View", "vi_VN": "Xem"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
55	\N	\N	ir.qweb.field.float_time	id	base	{"en_US": "Qweb Field Float Time", "vi_VN": "Trường Qweb Thời gian Dự trữ"}	 ``float_time`` converter, to display integral or fractional values as\n    human-readable time spans (e.g. 1.5 as "01:30").\n\n    Can be used on any numerical field.\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
56	\N	\N	ir.qweb.field.time	id	base	{"en_US": "QWeb Field Time", "vi_VN": "QWeb Trường thời gian"}	 ``time`` converter, to display integer or fractional value as\n    human-readable time (e.g. 1.5 as "1:30 AM"). The unit of this value\n    is in hours.\n\n    Can be used on any numerical field between: 0 <= value < 24\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
30	\N	\N	ir.cron	cron_name	base	{"en_US": "Scheduled Actions", "vi_VN": "Hoạt động định kỳ"}	 Model describing cron jobs (also called actions or tasks).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
11	\N	\N	ir.sequence	name	base	{"en_US": "Sequence", "vi_VN": "Trình tự"}	 Sequence model.\n\n    The sequence model allows to define and use so-called sequence objects.\n    Such objects are used to generate unique identifiers in a transaction-safe\n    way.\n\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
12	\N	\N	ir.sequence.date_range	id	base	{"en_US": "Sequence Date Range", "vi_VN": "Phạm vi ngày trình tự"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
27	\N	\N	ir.actions.report	name, id	base	{"en_US": "Report Action", "vi_VN": "Báo cáo tác vụ"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
36	\N	\N	ir.rule	model_id DESC,id	base	{"en_US": "Record Rule", "vi_VN": "Quy tắc"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
43	\N	\N	ir.qweb.field.integer	id	base	{"en_US": "Qweb Field Integer", "vi_VN": "Trường Qweb Số nguyên"}	 Used to convert a t-field specification into an output HTML field.\n\n    :meth:`~.to_html` is the entry point of this conversion from QWeb, it:\n\n    * converts the record value to html using :meth:`~.record_to_html`\n    * generates the metadata attributes (``data-oe-``) to set on the root\n      result node\n    * generates the root result node itself through :meth:`~.render_element`\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
20	\N	\N	ir.actions.act_window.view	sequence,id	base	{"en_US": "Action Window View", "vi_VN": "Chế độ xem Cửa sổ Hành động"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
211	\N	\N	publisher_warranty.contract	id	base	{"en_US": "Publisher Warranty Contract", "vi_VN": "Hợp đồng bảo hành nhà phát hành"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
120	\N	\N	base_import.mapping	id	base	{"en_US": "Base Import Mapping", "vi_VN": "Base Import Mapping"}	 mapping of previous column:field selections\n\n    This is useful when repeatedly importing from a third-party\n    system: column names generated by the external system may\n    not match Odoo's field names or labels. This model is used\n    to save the mapping between column names and fields so that\n    next time a user imports from the same third-party systems\n    we can automatically match the columns to the correct field\n    without them having to re-enter the mapping every single\n    time.\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
460	\N	\N	account.fiscal.position.template	id	base	{"en_US": "Template for Fiscal Position", "vi_VN": "Biểu mẫu cho vị thế tài chính"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
371	\N	\N	phone.blacklist.remove	id	base	{"en_US": "Remove phone from blacklist", "vi_VN": "Remove phone from blacklist"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
372	\N	\N	privacy.log	id	base	{"en_US": "Privacy Log", "vi_VN": "Nhật ký quyền riêng tư"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
613	\N	\N	website.published.mixin	id	base	{"en_US": "Website Published Mixin", "vi_VN": "Trang web được xuất bản Mixin"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
13	\N	\N	ir.ui.menu	sequence,id	base	{"en_US": "Menu", "vi_VN": "Menu"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
1	\N	\N	base	id	base	{"en_US": "Base", "vi_VN": "Cơ sở"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
3	\N	\N	ir.model	is_mail_thread DESC, name ASC	base	{"en_US": "Models", "vi_VN": "Mô hình"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
41	\N	\N	ir.qweb	id	base	{"en_US": "Qweb", "vi_VN": "Qweb"}	 IrQWeb object for rendering stuff in the website context 	f	\N	\N	f	f	f	\N	\N	\N	\N
53	\N	\N	ir.qweb.field.image_url	id	base	{"en_US": "Qweb Field Image", "vi_VN": "Trường ảnh Qweb"}	 ``image_url`` widget rendering, inserts an image tag in the\n    document.\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
427	\N	\N	sequence.mixin	id	base	{"en_US": "Automatic sequence", "vi_VN": "Mã tự động"}	Mechanism used to have an editable sequence number.\n\n    Be careful of how you use this regarding the prefixes. More info in the\n    docstring of _get_last_sequence.\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
377	\N	\N	product.attribute	sequence, id	base	{"en_US": "Product Attribute", "vi_VN": "Thuộc tính sản phẩm"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
122	\N	\N	base_import.tests.models.char	id	base	{"en_US": "Tests : Base Import Model, Character", "vi_VN": "Tests : Base Import Model, Character"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
123	\N	\N	base_import.tests.models.char.required	id	base	{"en_US": "Tests : Base Import Model, Character required", "vi_VN": "Tests : Base Import Model, Character required"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
192	\N	\N	res.users.settings	id	base	{"en_US": "User Settings", "vi_VN": "Cài đặt người dùng"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
121	\N	\N	base_import.import	id	base	{"en_US": "Base Import", "vi_VN": "Base Import"}	\n    This model is used to prepare the loading of data coming from a user file.\n\n    Here is the process that is followed:\n\n    #. The user selects a file to import.\n    #. File parsing and mapping suggestion (see "parse_preview" method)\n\n       #. Extract the current model's importable fields tree (see :meth:`get_fields_tree`).\n       #. Read the file (see :meth:`_read_file`) and extract header names and file\n          length (used for batch import).\n       #. Extract headers types from the data preview (10 first line of the file)\n          (see :meth:`_extract_headers_types`).\n       #. Try to find for each header a field to map with (see :meth:`_get_mapping_suggestions`)\n\n          - First check the previously saved mappings between the header name\n            and one of the model's fields.\n          - If no mapping found, try an exact match comparison using fields\n            technical names, labels and user language translated labels.\n          - If nothing found, try a fuzzy match using word distance between\n            header name and fields tachnical names, labels and user language\n            translated labels. Keep only the closest match.\n\n       #. Prepare examples for each columns using the first non null value from each column.\n       #. Send the info back to the UI where the user can modify the suggested mapping.\n    #. Execute the import: There are two import mode with uses the same process. (see :meth:`execute_import`)\n\n       #. Test import: Try to import but rollback the transaction. This allows\n          the check errors during the import process and allow the user to\n          choose import options for the different encountered errors.\n       #. Real import: Try to import the file using the configured mapping and\n          the eventual "error mapping options". If import encounters blocking\n          errors, the transaction is rollbacked and the user is allowed to\n          choose import options for the different errors.\n\n          - Get file data and fields to import into (see :meth:`_convert_import_data`).\n          - Parse date, float and binary data (see :meth:`_parse_import_data`).\n          - Handle multiple mapping -> concatenate char/text/many2many columns\n            mapped on the same field (see :meth:`_handle_multi_mapping`).\n          - Handle fallback values for boolean and selection fields, in case\n            input data does not match any allowed values (see :meth:`_handle_fallback_values`).\n          - Load data (see ir.model "load" method).\n          - Rollback transaction if test mode or if encountered error.\n          - Save mapping if any import is successful to ease later mapping suggestions.\n          - Return import result to the UI (success or errors if any).\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
124	\N	\N	base_import.tests.models.char.readonly	id	base	{"en_US": "Tests : Base Import Model, Character readonly", "vi_VN": "Tests : Base Import Model, Character readonly"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
125	\N	\N	base_import.tests.models.char.states	id	base	{"en_US": "Tests : Base Import Model, Character states", "vi_VN": "Tests : Base Import Model, Character states"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
126	\N	\N	base_import.tests.models.char.noreadonly	id	base	{"en_US": "Tests : Base Import Model, Character No readonly", "vi_VN": "Tests : Base Import Model, Character No readonly"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
127	\N	\N	base_import.tests.models.char.stillreadonly	id	base	{"en_US": "Tests : Base Import Model, Character still readonly", "vi_VN": "Tests : Base Import Model, Character still readonly"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
128	\N	\N	base_import.tests.models.m2o	id	base	{"en_US": "Tests : Base Import Model, Many to One", "vi_VN": "Tests : Base Import Model, Many to One"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
129	\N	\N	base_import.tests.models.m2o.related	id	base	{"en_US": "Tests : Base Import Model, Many to One related", "vi_VN": "Tests : Base Import Model, Many to One related"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
77	\N	\N	avatar.mixin	id	base	{"en_US": "Avatar Mixin", "vi_VN": "Mixin Hình đại diện"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
385	\N	\N	product.pricelist	sequence asc, id desc	base	{"en_US": "Pricelist", "vi_VN": "Bảng giá"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
386	\N	\N	product.pricelist.item	applied_on, min_quantity desc, categ_id desc, id desc	base	{"en_US": "Pricelist Rule", "vi_VN": "Quy tắc bảng giá"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
137	\N	\N	bus.bus	id	base	{"en_US": "Communication Bus", "vi_VN": "Communication Bus"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
140	\N	\N	web_tour.tour	id	base	{"en_US": "Tours", "vi_VN": "Du lịch"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
142	\N	\N	web_editor.assets	id	base	{"en_US": "Assets Utils", "vi_VN": "Assets Utils"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
144	\N	\N	web_editor.converter.test.sub	id	base	{"en_US": "Web Editor Converter Subtest", "vi_VN": "Web Editor Converter Subtest"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
428	\N	\N	account.fiscal.position	sequence	base	{"en_US": "Fiscal Position", "vi_VN": "Vị thế tài chính"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
434	\N	\N	account.group	code_prefix_start	base	{"en_US": "Account Group", "vi_VN": "Nhóm tài khoản"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
10	\N	\N	wizard.ir.model.menu.create	id	base	{"en_US": "Create Menu Wizard", "vi_VN": "Tạo Trình Menu"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
26	\N	\N	ir.actions.client	name	base	{"en_US": "Client Action", "vi_VN": "Hành động Máy khách"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
85	\N	\N	res.partner	display_name ASC, id DESC	base	{"en_US": "Contact", "vi_VN": "Liên hệ"}	 Inherits partner and adds Tasks information in the partner form 	f	\N	\N	t	t	t	\N	\N	\N	\N
130	\N	\N	base_import.tests.models.m2o.required	id	base	{"en_US": "Tests : Base Import Model, Many to One required", "vi_VN": "Tests : Base Import Model, Many to One required"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
131	\N	\N	base_import.tests.models.m2o.required.related	id	base	{"en_US": "Tests : Base Import Model, Many to One required related", "vi_VN": "Tests : Base Import Model, Many to One required related"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
134	\N	\N	base_import.tests.models.preview	id	base	{"en_US": "Tests : Base Import Model Preview", "vi_VN": "Tests : Base Import Model Preview"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
135	\N	\N	base_import.tests.models.float	id	base	{"en_US": "Tests: Base Import Model Float", "vi_VN": "Tests: Base Import Model Float"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
136	\N	\N	base_import.tests.models.complex	id	base	{"en_US": "Tests: Base Import Model Complex", "vi_VN": "Tests: Base Import Model Complex"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
33	\N	\N	ir.default	id	base	{"en_US": "Default Values", "vi_VN": "Giá trị Mặc định"}	 User-defined default values for fields. 	f	\N	\N	f	f	f	\N	\N	\N	\N
453	\N	\N	account.bank.statement	first_line_index desc	base	{"en_US": "Bank Statement", "vi_VN": "Sổ quỹ/sao kê"}	Populate factory part for account.bank.statements.	f	\N	\N	f	f	f	\N	\N	\N	\N
454	\N	\N	account.bank.statement.line	internal_index desc	base	{"en_US": "Bank Statement Line", "vi_VN": "Giao dịch trên sổ quỹ/sổ phụ"}	Populate factory part for account.bank.statements.line.	f	\N	\N	f	f	f	\N	\N	\N	\N
459	\N	\N	account.tax.repartition.line.template	id	base	{"en_US": "Tax Repartition Line Template", "vi_VN": "Mẫu chi tiết phân bổ thuế"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
461	\N	\N	account.fiscal.position.tax.template	id	base	{"en_US": "Tax Mapping Template of Fiscal Position", "vi_VN": "Mẫu mapping thuế của vị trí tài chính"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
462	\N	\N	account.fiscal.position.account.template	id	base	{"en_US": "Accounts Mapping Template of Fiscal Position", "vi_VN": "Mẫu mapping tài khoản của vị trí tài chính"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
463	\N	\N	account.reconcile.model.template	id	base	{"en_US": "Reconcile Model Template", "vi_VN": "Mẫu đối tượng đối soát"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
8	\N	\N	ir.model.access	model_id,group_id,name,id	base	{"en_US": "Model Access", "vi_VN": "Truy cập đối tượng"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
9	\N	\N	ir.model.data	module, model, name	base	{"en_US": "Model Data", "vi_VN": "Đối tượng dữ liệu"}	Holds external identifier keys for records in the database.\n       This has two main uses:\n\n           * allows easy data integration with third-party systems,\n             making import/export/sync of data possible, as records\n             can be uniquely identified across multiple systems\n           * allows tracking the origin of data installed by Odoo\n             modules themselves, thus making it possible to later\n             update them seamlessly.\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
23	\N	\N	ir.actions.server	sequence,name	base	{"en_US": "Server Action", "vi_VN": "Tác vụ phía Máy chủ"}	 Add website option in server actions. 	f	\N	\N	f	f	f	\N	\N	\N	\N
31	\N	\N	ir.cron.trigger	id	base	{"en_US": "Triggered actions", "vi_VN": "Hành động được kích hoạt"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
34	\N	\N	ir.exports	name	base	{"en_US": "Exports", "vi_VN": "Xuất"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
35	\N	\N	ir.exports.line	id	base	{"en_US": "Exports Line", "vi_VN": "Dòng xuất"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
39	\N	\N	ir.mail_server	sequence	base	{"en_US": "Mail Server", "vi_VN": "Máy chủ gửi thư"}	Represents an SMTP server, able to send outgoing emails, with SSL and TLS capabilities.	f	\N	\N	f	f	f	\N	\N	\N	\N
40	\N	\N	ir.fields.converter	id	base	{"en_US": "Fields Converter", "vi_VN": "Chuyển đổi Trường"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
42	\N	\N	ir.qweb.field	id	base	{"en_US": "Qweb Field", "vi_VN": "Trường Qweb"}	 Used to convert a t-field specification into an output HTML field.\n\n    :meth:`~.to_html` is the entry point of this conversion from QWeb, it:\n\n    * converts the record value to html using :meth:`~.record_to_html`\n    * generates the metadata attributes (``data-oe-``) to set on the root\n      result node\n    * generates the root result node itself through :meth:`~.render_element`\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
44	\N	\N	ir.qweb.field.float	id	base	{"en_US": "Qweb Field Float", "vi_VN": "Trường Qweb Dự trữ"}	 Used to convert a t-field specification into an output HTML field.\n\n    :meth:`~.to_html` is the entry point of this conversion from QWeb, it:\n\n    * converts the record value to html using :meth:`~.record_to_html`\n    * generates the metadata attributes (``data-oe-``) to set on the root\n      result node\n    * generates the root result node itself through :meth:`~.render_element`\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
45	\N	\N	ir.qweb.field.date	id	base	{"en_US": "Qweb Field Date", "vi_VN": "Trường Qweb Ngày tháng"}	 Used to convert a t-field specification into an output HTML field.\n\n    :meth:`~.to_html` is the entry point of this conversion from QWeb, it:\n\n    * converts the record value to html using :meth:`~.record_to_html`\n    * generates the metadata attributes (``data-oe-``) to set on the root\n      result node\n    * generates the root result node itself through :meth:`~.render_element`\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
46	\N	\N	ir.qweb.field.datetime	id	base	{"en_US": "Qweb Field Datetime", "vi_VN": "Trường Qweb Ngày giờ"}	 Used to convert a t-field specification into an output HTML field.\n\n    :meth:`~.to_html` is the entry point of this conversion from QWeb, it:\n\n    * converts the record value to html using :meth:`~.record_to_html`\n    * generates the metadata attributes (``data-oe-``) to set on the root\n      result node\n    * generates the root result node itself through :meth:`~.render_element`\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
47	\N	\N	ir.qweb.field.text	id	base	{"en_US": "Qweb Field Text", "vi_VN": "Trường Qweb Văn bản"}	 Used to convert a t-field specification into an output HTML field.\n\n    :meth:`~.to_html` is the entry point of this conversion from QWeb, it:\n\n    * converts the record value to html using :meth:`~.record_to_html`\n    * generates the metadata attributes (``data-oe-``) to set on the root\n      result node\n    * generates the root result node itself through :meth:`~.render_element`\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
48	\N	\N	ir.qweb.field.selection	id	base	{"en_US": "Qweb Field Selection", "vi_VN": "Trường Qweb Lựa chọn"}	 Used to convert a t-field specification into an output HTML field.\n\n    :meth:`~.to_html` is the entry point of this conversion from QWeb, it:\n\n    * converts the record value to html using :meth:`~.record_to_html`\n    * generates the metadata attributes (``data-oe-``) to set on the root\n      result node\n    * generates the root result node itself through :meth:`~.render_element`\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
49	\N	\N	ir.qweb.field.many2one	id	base	{"en_US": "Qweb Field Many to One", "vi_VN": "Trường Qweb Many to One"}	 Used to convert a t-field specification into an output HTML field.\n\n    :meth:`~.to_html` is the entry point of this conversion from QWeb, it:\n\n    * converts the record value to html using :meth:`~.record_to_html`\n    * generates the metadata attributes (``data-oe-``) to set on the root\n      result node\n    * generates the root result node itself through :meth:`~.render_element`\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
455	\N	\N	account.group.template	code_prefix_start	base	{"en_US": "Template for Account Groups", "vi_VN": "Mẫu cho nhóm tài khoản"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
2	\N	\N	_unknown	id	base	{"en_US": "Unknown", "vi_VN": "Không xác định"}	\n    Abstract model used as a substitute for relational fields with an unknown\n    comodel.\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
50	\N	\N	ir.qweb.field.many2many	id	base	{"en_US": "Qweb field many2many", "vi_VN": "Qweb trường many2many"}	 Used to convert a t-field specification into an output HTML field.\n\n    :meth:`~.to_html` is the entry point of this conversion from QWeb, it:\n\n    * converts the record value to html using :meth:`~.record_to_html`\n    * generates the metadata attributes (``data-oe-``) to set on the root\n      result node\n    * generates the root result node itself through :meth:`~.render_element`\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
51	\N	\N	ir.qweb.field.html	id	base	{"en_US": "Qweb Field HTML", "vi_VN": "Trường Qweb HTML"}	 Used to convert a t-field specification into an output HTML field.\n\n    :meth:`~.to_html` is the entry point of this conversion from QWeb, it:\n\n    * converts the record value to html using :meth:`~.record_to_html`\n    * generates the metadata attributes (``data-oe-``) to set on the root\n      result node\n    * generates the root result node itself through :meth:`~.render_element`\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
52	\N	\N	ir.qweb.field.image	id	base	{"en_US": "Qweb Field Image", "vi_VN": "Trường ảnh Qweb"}	\n    Widget options:\n\n    ``class``\n        set as attribute on the generated <img> tag\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
57	\N	\N	ir.qweb.field.duration	id	base	{"en_US": "Qweb Field Duration", "vi_VN": "Trường Qweb Thời hạn"}	 ``duration`` converter, to display integral or fractional values as\n    human-readable time spans (e.g. 1.5 as "1 hour 30 minutes").\n\n    Can be used on any numerical field.\n\n    Has an option ``unit`` which can be one of ``second``, ``minute``,\n    ``hour``, ``day``, ``week`` or ``year``, used to interpret the numerical\n    field value before converting it. By default use ``second``.\n\n    Has an option ``round``. By default use ``second``.\n\n    Has an option ``digital`` to display 01:00 instead of 1 hour\n\n    Sub-second values will be ignored.\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
58	\N	\N	ir.qweb.field.relative	id	base	{"en_US": "Qweb Field Relative", "vi_VN": "Trường Qweb Quan hệ"}	 Used to convert a t-field specification into an output HTML field.\n\n    :meth:`~.to_html` is the entry point of this conversion from QWeb, it:\n\n    * converts the record value to html using :meth:`~.record_to_html`\n    * generates the metadata attributes (``data-oe-``) to set on the root\n      result node\n    * generates the root result node itself through :meth:`~.render_element`\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
59	\N	\N	ir.qweb.field.barcode	id	base	{"en_US": "Qweb Field Barcode", "vi_VN": "Trường Qweb Mã vạch"}	 ``barcode`` widget rendering, inserts a data:uri-using image tag in the\n    document. May be overridden by e.g. the website module to generate links\n    instead.\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
60	\N	\N	ir.qweb.field.contact	id	base	{"en_US": "Qweb Field Contact", "vi_VN": "Liên hệ lĩnh vực Qweb"}	 Used to convert a t-field specification into an output HTML field.\n\n    :meth:`~.to_html` is the entry point of this conversion from QWeb, it:\n\n    * converts the record value to html using :meth:`~.record_to_html`\n    * generates the metadata attributes (``data-oe-``) to set on the root\n      result node\n    * generates the root result node itself through :meth:`~.render_element`\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
61	\N	\N	ir.qweb.field.qweb	id	base	{"en_US": "Qweb Field qweb", "vi_VN": "Trường Qweb qweb"}	 Used to convert a t-field specification into an output HTML field.\n\n    :meth:`~.to_html` is the entry point of this conversion from QWeb, it:\n\n    * converts the record value to html using :meth:`~.record_to_html`\n    * generates the metadata attributes (``data-oe-``) to set on the root\n      result node\n    * generates the root result node itself through :meth:`~.render_element`\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
64	\N	\N	ir.property	id	base	{"en_US": "Company Property", "vi_VN": "Tài sản Công ty"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
66	\N	\N	ir.module.module	application desc,sequence,name	base	{"en_US": "Module", "vi_VN": "Mô đun"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
67	\N	\N	ir.module.module.dependency	id	base	{"en_US": "Module dependency", "vi_VN": "Phụ thuộc của mô-đun"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
68	\N	\N	ir.module.module.exclusion	id	base	{"en_US": "Module exclusion", "vi_VN": "Loại trừ mô-đun"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
69	\N	\N	ir.demo	id	base	{"en_US": "Demo", "vi_VN": "Demo"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
70	\N	\N	ir.demo_failure	id	base	{"en_US": "Demo failure", "vi_VN": "Demo không thành công"}	 Stores modules for which we could not install demo data\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
71	\N	\N	ir.demo_failure.wizard	id	base	{"en_US": "Demo Failure wizard", "vi_VN": "Trình hỗ trợ demo không thành công"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
72	\N	\N	report.layout	sequence	base	{"en_US": "Report Layout", "vi_VN": "Bố cục bản in"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
73	\N	\N	report.paperformat	id	base	{"en_US": "Paper Format Config", "vi_VN": "Định dạng trang"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
74	\N	\N	ir.profile	session desc, id desc	base	{"en_US": "Profiling results", "vi_VN": "Kết quả hồ sơ"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
75	\N	\N	base.enable.profiling.wizard	id	base	{"en_US": "Enable profiling for some time", "vi_VN": "Bật cấu hình trong một thời gian"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
76	\N	\N	image.mixin	id	base	{"en_US": "Image Mixin", "vi_VN": "Mixin Hình ảnh"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
78	\N	\N	res.country	name	base	{"en_US": "Country", "vi_VN": "Quốc gia"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
79	\N	\N	res.country.group	id	base	{"en_US": "Country Group", "vi_VN": "Nhóm Quốc gia"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
80	\N	\N	res.country.state	code	base	{"en_US": "Country state", "vi_VN": "Tỉnh/TP/Bang"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
83	\N	\N	res.partner.category	name	base	{"en_US": "Partner Tags", "vi_VN": "Từ khoá đối tác"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
84	\N	\N	res.partner.title	name	base	{"en_US": "Partner Title", "vi_VN": "Danh xưng đối tác"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
86	\N	\N	res.partner.industry	name	base	{"en_US": "Industry", "vi_VN": "Ngành nghề"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
88	\N	\N	res.partner.bank	sequence, id	base	{"en_US": "Bank Accounts", "vi_VN": "Tài khoản Ngân hàng"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	t	t	f	\N	\N	\N	\N
89	\N	\N	res.config	id	base	{"en_US": "Config", "vi_VN": "Cấu hình"}	 Base classes for new-style configuration items\n\n    Configuration items should inherit from this class, implement\n    the execute method (and optionally the cancel one) and have\n    their view inherit from the related res_config_view_base view.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
91	\N	\N	res.config.settings	id	base	{"en_US": "Config Settings", "vi_VN": "Cài đặt Cấu hình"}	 Inherit the base settings to add a counter of failed email + configure\n    the alias domain. 	t	\N	\N	f	f	f	\N	\N	\N	\N
90	\N	\N	res.config.installer	id	base	{"en_US": "Config Installer", "vi_VN": "Trình cài đặt Cấu hình"}	 New-style configuration base specialized for addons selection\n    and installation.\n\n    Basic usage\n    -----------\n\n    Subclasses can simply define a number of boolean fields. The field names\n    should be the names of the addons to install (when selected). Upon action\n    execution, selected boolean fields (and those only) will be interpreted as\n    addons to install, and batch-installed.\n\n    Additional addons\n    -----------------\n\n    It is also possible to require the installation of an additional\n    addon set when a specific preset of addons has been marked for\n    installation (in the basic usage only, additionals can't depend on\n    one another).\n\n    These additionals are defined through the ``_install_if``\n    property. This property is a mapping of a collection of addons (by\n    name) to a collection of addons (by name) [#]_, and if all the *key*\n    addons are selected for installation, then the *value* ones will\n    be selected as well. For example::\n\n        _install_if = {\n            ('sale','crm'): ['sale_crm'],\n        }\n\n    This will install the ``sale_crm`` addon if and only if both the\n    ``sale`` and ``crm`` addons are selected for installation.\n\n    You can define as many additionals as you wish, and additionals\n    can overlap in key and value. For instance::\n\n        _install_if = {\n            ('sale','crm'): ['sale_crm'],\n            ('sale','project'): ['sale_service'],\n        }\n\n    will install both ``sale_crm`` and ``sale_service`` if all of\n    ``sale``, ``crm`` and ``project`` are selected for installation.\n\n    Hook methods\n    ------------\n\n    Subclasses might also need to express dependencies more complex\n    than that provided by additionals. In this case, it's possible to\n    define methods of the form ``_if_%(name)s`` where ``name`` is the\n    name of a boolean field. If the field is selected, then the\n    corresponding module will be marked for installation *and* the\n    hook method will be executed.\n\n    Hook methods take the usual set of parameters (cr, uid, ids,\n    context) and can return a collection of additional addons to\n    install (if they return anything, otherwise they should not return\n    anything, though returning any "falsy" value such as None or an\n    empty collection will have the same effect).\n\n    Complete control\n    ----------------\n\n    The last hook is to simply overload the ``modules_to_install``\n    method, which implements all the mechanisms above. This method\n    takes the usual set of parameters (cr, uid, ids, context) and\n    returns a ``set`` of addons to install (addons selected by the\n    above methods minus addons from the *basic* set which are already\n    installed) [#]_ so an overloader can simply manipulate the ``set``\n    returned by ``ResConfigInstaller.modules_to_install`` to add or\n    remove addons.\n\n    Skipping the installer\n    ----------------------\n\n    Unless it is removed from the view, installers have a *skip*\n    button which invokes ``action_skip`` (and the ``cancel`` hook from\n    ``res.config``). Hooks and additionals *are not run* when skipping\n    installation, even for already installed addons.\n\n    Again, setup your hooks accordingly.\n\n    .. [#] note that since a mapping key needs to be hashable, it's\n           possible to use a tuple or a frozenset, but not a list or a\n           regular set\n\n    .. [#] because the already-installed modules are only pruned at\n           the very end of ``modules_to_install``, additionals and\n           hooks depending on them *are guaranteed to execute*. Setup\n           your hooks accordingly.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
133	\N	\N	base_import.tests.models.o2m.child	id	base	{"en_US": "Tests : Base Import Model, One to Many child", "vi_VN": "Tests : Base Import Model, One to Many child"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
93	\N	\N	res.currency.rate	name desc	base	{"en_US": "Currency Rate", "vi_VN": "Tỷ giá"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
402	\N	\N	portal.wizard	id	base	{"en_US": "Grant Portal Access", "vi_VN": "Grant Portal Access"}	\n        A wizard to manage the creation/removal of portal users.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
106	\N	\N	decimal.precision	id	base	{"en_US": "Decimal Precision", "vi_VN": "Độ chính xác Thập phân"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
364	\N	\N	account.analytic.distribution.model	id desc	base	{"en_US": "Analytic Distribution Model", "vi_VN": "Mô hình Phân bổ Phân tích"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
96	\N	\N	res.users.log	id desc	base	{"en_US": "Users Log", "vi_VN": "Lịch sử tài khoản"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
98	\N	\N	res.users.identitycheck	id	base	{"en_US": "Password Check Wizard", "vi_VN": "Trình kiểm tra mật khẩu"}	 Wizard used to re-check the user's credentials (password)\n\n    Might be useful before the more security-sensitive operations, users might be\n    leaving their computer unlocked & unattended. Re-checking credentials mitigates\n    some of the risk of a third party using such an unattended device to manipulate\n    the account.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
99	\N	\N	change.password.wizard	id	base	{"en_US": "Change Password Wizard", "vi_VN": "Trình Thay đổi Mật khẩu"}	 A wizard to manage the change of users' passwords. 	t	\N	\N	f	f	f	\N	\N	\N	\N
101	\N	\N	change.password.own	id	base	{"en_US": "User, change own password wizard", "vi_VN": "Người dùng, tính năng hướng dẫn thay đổi trình mật khẩu của mình"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
102	\N	\N	res.users.apikeys	id	base	{"en_US": "Users API Keys", "vi_VN": "Khóa API của Người dùng"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
361	\N	\N	account.analytic.account	plan_id, name asc	base	{"en_US": "Analytic Account", "vi_VN": "Tài khoản phân tích"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	t	f	f	\N	\N	\N	\N
97	\N	\N	res.users	name, login	base	{"en_US": "User", "vi_VN": "Người dùng"}	 Update of res.users class\n        - add a preference about username for livechat purpose\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
94	\N	\N	res.company	sequence, name	base	{"en_US": "Companies", "vi_VN": "Công ty"}	Populate factory part for the accountings applications of res.company.	f	\N	\N	t	f	f	\N	\N	\N	\N
103	\N	\N	res.users.apikeys.description	id	base	{"en_US": "API Key Description", "vi_VN": "Mô tả Khóa API"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
92	\N	\N	res.currency	active desc, name	base	{"en_US": "Currency", "vi_VN": "Tiền tệ"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
442	\N	\N	account.reconcile.model.line	sequence, id	base	{"en_US": "Rules for the reconciliation model", "vi_VN": "Quy tắc cho đối tượng đối soát"}	Populate factory part for account.reconcile.model.line.	f	\N	\N	f	f	f	\N	\N	\N	\N
104	\N	\N	res.users.apikeys.show	id	base	{"en_US": "Show API Key", "vi_VN": "Hiển thị Khóa API"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
105	\N	\N	res.users.deletion	id	base	{"en_US": "Users Deletion Request", "vi_VN": "Yêu cầu xóa người dùng"}	User deletion requests.\n\n    Those requests are logged in a different model to keep a trace of this action and the\n    deletion is done in a CRON. Indeed, removing a user can be a heavy operation on\n    large database (because of create_uid, write_uid on each model, which are not always\n    indexed). This model just remove the users added in the deletion queue, remaining code\n    must deal with other consideration (archiving, blacklist email...).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
450	\N	\N	account.payment	date desc, name desc	base	{"en_US": "Payments", "vi_VN": "Thanh toán"}	Populate factory part for account.payment.	f	\N	\N	t	t	f	\N	\N	\N	\N
447	\N	\N	account.move.line	date desc, move_name desc, id	base	{"en_US": "Journal Item", "vi_VN": "Bút toán"}	 Override AccountInvoice_line to add the link to the purchase order line it is related to	f	\N	\N	f	f	f	\N	\N	\N	\N
108	\N	\N	base.module.update	id	base	{"en_US": "Update Module", "vi_VN": "Cập nhật mô đun"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
109	\N	\N	base.language.install	id	base	{"en_US": "Install Language", "vi_VN": "Cài đặt Ngôn ngữ"}	 Install Language	t	\N	\N	f	f	f	\N	\N	\N	\N
110	\N	\N	base.language.import	id	base	{"en_US": "Language Import", "vi_VN": "Nhập Ngôn ngữ"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
111	\N	\N	base.module.upgrade	id	base	{"en_US": "Upgrade Module", "vi_VN": "Nâng cấp mô-đun"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
456	\N	\N	account.account.template	code	base	{"en_US": "Templates for Accounts", "vi_VN": "Các mẫu tài khoản"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	t	f	f	\N	\N	\N	\N
503	\N	\N	sale.order	date_order desc, id desc	base	{"en_US": "Sales Order", "vi_VN": "Đơn bán hàng"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	t	t	f	\N	\N	\N	\N
113	\N	\N	base.language.export	id	base	{"en_US": "Language Export", "vi_VN": "Xuất Ngôn ngữ"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
114	\N	\N	base.partner.merge.line	min_id asc	base	{"en_US": "Merge Partner Line", "vi_VN": "Gộp dòng đối tác"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
115	\N	\N	base.partner.merge.automatic.wizard	id	base	{"en_US": "Merge Partner Wizard", "vi_VN": "Tính năng gộp đối tác"}	\n        The idea behind this wizard is to create a list of potential partners to\n        merge. We use two objects, the first one is the wizard for the end-user.\n        And the second will contain the partner list to merge.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
514	\N	\N	gamification.badge	id	base	{"en_US": "Gamification Badge", "vi_VN": "Huy hiệu Gamification"}	Badge object that users can send and receive	f	\N	\N	t	f	f	\N	\N	\N	\N
457	\N	\N	account.chart.template	name	base	{"en_US": "Account Chart Template", "vi_VN": "Bảng hệ thống tài khoản"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
151	\N	\N	resource.calendar.leaves	date_from	base	{"en_US": "Resource Time Off Detail", "vi_VN": "Chi tiết ngày nghỉ của tài nguyên"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
148	\N	\N	resource.calendar	id	base	{"en_US": "Resource Working Time", "vi_VN": "Tài nguyên thời gian làm việc"}	 Calendar model for a resource. It has\n\n     - attendance_ids: list of resource.calendar.attendance that are a working\n                       interval in a given weekday.\n     - leave_ids: list of leaves linked to this calendar. A leave can be general\n                  or linked to a specific resource, depending on its resource_id.\n\n    All methods in this class use intervals. An interval is a tuple holding\n    (begin_datetime, end_datetime). A list of intervals is therefore a list of\n    tuples, holding several intervals of work or leaves. 	f	\N	\N	f	f	f	\N	\N	\N	\N
150	\N	\N	resource.resource	name	base	{"en_US": "Resources", "vi_VN": "Tài nguyên"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
147	\N	\N	resource.mixin	id	base	{"en_US": "Resource Mixin", "vi_VN": "Tài nguyên Mixin"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
152	\N	\N	utm.campaign	id	base	{"en_US": "UTM Campaign", "vi_VN": "Chiến dịch UTM"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
153	\N	\N	utm.medium	name	base	{"en_US": "UTM Medium", "vi_VN": "UTM Medium"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
155	\N	\N	utm.source	id	base	{"en_US": "UTM Source", "vi_VN": "UTM Source"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
117	\N	\N	base.document.layout	id	base	{"en_US": "Company Document Layout", "vi_VN": "Bố cục tài liệu công ty"}	\n    Customise the company document layout and display a live preview\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
163	\N	\N	mail.activity.mixin	id	base	{"en_US": "Activity Mixin", "vi_VN": "Hoạt động Mixin"}	 Mail Activity Mixin is a mixin class to use if you want to add activities\n    management on a model. It works like the mail.thread mixin. It defines\n    an activity_ids one2many field toward activities using res_id and res_model_id.\n    Various related / computed fields are also added to have a global status of\n    activities on documents.\n\n    Activities come with a new JS widget for the form view. It is integrated in the\n    Chatter widget although it is a separate widget. It displays activities linked\n    to the current record and allow to schedule, edit and mark done activities.\n    Just include field activity_ids in the div.oe-chatter to use it.\n\n    There is also a kanban widget defined. It defines a small widget to integrate\n    in kanban vignettes. It allow to manage activities directly from the kanban\n    view. Use widget="kanban_activity" on activitiy_ids field in kanban view to\n    use it.\n\n    Some context keys allow to control the mixin behavior. Use those in some\n    specific cases like import\n\n     * ``mail_activity_automation_skip``: skip activities automation; it means\n       no automated activities will be generated, updated or unlinked, allowing\n       to save computation and avoid generating unwanted activities;\n    	f	\N	\N	f	t	f	\N	\N	\N	\N
532	\N	\N	hr.plan	id	base	{"en_US": "plan", "vi_VN": "kế hoạch"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
537	\N	\N	link.tracker	count DESC	base	{"en_US": "Link Tracker", "vi_VN": "Kiểm soát đường dẫn"}	 Link trackers allow users to wrap any URL into a short URL that can be\n    tracked by Odoo. Clicks are counter on each link. A tracker is linked to\n    UTMs allowing to analyze marketing actions.\n\n    This model is also used in mass_mailing where each link in html body is\n    automatically converted into a short link that is tracked and integrates\n    UTMs. 	f	\N	\N	f	f	f	\N	\N	\N	\N
168	\N	\N	mail.thread.blacklist	id	base	{"en_US": "Mail Blacklist mixin", "vi_VN": "Mail Blacklist mixin"}	 Mixin that is inherited by all model with opt out. This mixin stores a normalized\n    email based on primary_email field.\n\n    A normalized email is considered as :\n        - having a left part + @ + a right part (the domain can be without '.something')\n        - being lower case\n        - having no name before the address. Typically, having no 'Name <>'\n    Ex:\n        - Formatted Email : 'Name <NaMe@DoMaIn.CoM>'\n        - Normalized Email : 'name@domain.com'\n\n    The primary email field can be specified on the parent model, if it differs from the default one ('email')\n    The email_normalized field can than be used on that model to search quickly on emails (by simple comparison\n    and not using time consuming regex anymore).\n\n    Using this email_normalized field, blacklist status is computed.\n\n    Mail Thread capabilities are required for this mixin. 	f	\N	\N	t	f	t	\N	\N	\N	\N
170	\N	\N	template.reset.mixin	id	base	{"en_US": "Template Reset Mixin", "vi_VN": "Mixin đặt lại mẫu"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
172	\N	\N	mail.notification	id	base	{"en_US": "Message Notifications", "vi_VN": "Thông báo thông điệp"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
173	\N	\N	mail.activity.type	sequence, id	base	{"en_US": "Activity Type", "vi_VN": "Kiểu hoạt động"}	 Activity Types are used to categorize activities. Each type is a different\n    kind of activity e.g. call, mail, meeting. An activity can be generic i.e.\n    available for all models using activities; or specific to a model in which\n    case res_model field should be used. 	f	\N	\N	f	f	f	\N	\N	\N	\N
174	\N	\N	mail.activity	date_deadline ASC, id ASC	base	{"en_US": "Activity", "vi_VN": "Hoạt động"}	 An actual activity to perform. Activities are linked to\n    documents using res_id and res_model_id fields. Activities have a deadline\n    that can be used in kanban view to display a status. Once done activities\n    are unlinked and a message is posted. This message has a new activity_type_id\n    field that indicates the activity linked to the message. 	f	\N	\N	f	f	f	\N	\N	\N	\N
176	\N	\N	mail.followers	id	base	{"en_US": "Document Followers", "vi_VN": "Người theo dõi Tài liệu"}	 mail_followers holds the data related to the follow mechanism inside\n    Odoo. Partners can choose to follow documents (records) of any kind\n    that inherits from mail.thread. Following documents allow to receive\n    notifications for new messages. A subscription is characterized by:\n\n    :param: res_model: model of the followed objects\n    :param: res_id: ID of resource (may be 0 for every objects)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
177	\N	\N	mail.gateway.allowed	id	base	{"en_US": "Mail Gateway Allowed", "vi_VN": "Cổng email được cho phép"}	List of trusted email address which won't have the quota restriction.\n\n    The incoming emails have a restriction of the number of records they can\n    create with alias, defined by the 2 systems parameters;\n    - mail.gateway.loop.minutes\n    - mail.gateway.loop.threshold\n\n    But we might have some legit use cases for which we want to receive a ton of emails\n    from an automated-source. This model stores those trusted source and this restriction\n    won't apply to them.\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
178	\N	\N	mail.link.preview	id	base	{"en_US": "Store link preview data", "vi_VN": "Lưu dữ liệu xem trước liên kết"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
179	\N	\N	mail.message.reaction	id desc	base	{"en_US": "Message Reaction", "vi_VN": "Phản ứng tin nhắn"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
180	\N	\N	mail.message.schedule	scheduled_datetime DESC, id DESC	base	{"en_US": "Scheduled Messages", "vi_VN": "Nội dung được lên lịch"}	 Mail message notification schedule queue.\n\n    This model is used to store the mail messages scheduled. So we can\n    delay the sending of the notifications. A scheduled date field already\n    exists on the <mail.mail> but it does not allow us to delay the sending\n    of the <bus.bus> notifications.\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
181	\N	\N	mail.message.subtype	sequence, id	base	{"en_US": "Message subtypes", "vi_VN": "Kiểu phụ của thông điệp"}	 Class holding subtype definition for messages. Subtypes allow to tune\n        the follower subscription, allowing only some subtypes to be pushed\n        on the Wall. 	f	\N	\N	f	f	f	\N	\N	\N	\N
183	\N	1	mail.mail	id desc	base	{"en_US": "Outgoing Mails", "vi_VN": "Thư gửi đi"}	Add the mass mailing campaign data to mail	f	\N	2025-06-18 16:04:55.307597	f	f	f	2137	Send an E-mail	send_mail	t
184	\N	\N	mail.tracking.value	tracking_sequence asc	base	{"en_US": "Mail Tracking Value", "vi_VN": "Giá trị Theo vết Thư"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
185	\N	\N	mail.template	name	base	{"en_US": "Email Templates", "vi_VN": "Mẫu Email"}	Templates for sending email	f	\N	\N	f	f	f	\N	\N	\N	\N
186	\N	\N	mail.channel.member	id	base	{"en_US": "Listeners of a Channel", "vi_VN": "Người nhận thông điệp của kênh"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
187	\N	\N	mail.channel.rtc.session	id	base	{"en_US": "Mail RTC session", "vi_VN": "Phiên RTC email"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
553	\N	\N	mailing.mailing	calendar_date DESC	base	{"en_US": "Mass Mailing", "vi_VN": "Gửi mail hàng loạt"}	 Mass Mailing models the sending of emails to a list of recipients for a mass mailing campaign.	f	\N	\N	t	t	f	\N	\N	\N	\N
188	\N	\N	mail.channel	id	base	{"en_US": "Discussion Channel", "vi_VN": "Kênh thảo luận"}	 Chat Session\n        Reprensenting a conversation between users.\n        It extends the base method for anonymous usage.\n    	f	\N	\N	t	f	f	\N	\N	\N	\N
189	\N	\N	mail.guest	id	base	{"en_US": "Guest", "vi_VN": "Khách"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
190	\N	\N	mail.ice.server	id	base	{"en_US": "ICE server", "vi_VN": "Máy chủ ICE"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
549	\N	\N	mailing.contact.subscription	id	base	{"en_US": "Mass Mailing Subscription Information", "vi_VN": "Thông tin đăng ký thư hàng loạt"}	 Intermediate model between mass mailing list and mass mailing contact\n        Indicates if a contact is opted out for a particular list\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
554	\N	\N	mailing.filter	create_date DESC	base	{"en_US": "Mailing Favorite Filters", "vi_VN": "Bộ lọc thư yêu thích"}	 This model stores mass mailing or marketing campaign domain as filters\n    (quite similar to 'ir.filters' but dedicated to mailing apps). Frequently\n    used domains can be reused easily. 	f	\N	\N	f	f	f	\N	\N	\N	\N
215	\N	\N	mail.compose.message	id	base	{"en_US": "Email composition wizard", "vi_VN": "Đồ thuật soạn thảo email"}	 Generic message composition wizard. You may inherit from this wizard\n        at model and view levels to provide specific features.\n\n        The behavior of the wizard depends on the composition_mode field:\n        - 'comment': post on a record. The wizard is pre-populated via ``get_record_data``\n        - 'mass_mail': wizard in mass mailing mode where the mail details can\n            contain template placeholders that will be merged with actual data\n            before being sent to each recipient.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
570	\N	\N	project.project	sequence, name, id	base	{"en_US": "Project", "vi_VN": "Dự án"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	t	t	f	\N	\N	\N	\N
569	\N	\N	project.task.type	sequence, id	base	{"en_US": "Task Stage", "vi_VN": "Giai đoạn của nhiệm vụ"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
571	\N	1	project.task	priority desc, sequence, id desc	base	{"en_US": "Task", "vi_VN": "Công việc"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	2025-06-18 16:05:08.12888	t	t	f	7832	Create a Task	create_task	t
575	\N	\N	report.project.task.user	name desc, project_id	base	{"en_US": "Tasks Analysis", "vi_VN": "Phân tích nhiệm vụ"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
572	\N	\N	project.tags	id	base	{"en_US": "Project Tags", "vi_VN": "Thẻ dự án"}	 Tags of project's tasks 	f	\N	\N	f	f	f	\N	\N	\N	\N
573	\N	\N	project.collaborator	id	base	{"en_US": "Collaborators in project shared", "vi_VN": "Cộng tác viên dự án đã chia sẻ"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
576	\N	\N	project.task.burndown.chart.report	date	base	{"en_US": "Burndown Chart", "vi_VN": "Sơ đồ chi tiết"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
216	\N	\N	mail.resend.message	id	base	{"en_US": "Email resend wizard", "vi_VN": "Tính năng gửi lại email"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
432	\N	\N	account.account.tag	id	base	{"en_US": "Account Tag", "vi_VN": "Thẻ tài khoản"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
439	\N	\N	account.tax	sequence,id	base	{"en_US": "Tax", "vi_VN": "Thuế"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
433	\N	\N	account.account	is_off_balance, code, company_id	base	{"en_US": "Account", "vi_VN": "Tài khoản"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	t	f	f	\N	\N	\N	\N
565	\N	\N	project.project.stage	sequence, id	base	{"en_US": "Project Stage", "vi_VN": "Giai đoạn dự án"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
359	\N	\N	account.analytic.plan	complete_name asc	base	{"en_US": "Analytic Plans", "vi_VN": "Các Kế hoạch Phân tích"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
362	\N	\N	account.analytic.line	date desc, id desc	base	{"en_US": "Analytic Line", "vi_VN": "Dòng phân tích"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
363	\N	\N	analytic.mixin	id	base	{"en_US": "Analytic Mixin", "vi_VN": "Kết hợp Phân tích"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
365	\N	\N	base.module.install.request	id	base	{"en_US": "Module Activation Request", "vi_VN": "Yêu cầu kích hoạt phân hệ"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
366	\N	\N	base.module.install.review	id	base	{"en_US": "Module Activation Review", "vi_VN": "Xem lại kích hoạt phân hệ"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
367	\N	\N	google.gmail.mixin	id	base	{"en_US": "Google Gmail Mixin", "vi_VN": "Google Gmail Mixin"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
368	\N	\N	mail.bot	id	base	{"en_US": "Mail Bot", "vi_VN": "Mail Bot"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
369	\N	\N	phone.blacklist	id	base	{"en_US": "Phone Blacklist", "vi_VN": "Phone Blacklist"}	 Blacklist of phone numbers. Used to avoid sending unwanted messages to people. 	f	\N	\N	t	f	f	\N	\N	\N	\N
370	\N	\N	mail.thread.phone	id	base	{"en_US": "Phone Blacklist Mixin", "vi_VN": "Phone Blacklist Mixin"}	 Purpose of this mixin is to offer two services\n\n      * compute a sanitized phone number based on ´´_sms_get_number_fields´´.\n        It takes first sanitized value, trying each field returned by the\n        method (see ``MailThread._sms_get_number_fields()´´ for more details\n        about the usage of this method);\n      * compute blacklist state of records. It is based on phone.blacklist\n        model and give an easy-to-use field and API to manipulate blacklisted\n        records;\n\n    Main API methods\n\n      * ``_phone_set_blacklisted``: set recordset as blacklisted;\n      * ``_phone_reset_blacklisted``: reactivate recordset (even if not blacklisted\n        this method can be called safely);\n    	f	\N	\N	t	f	f	\N	\N	\N	\N
373	\N	\N	privacy.lookup.wizard	id	base	{"en_US": "Privacy Lookup Wizard", "vi_VN": "Tính năng tra cứu quyền riêng tư"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
374	\N	\N	privacy.lookup.wizard.line	id	base	{"en_US": "Privacy Lookup Wizard Line", "vi_VN": "Dòng tính năng tra cứu quyền riêng tư"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
499	\N	\N	account.edi.xml.ubl_nl	id	base	{"en_US": "SI-UBL 2.0 (NLCIUS)", "vi_VN": "SI-UBL 2.0 (NLCIUS)"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
360	\N	\N	account.analytic.applicability	id	base	{"en_US": "Analytic Plan's Applicabilities", "vi_VN": "Khả năng Áp dụng Kế hoạch Phân tích"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
378	\N	\N	product.attribute.value	attribute_id, sequence, id	base	{"en_US": "Attribute Value", "vi_VN": "Giá trị thuộc tính"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
379	\N	\N	product.template.attribute.line	attribute_id, id	base	{"en_US": "Product Template Attribute Line", "vi_VN": "Dòng thuộc tính mẫu sản phẩm"}	Attributes available on product.template with their selected values in a m2m.\n    Used as a configuration model to generate the appropriate product.template.attribute.value	f	\N	\N	f	f	f	\N	\N	\N	\N
380	\N	\N	product.template.attribute.value	attribute_line_id, product_attribute_value_id, id	base	{"en_US": "Product Template Attribute Value", "vi_VN": "Giá trị thuộc tính mẫu sản phẩm"}	Materialized relationship between attribute values\n    and product template generated by the product.template.attribute.line	f	\N	\N	f	f	f	\N	\N	\N	\N
381	\N	\N	product.template.attribute.exclusion	product_tmpl_id, id	base	{"en_US": "Product Template Attribute Exclusion", "vi_VN": "Loại trừ thuộc tính mẫu sản phẩm"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
382	\N	\N	product.attribute.custom.value	custom_product_template_attribute_value_id, id	base	{"en_US": "Product Attribute Custom Value", "vi_VN": "Giá trị tùy chỉnh của thuộc tính sản phẩm"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
388	\N	\N	product.tag	id	base	{"en_US": "Product Tag", "vi_VN": "Thẻ sản phẩm"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
389	\N	\N	report.product.report_producttemplatelabel	id	base	{"en_US": "Product Label Report", "vi_VN": "Báo cáo nhãn sản phẩm"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
390	\N	\N	report.product.report_producttemplatelabel_dymo	id	base	{"en_US": "Product Label Report", "vi_VN": "Báo cáo nhãn sản phẩm"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
391	\N	\N	report.product.report_pricelist	id	base	{"en_US": "Pricelist Report", "vi_VN": "Báo cáo bảng giá"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
393	\N	\N	crm.team.member	create_date ASC, id	base	{"en_US": "Sales Team Member", "vi_VN": "Thành viên đội ngũ kinh doanh"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	t	f	f	\N	\N	\N	\N
394	\N	\N	crm.team	sequence ASC, create_date DESC, id DESC	base	{"en_US": "Sales Team", "vi_VN": "Đội ngũ kinh doanh"}	 A mixin for models that inherits mail.alias. This mixin initializes the\n        alias_id column in database, and manages the expected one-to-one\n        relation between your model and mail aliases.\n    	f	\N	\N	t	f	f	\N	\N	\N	\N
395	\N	\N	crm.tag	id	base	{"en_US": "CRM Tag", "vi_VN": "Thẻ CRM"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
396	\N	\N	spreadsheet.dashboard.group	sequence	base	{"en_US": "Group of dashboards", "vi_VN": "Nhóm trang tổng quan"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
387	\N	\N	product.supplierinfo	sequence, min_qty DESC, price, id	base	{"en_US": "Supplier Pricelist", "vi_VN": "Bảng giá nhà cung cấp"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
397	\N	\N	spreadsheet.dashboard	sequence	base	{"en_US": "Spreadsheet Dashboard", "vi_VN": "Trang tổng quan bảng tính"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
398	\N	\N	iap.autocomplete.api	id	base	{"en_US": "IAP Partner Autocomplete API", "vi_VN": "IAP API tự động hoàn thành đối tác"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
399	\N	\N	res.partner.autocomplete.sync	id	base	{"en_US": "Partner Autocomplete Sync", "vi_VN": "Partner Autocomplete Sync"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
400	\N	\N	portal.mixin	id	base	{"en_US": "Portal Mixin", "vi_VN": "Portal Mixin"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
401	\N	\N	portal.share	id	base	{"en_US": "Portal Sharing", "vi_VN": "Portal Sharing"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
403	\N	\N	portal.wizard.user	id	base	{"en_US": "Portal User Config", "vi_VN": "Cấu hình Người dùng Portal"}	\n        A model to configure users in the portal wizard.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
408	\N	\N	sms.sms	id DESC	base	{"en_US": "Outgoing SMS", "vi_VN": "Outgoing SMS"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
409	\N	\N	sms.template	id	base	{"en_US": "SMS Templates", "vi_VN": "SMS Templates"}	Templates for sending SMS	f	\N	\N	f	f	f	\N	\N	\N	\N
410	\N	\N	sms.composer	id	base	{"en_US": "Send SMS Wizard", "vi_VN": "Send SMS Wizard"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
411	\N	\N	sms.resend.recipient	id	base	{"en_US": "Resend Notification", "vi_VN": "Resend Notification"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
412	\N	\N	sms.resend	id	base	{"en_US": "SMS Resend", "vi_VN": "SMS Resend"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
413	\N	\N	sms.template.preview	id	base	{"en_US": "SMS Template Preview", "vi_VN": "SMS Template Preview"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
414	\N	\N	sms.template.reset	id	base	{"en_US": "SMS Template Reset", "vi_VN": "Đặt lại mẫu SMS"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
564	\N	\N	project.milestone	deadline, is_reached desc, name	base	{"en_US": "Project Milestone", "vi_VN": "Mốc thời gian dự án"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	t	f	f	\N	\N	\N	\N
566	\N	\N	project.task.recurrence	id	base	{"en_US": "Task Recurrence", "vi_VN": "Chu kỳ lặp nhiệm vụ"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
512	\N	\N	sale.order.template.line	sale_order_template_id, sequence, id	base	{"en_US": "Quotation Template Line", "vi_VN": "Dòng mẫu báo giá"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
585	\N	\N	calendar.alarm_manager	id	base	{"en_US": "Event Alarm Manager", "vi_VN": "Quản lý cảnh báo sự kiện"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
586	\N	\N	calendar.filters	id	base	{"en_US": "Calendar Filters", "vi_VN": "Bộ lọc lịch "}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
587	\N	\N	calendar.event.type	id	base	{"en_US": "Event Meeting Type", "vi_VN": "Loại sự kiện"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
588	\N	\N	calendar.provider.config	id	base	{"en_US": "Calendar Provider Configuration Wizard", "vi_VN": "Lịch Tính năng cấu hình nhà cung cấp"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
415	\N	\N	snailmail.letter	id	base	{"en_US": "Snailmail Letter", "vi_VN": "Snailmail Letter"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
416	\N	\N	snailmail.confirm	id	base	{"en_US": "Snailmail Confirm", "vi_VN": "Snailmail Confirm"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
417	\N	\N	snailmail.letter.format.error	id	base	{"en_US": "Format Error Sending a Snailmail Letter", "vi_VN": "Format Error Sending a Snailmail Letter"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
418	\N	\N	snailmail.letter.missing.required.fields	id	base	{"en_US": "Update address of partner", "vi_VN": "Update address of partner"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
419	\N	\N	digest.digest	id	base	{"en_US": "Digest", "vi_VN": "Tập san"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
420	\N	\N	digest.tip	sequence	base	{"en_US": "Digest Tips", "vi_VN": "Mẹo tập san"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
421	\N	\N	payment.provider	module_state, state desc, sequence, name	base	{"en_US": "Payment Provider", "vi_VN": "Nhà cung cấp thanh toán"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
422	\N	\N	payment.icon	sequence, name	base	{"en_US": "Payment Icon", "vi_VN": "Biểu tượng thanh toán"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
423	\N	\N	payment.token	partner_id, id desc	base	{"en_US": "Payment Token", "vi_VN": "Mã thanh toán"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
424	\N	\N	payment.transaction	id desc	base	{"en_US": "Payment Transaction", "vi_VN": "Giao dịch thanh toán"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
425	\N	\N	payment.link.wizard	id	base	{"en_US": "Generate Sales Payment Link", "vi_VN": "Tạo liên kết thanh toán bán hàng"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
426	\N	\N	payment.provider.onboarding.wizard	id	base	{"en_US": "Payment provider onboarding wizard", "vi_VN": "Công cụ hướng dẫn về nhà cung cấp dịch vụ thanh toán"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
429	\N	\N	account.fiscal.position.tax	id	base	{"en_US": "Tax Mapping of Fiscal Position", "vi_VN": "Mapping thuế của vị trí tài chính"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
430	\N	\N	account.fiscal.position.account	id	base	{"en_US": "Accounts Mapping of Fiscal Position", "vi_VN": "Mapping tài khoản của vị trí tài chính"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
435	\N	\N	account.root	id	base	{"en_US": "Account codes first 2 digits", "vi_VN": "Hai số đầu của mã tài khoản"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
436	\N	\N	account.journal.group	id	base	{"en_US": "Account Journal Group", "vi_VN": "Nhóm bút toán theo sổ nhật kí"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
438	\N	\N	account.tax.group	sequence asc, id	base	{"en_US": "Tax Group", "vi_VN": "Nhóm thuế"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
440	\N	\N	account.tax.repartition.line	sequence, repartition_type, id	base	{"en_US": "Tax Repartition Line", "vi_VN": "Chi tiết phân bổ thuế"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
441	\N	\N	account.reconcile.model.partner.mapping	id	base	{"en_US": "Partner mapping for reconciliation models", "vi_VN": "Mapping đối tác cho mẫu đối chiếu"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
443	\N	\N	account.reconcile.model	sequence, id	base	{"en_US": "Preset to create journal entries during a invoices and payments matching", "vi_VN": "Đặt trước để tạo các mục nhật ký trong quá trình khớp hóa đơn và thanh toán"}	Populate factory part for account.reconcile.model.	f	\N	\N	t	f	f	\N	\N	\N	\N
444	\N	\N	account.payment.term	sequence, id	base	{"en_US": "Payment Terms", "vi_VN": "Các điều khoản thanh toán"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
445	\N	\N	account.payment.term.line	id	base	{"en_US": "Payment Terms Line", "vi_VN": "Chi tiết điều khoản thanh toán"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
448	\N	\N	account.partial.reconcile	id	base	{"en_US": "Partial Reconcile", "vi_VN": "Đối soát một phần"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
449	\N	\N	account.full.reconcile	id	base	{"en_US": "Full Reconcile", "vi_VN": "Đối soát toàn bộ"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
451	\N	\N	account.payment.method	id	base	{"en_US": "Payment Methods", "vi_VN": "Phương thức thanh toán"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
452	\N	\N	account.payment.method.line	sequence, id	base	{"en_US": "Payment Methods", "vi_VN": "Phương thức thanh toán"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
464	\N	\N	account.reconcile.model.line.template	id	base	{"en_US": "Reconcile Model Line Template", "vi_VN": "Chi tiết mẫu đối tượng đối soát"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
466	\N	\N	account.cash.rounding	id	base	{"en_US": "Account Cash Rounding", "vi_VN": "Tài khoản làm tròn tiền mặt"}	\n    In some countries, we need to be able to make appear on an invoice a rounding line, appearing there only because the\n    smallest coinage has been removed from the circulation. For example, in Switzerland invoices have to be rounded to\n    0.05 CHF because coins of 0.01 CHF and 0.02 CHF aren't used anymore.\n    see https://en.wikipedia.org/wiki/Cash_rounding for more details.\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
467	\N	\N	account.incoterms	id	base	{"en_US": "Incoterms", "vi_VN": "Điều khoản thương mại"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
468	\N	\N	account.report	id	base	{"en_US": "Accounting Report", "vi_VN": "Báo cáo kế toán"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
469	\N	\N	account.report.line	sequence, id	base	{"en_US": "Accounting Report Line", "vi_VN": "Chi tiết báo cáo kế toán"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
470	\N	\N	account.report.expression	id	base	{"en_US": "Accounting Report Expression", "vi_VN": "Biểu thức Báo cáo Kế toán"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
471	\N	\N	account.report.column	sequence, id	base	{"en_US": "Accounting Report Column", "vi_VN": "Cột báo cáo kế toán"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
472	\N	\N	account.report.external.value	date, id	base	{"en_US": "Accounting Report External Value", "vi_VN": "Báo cáo kế toán Giá trị bên ngoài"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
473	\N	\N	account.automatic.entry.wizard	id	base	{"en_US": "Create Automatic Entries", "vi_VN": "Tạo bút toán tự động"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
474	\N	\N	account.unreconcile	id	base	{"en_US": "Account Unreconcile", "vi_VN": "Tài khoản chưa đối soát"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
475	\N	\N	validate.account.move	id	base	{"en_US": "Validate Account Move", "vi_VN": "Xác nhận phát sinh"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
476	\N	\N	account.move.reversal	id	base	{"en_US": "Account Move Reversal", "vi_VN": "Đảo bút toán kế toán"}	\n    Account move reversal wizard, it cancel an account move by reversing it.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
477	\N	\N	account.resequence.wizard	id	base	{"en_US": "Remake the sequence of Journal Entries.", "vi_VN": "Tạo lại mã các bút toán."}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
478	\N	\N	account.financial.year.op	id	base	{"en_US": "Opening Balance of Financial Year", "vi_VN": "Số dư đầu kỳ của năm tài chính"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
479	\N	\N	account.setup.bank.manual.config	id	base	{"en_US": "Bank setup manual config", "vi_VN": "Thiết lập ngân hàng thủ công"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
480	\N	\N	account.invoice.send	id	base	{"en_US": "Account Invoice Send", "vi_VN": "Tài khoản gửi hóa đơn"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
482	\N	\N	account.tour.upload.bill	id	base	{"en_US": "Account tour upload bill", "vi_VN": "Hướng dẫn kế toán tải lên hóa đơn"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
483	\N	\N	account.tour.upload.bill.email.confirm	id	base	{"en_US": "Account tour upload bill email confirm", "vi_VN": "Hướng dẫn kế toán tải lên hóa đơn có email xác nhận"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
484	\N	\N	account.accrued.orders.wizard	id	base	{"en_US": "Accrued Orders Wizard", "vi_VN": "Hướng dẫn đơn hàng đã dồn tích"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
485	\N	\N	account.invoice.report	invoice_date desc	base	{"en_US": "Invoices Statistics", "vi_VN": "Thống kê hóa đơn"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
486	\N	\N	report.account.report_invoice	id	base	{"en_US": "Account report without payment lines", "vi_VN": "Báo cáo tài khoản không kèm chi tiết thanh toán"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
500	\N	\N	account.edi.xml.ubl_efff	id	base	{"en_US": "E-FFF (BE)", "vi_VN": "E-FFF (BE)"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
487	\N	\N	report.account.report_invoice_with_payments	id	base	{"en_US": "Account report with payment lines", "vi_VN": "Báo cáo tài khoản kèm chi tiết thanh toán"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
488	\N	\N	report.account.report_hash_integrity	id	base	{"en_US": "Get hash integrity result as PDF.", "vi_VN": "Nhận kết quả hash integrity dưới dạng PDF."}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
489	\N	\N	account.edi.format	id	base	{"en_US": "EDI format", "vi_VN": "Định dạng EDI"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
490	\N	\N	account.edi.document	id	base	{"en_US": "Electronic Document for an account.move", "vi_VN": "Tài liệu điện tử cho account.move"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
491	\N	\N	payment.refund.wizard	id	base	{"en_US": "Payment Refund Wizard", "vi_VN": "Hướng dẫn thanh toán hoàn tiền"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
492	\N	\N	snailmail.confirm.invoice	id	base	{"en_US": "Snailmail Confirm Invoice", "vi_VN": "Snailmail Confirm Invoice"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
591	\N	\N	crm.lost.reason	id	base	{"en_US": "Opp. Lost Reason", "vi_VN": "Lý do mất"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
593	\N	\N	crm.lead.scoring.frequency	id	base	{"en_US": "Lead Scoring Frequency", "vi_VN": "Tần suất tính điểm lead"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
594	\N	\N	crm.lead.scoring.frequency.field	id	base	{"en_US": "Fields that can be used for predictive lead scoring computation", "vi_VN": "Các trường có thể được sử dụng để tính điểm dự đoán cho lead"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
597	\N	\N	crm.lead.lost	id	base	{"en_US": "Get Lost Reason", "vi_VN": "Xem lý do mất"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
600	\N	\N	crm.merge.opportunity	id	base	{"en_US": "Merge Opportunities", "vi_VN": "Hợp nhất các cơ hội"}	\n        Merge opportunities together.\n        If we're talking about opportunities, it's just because it makes more sense\n        to merge opps than leads, because the leads are more ephemeral objects.\n        But since opportunities are leads, it's also possible to merge leads\n        together (resulting in a new lead), or leads and opps together (resulting\n        in a new opp).\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
601	\N	\N	crm.lead.pls.update	id	base	{"en_US": "Update the probabilities", "vi_VN": "Cập nhật xác suất"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
493	\N	\N	account.edi.common	id	base	{"en_US": "Common functions for EDI documents: generate the data, the constraints, etc", "vi_VN": "Các chức năng chung cho tài liệu EDI: tạo dữ liệu, ràng buộc,..."}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
494	\N	\N	account.edi.xml.cii	id	base	{"en_US": "Factur-x/XRechnung CII 2.2.0", "vi_VN": "Factur-x/XRechnung CII 2.2.0"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
495	\N	\N	account.edi.xml.ubl_20	id	base	{"en_US": "UBL 2.0", "vi_VN": "UBL 2.0"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
496	\N	\N	account.edi.xml.ubl_21	id	base	{"en_US": "UBL 2.1", "vi_VN": "UBL 2.1"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
497	\N	\N	account.edi.xml.ubl_bis3	id	base	{"en_US": "UBL BIS Billing 3.0.12", "vi_VN": "UBL BIS Billing 3.0.12"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
498	\N	\N	account.edi.xml.ubl_de	id	base	{"en_US": "BIS3 DE (XRechnung)", "vi_VN": "BIS3 DE (XRechnung)"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
508	\N	\N	sale.advance.payment.inv	id	base	{"en_US": "Sales Advance Payment Invoice", "vi_VN": "Hoá đơn thanh toán tạm ứng"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
510	\N	\N	sale.order.option	sequence, id	base	{"en_US": "Sale Options", "vi_VN": "Tùy chọn bán hàng"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
511	\N	\N	sale.order.template	id	base	{"en_US": "Quotation Template", "vi_VN": "Mẫu báo giá"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
513	\N	\N	sale.order.template.option	id	base	{"en_US": "Quotation Template Option", "vi_VN": "Tùy chọn mẫu báo giá"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
515	\N	\N	gamification.badge.user	create_date desc	base	{"en_US": "Gamification User Badge", "vi_VN": "Huy  hiệu người dùng Gamification"}	User having received a badge	f	\N	\N	f	f	f	\N	\N	\N	\N
516	\N	\N	gamification.challenge	end_date, start_date, name, id	base	{"en_US": "Gamification Challenge", "vi_VN": "Thử thách Gamification"}	Gamification challenge\n\n    Set of predifined objectives assigned to people with rules for recurrence and\n    rewards\n\n    If 'user_ids' is defined and 'period' is different than 'one', the set will\n    be assigned to the users for each period (eg: every 1st of each month if\n    'monthly' is selected)\n    	f	\N	\N	t	f	f	\N	\N	\N	\N
517	\N	\N	gamification.challenge.line	sequence, id	base	{"en_US": "Gamification generic goal for challenge", "vi_VN": "Mục tiêu chung cho trò chơi"}	Gamification challenge line\n\n    Predefined goal for 'gamification_challenge'\n    These are generic list of goals with only the target goal defined\n    Should only be created for the gamification.challenge object\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
518	\N	\N	gamification.goal	start_date desc, end_date desc, definition_id, id	base	{"en_US": "Gamification Goal", "vi_VN": "Mục tiêu Gamification"}	Goal instance for a user\n\n    An individual goal for a user on a specified time period	f	\N	\N	f	f	f	\N	\N	\N	\N
519	\N	\N	gamification.goal.definition	id	base	{"en_US": "Gamification Goal Definition", "vi_VN": "Định nghĩa mục tiêu gamification"}	Goal definition\n\n    A goal definition contains the way to evaluate an objective\n    Each module wanting to be able to set goals to the users needs to create\n    a new gamification_goal_definition\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
520	\N	\N	gamification.karma.rank	karma_min	base	{"en_US": "Rank based on karma", "vi_VN": "Rank based on karma"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
521	\N	\N	gamification.karma.tracking	tracking_date DESC	base	{"en_US": "Track Karma Changes", "vi_VN": "Track Karma Changes"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
522	\N	\N	gamification.goal.wizard	id	base	{"en_US": "Gamification Goal Wizard", "vi_VN": "Cửa sổ mục tiêu gamification"}	Wizard to update a manual goal	t	\N	\N	f	f	f	\N	\N	\N	\N
523	\N	\N	gamification.badge.user.wizard	id	base	{"en_US": "Gamification User Badge Wizard", "vi_VN": "Cửa sổ huy hiệu người dùng gamifitaion"}	 Wizard allowing to grant a badge to a user	t	\N	\N	f	f	f	\N	\N	\N	\N
524	\N	\N	hr.contract.type	sequence	base	{"en_US": "Contract Type", "vi_VN": "Kiểu Hợp đồng"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
525	\N	\N	hr.employee.base	name	base	{"en_US": "Basic Employee", "vi_VN": "Người dùng cơ bản"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
527	\N	\N	hr.employee.category	id	base	{"en_US": "Employee Category", "vi_VN": "Nhóm nhân viên"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
529	\N	\N	hr.department	name	base	{"en_US": "Department", "vi_VN": "Phòng/Ban"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	t	f	f	\N	\N	\N	\N
526	\N	\N	hr.employee	name	base	{"en_US": "Employee", "vi_VN": "Nhân viên"}	\n    NB: Any field only available on the model hr.employee (i.e. not on the\n    hr.employee.public model) should have `groups="hr.group_hr_user"` on its\n    definition to avoid being prefetched when the user hasn't access to the\n    hr.employee model. Indeed, the prefetch loads the data for all the fields\n    that are available according to the group defined on them.\n    	f	\N	\N	t	t	f	\N	\N	\N	\N
530	\N	\N	hr.departure.reason	sequence	base	{"en_US": "Departure Reason", "vi_VN": "Lý do nghỉ việc"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
531	\N	\N	hr.job	sequence	base	{"en_US": "Job Position", "vi_VN": "Vị trí công việc"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	t	f	f	\N	\N	\N	\N
533	\N	\N	hr.plan.activity.type	id	base	{"en_US": "Plan activity type", "vi_VN": "Lập kế hoạch loại hoạt động"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
534	\N	\N	hr.work.location	name	base	{"en_US": "Work Location", "vi_VN": "Vị trí làm việc"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
535	\N	\N	hr.plan.wizard	id	base	{"en_US": "Plan Wizard", "vi_VN": "Tính năng kế hoạch"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
602	\N	\N	crm.iap.lead.helpers	id	base	{"en_US": "Helper methods for crm_iap_mine modules", "vi_VN": "Phương thức trợ giúp cho phân hệ crm_iap_mine"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
603	\N	\N	crm.iap.lead.industry	sequence,id	base	{"en_US": "CRM IAP Lead Industry", "vi_VN": "Ngành nghề lead IAP trong CRM "}	 Industry Tags of Acquisition Rules 	f	\N	\N	f	f	f	\N	\N	\N	\N
604	\N	\N	crm.iap.lead.role	id	base	{"en_US": "People Role", "vi_VN": "Con người vai trò"}	 CRM Reveal People Roles for People 	f	\N	\N	f	f	f	\N	\N	\N	\N
605	\N	\N	crm.iap.lead.seniority	id	base	{"en_US": "People Seniority", "vi_VN": "Con người thâm niên"}	 Seniority for People Rules 	f	\N	\N	f	f	f	\N	\N	\N	\N
606	\N	\N	crm.iap.lead.mining.request	id	base	{"en_US": "CRM Lead Mining Request", "vi_VN": "Yêu cầu tìm lead trong CRM"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
538	\N	\N	link.tracker.code	id	base	{"en_US": "Link Tracker Code", "vi_VN": "Link Tracker Code"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
539	\N	\N	link.tracker.click	id	base	{"en_US": "Link Tracker Click", "vi_VN": "Liên kết theo dõi số lần nhấn"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
540	\N	\N	rating.rating	write_date desc, id desc	base	{"en_US": "Rating", "vi_VN": "Đánh giá"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
541	\N	\N	rating.mixin	id	base	{"en_US": "Rating Mixin", "vi_VN": "Rating Mixin"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
542	\N	\N	rating.parent.mixin	id	base	{"en_US": "Rating Parent Mixin", "vi_VN": "Rating Parent Mixin"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
607	\N	\N	crm.quotation.partner	id	base	{"en_US": "Create new or use existing Customer on new Quotation", "vi_VN": "Tạo mới hoặc dùng một Khách hàng có sẵn cho Báo giá mới"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
610	\N	\N	website.seo.metadata	id	base	{"en_US": "SEO metadata", "vi_VN": "Siêu dữ liệu SEO"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
611	\N	\N	website.cover_properties.mixin	id	base	{"en_US": "Cover Properties Website Mixin", "vi_VN": "Bìa Thuộc tính Trang web Mixin"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
612	\N	\N	website.multi.mixin	id	base	{"en_US": "Multi Website Mixin", "vi_VN": "Đa trang web Mixin"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
614	\N	\N	website.published.multi.mixin	id	base	{"en_US": "Multi Website Published Mixin", "vi_VN": "Nhiều trang web được xuất bản Mixin"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
615	\N	\N	website.searchable.mixin	id	base	{"en_US": "Website Searchable Mixin", "vi_VN": "Mixin có thể tìm kiếm website"}	Mixin to be inherited by all models that need to searchable through website	f	\N	\N	f	f	f	\N	\N	\N	\N
616	\N	\N	website	sequence, id	base	{"en_US": "Website", "vi_VN": "Trang web"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
617	\N	\N	website.menu	sequence, id	base	{"en_US": "Website Menu", "vi_VN": "Trình đơn Website"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
618	\N	\N	website.page	website_id	base	{"en_US": "Page", "vi_VN": "Trang"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
619	\N	\N	website.route	path	base	{"en_US": "All Website Route", "vi_VN": "Mọi tuyến website"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
620	\N	\N	website.rewrite	id	base	{"en_US": "Website rewrite", "vi_VN": "Viết lại trang web"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
621	\N	\N	theme.ir.asset	id	base	{"en_US": "Theme Asset", "vi_VN": "Asset chủ đề"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
622	\N	\N	theme.ir.ui.view	id	base	{"en_US": "Theme UI View", "vi_VN": "Giao diện chủ đề"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
623	\N	\N	theme.ir.attachment	id	base	{"en_US": "Theme Attachments", "vi_VN": "Chủ đề đính kèm"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
624	\N	\N	theme.website.menu	id	base	{"en_US": "Website Theme Menu", "vi_VN": "Menu chủ đề Website"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
625	\N	\N	theme.website.page	id	base	{"en_US": "Website Theme Page", "vi_VN": "Trang chủ đề Website"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
626	\N	\N	theme.utils	id	base	{"en_US": "Theme Utils", "vi_VN": "Chủ đề Utils"}	\n    Updates the base class to support setting xids directly in create by\n    providing an "id" key (otherwise stripped by create) during an import\n    (which should strip 'id' from the input data anyway)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
627	\N	\N	website.configurator.feature	sequence	base	{"en_US": "Website Configurator Feature", "vi_VN": "Tính năng bộ định cấu hình website"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
629	\N	\N	website.snippet.filter	name ASC	base	{"en_US": "Website Snippet Filter", "vi_VN": "Bộ lọc đoạn mã trang web"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
630	\N	\N	website.track	visit_datetime DESC	base	{"en_US": "Visited Pages", "vi_VN": "Trang đã xem"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
631	\N	\N	website.visitor	id DESC	base	{"en_US": "Website Visitor", "vi_VN": "Khách truy cập website"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
632	\N	\N	website.robots	id	base	{"en_US": "Robots.txt Editor", "vi_VN": "Trình chỉnh sửa Robots.txt"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
543	\N	\N	survey.survey	create_date DESC	base	{"en_US": "Survey", "vi_VN": "Khảo sát"}	This model defines additional actions on the 'survey.survey' model that\n       can be used to load a survey sample. The model defines a sample for:\n       (1) A feedback form\n       (2) A certification\n       (3) A live presentation\n    	f	\N	\N	t	t	f	\N	\N	\N	\N
544	\N	\N	survey.question	sequence,id	base	{"en_US": "Survey Question", "vi_VN": "Câu hỏi khảo sát"}	 Questions that will be asked in a survey.\n\n        Each question can have one of more suggested answers (eg. in case of\n        multi-answer checkboxes, radio buttons...).\n\n        Technical note:\n\n        survey.question is also the model used for the survey's pages (with the "is_page" field set to True).\n\n        A page corresponds to a "section" in the interface, and the fact that it separates the survey in\n        actual pages in the interface depends on the "questions_layout" parameter on the survey.survey model.\n        Pages are also used when randomizing questions. The randomization can happen within a "page".\n\n        Using the same model for questions and pages allows to put all the pages and questions together in a o2m field\n        (see survey.survey.question_and_page_ids) on the view side and easily reorganize your survey by dragging the\n        items around.\n\n        It also removes on level of encoding by directly having 'Add a page' and 'Add a question'\n        links on the tree view of questions, enabling a faster encoding.\n\n        However, this has the downside of making the code reading a little bit more complicated.\n        Efforts were made at the model level to create computed fields so that the use of these models\n        still seems somewhat logical. That means:\n        - A survey still has "page_ids" (question_and_page_ids filtered on is_page = True)\n        - These "page_ids" still have question_ids (questions located between this page and the next)\n        - These "question_ids" still have a "page_id"\n\n        That makes the use and display of these information at view and controller levels easier to understand.\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
545	\N	\N	survey.question.answer	sequence, id	base	{"en_US": "Survey Label", "vi_VN": "Nhãn khảo sát"}	 A preconfigured answer for a question. This model stores values used\n    for\n\n      * simple choice, multiple choice: proposed values for the selection /\n        radio;\n      * matrix: row and column values;\n\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
546	\N	\N	survey.user_input	create_date desc	base	{"en_US": "Survey User Input", "vi_VN": "Dữ liệu người dùng nhập vào khảo sát"}	 Metadata for a set of one user's answers to a particular survey 	f	\N	\N	t	t	f	\N	\N	\N	\N
547	\N	\N	survey.user_input.line	question_sequence, id	base	{"en_US": "Survey User Input Line", "vi_VN": "Các dòng nhập liệu của người dùng khảo sát"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
548	\N	\N	survey.invite	id	base	{"en_US": "Survey Invitation Wizard", "vi_VN": "Survey Invitation Wizard"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
550	\N	1	mailing.contact	email	base	{"en_US": "Mailing Contact", "vi_VN": "Mailing Contact"}	Model of a contact. This model is different from the partner model\n    because it holds only some basic information: name, email. The purpose is to\n    be able to deal with large contact list to email without bloating the partner\n    base.	f	\N	2025-06-18 16:05:09.115316	t	f	t	\N	Subscribe to Newsletter	create_mailing_contact	t
551	\N	\N	mailing.list	create_date DESC	base	{"en_US": "Mailing List", "vi_VN": "Danh sách liên hệ"}	Model of a contact list. 	f	\N	\N	f	f	f	\N	\N	\N	\N
552	\N	\N	mailing.trace	create_date DESC	base	{"en_US": "Mailing Statistics", "vi_VN": "Mailing Statistics"}	 MailingTrace models the statistics collected about emails. Those statistics\n    are stored in a separated model and table to avoid bloating the mail_mail table\n    with statistics values. This also allows to delete emails send with mass mailing\n    without loosing the statistics about them.\n\n    Note:: State management / Error codes / Failure types summary\n\n      * trace_status\n        'outgoing', 'sent', 'opened', 'replied',\n        'error', 'bouce', 'cancel'\n      * failure_type\n        # generic\n        'unknown',\n        # mass_mailing\n        "mail_email_invalid", "mail_smtp", "mail_email_missing"\n        # mass mailing mass mode specific codes\n        "mail_bl", "mail_optout", "mail_dup"\n        # mass_mailing_sms\n        'sms_number_missing', 'sms_number_format', 'sms_credit',\n        'sms_server', 'sms_acc'\n        # mass_mailing_sms mass mode specific codes\n        'sms_blacklist', 'sms_duplicate', 'sms_optout',\n      * cancel:\n        * mail: set in get_mail_values in composer, if email is blacklisted\n          (mail) or in opt_out / seen list (mass_mailing) or email_to is void\n          or incorrectly formatted (mass_mailing) - based on mail cancel state\n        * sms: set in _prepare_mass_sms_trace_values in composer if sms is\n          in cancel state; either blacklisted (sms) or in opt_out / seen list\n          (sms);\n        * void mail / void sms number -> error (mail_missing, sms_number_missing)\n        * invalid mail / invalid sms number -> error (RECIPIENT, sms_number_format)\n      * exception: set in  _postprocess_sent_message (_postprocess_iap_sent_sms)\n        if mail (sms) not sent with failure type, reset if sent;\n      * sent: set in _postprocess_sent_message (_postprocess_iap_sent_sms) if\n        mail (sms) sent\n      * clicked: triggered by add_click\n      * opened: triggered by add_click + blank gif (mail) + gateway reply (mail)\n      * replied: triggered by gateway reply (mail)\n      * bounced: triggered by gateway bounce (mail) or in _prepare_mass_sms_trace_values\n        if sms_number_format error when sending sms (sms)\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
557	\N	\N	mailing.trace.report	id	base	{"en_US": "Mass Mailing Statistics", "vi_VN": "Thống kê gửi email hàng loạt"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
558	\N	\N	mailing.contact.import	id	base	{"en_US": "Mailing Contact Import", "vi_VN": "Nhập liên hệ gửi thư"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
559	\N	\N	mailing.contact.to.list	id	base	{"en_US": "Add Contacts to Mailing List", "vi_VN": "Thêm liên hệ vào danh sách liên hệ"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
560	\N	\N	mailing.list.merge	id	base	{"en_US": "Merge Mass Mailing List", "vi_VN": "Gộp danh sách liên hệ"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
561	\N	\N	mailing.mailing.test	id	base	{"en_US": "Sample Mail Wizard", "vi_VN": "Đồ thuật gửi mail mẫu"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
562	\N	\N	mailing.mailing.schedule.date	id	base	{"en_US": "schedule a mailing", "vi_VN": "lên lịch một thư"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
567	\N	\N	project.task.stage.personal	id	base	{"en_US": "Personal Task Stage", "vi_VN": "Trạng thái nhiệm vụ cá nhân"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
568	\N	\N	project.update	date desc	base	{"en_US": "Project Update", "vi_VN": "Cập nhật dự án"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	t	t	f	\N	\N	\N	\N
577	\N	\N	project.task.type.delete.wizard	id	base	{"en_US": "Project Stage Delete Wizard", "vi_VN": "Công cụ xóa giai đoạn dự án"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
578	\N	\N	project.share.wizard	id	base	{"en_US": "Project Sharing", "vi_VN": "Chia sẻ dự án"}	 Model super-class for transient records, meant to be temporarily\n    persistent, and regularly vacuum-cleaned.\n\n    A TransientModel has a simplified access rights management, all users can\n    create new records, and may only access the records they created. The\n    superuser has unrestricted access to all TransientModel records.\n    	t	\N	\N	f	f	f	\N	\N	\N	\N
633	\N	\N	chatbot.message	create_date desc, id desc	base	{"en_US": "Chatbot Message", "vi_VN": "Tin nhắn chatbot"}	 Chatbot Mail Message\n        We create a new model to store the related step to a mail.message and the user's answer.\n        We do this in a new model to avoid bloating the 'mail.message' model.\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
634	\N	\N	chatbot.script	title, id	base	{"en_US": "Chatbot Script", "vi_VN": "Kịch bản chatbot"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
635	\N	\N	chatbot.script.answer	script_step_id, sequence, id	base	{"en_US": "Chatbot Script Answer", "vi_VN": "Câu trả lời kịch bản chatbot"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
636	\N	\N	chatbot.script.step	sequence, id	base	{"en_US": "Chatbot Script Step", "vi_VN": "Bước kịch bản chatbot"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
639	\N	\N	im_livechat.channel	id	base	{"en_US": "Livechat Channel", "vi_VN": "Kênh Chat trực tuyến"}	 Livechat Channel\n        Define a communication channel, which can be accessed with 'script_external' (script tag to put on\n        external website), 'script_internal' (code to be integrated with odoo website) or via 'web_page' link.\n        It provides rating tools, and access rules for anonymous people.\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
640	\N	\N	im_livechat.channel.rule	sequence asc	base	{"en_US": "Livechat Channel Rules", "vi_VN": "Quy tắc kênh trò chuyện trực tiếp"}	 Channel Rules\n        Rules defining access to the channel (countries, and url matching). It also provide the 'auto pop'\n        option to open automatically the conversation.\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
642	\N	\N	im_livechat.report.channel	start_date, technical_name	base	{"en_US": "Livechat Support Channel Report", "vi_VN": "Báo cáo kênh hỗ trợ trò chuyện trực tiếp"}	 Livechat Support Report on the Channels 	f	\N	\N	f	f	f	\N	\N	\N	\N
643	\N	\N	im_livechat.report.operator	livechat_channel_id, partner_id	base	{"en_US": "Livechat Support Operator Report", "vi_VN": "Báo cáo nhân viên hỗ trợ trò chuyện trực tiếp"}	 Livechat Support Report on the Operator 	f	\N	\N	f	f	f	\N	\N	\N	\N
644	\N	\N	note.stage	sequence	base	{"en_US": "Note Stage", "vi_VN": "Giai đoạn Ghi chú"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
645	\N	\N	note.tag	id	base	{"en_US": "Note Tag", "vi_VN": "Thẻ Ghi chú"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	f	f	f	\N	\N	\N	\N
646	\N	\N	note.note	sequence, id desc	base	{"en_US": "Note", "vi_VN": "Ghi chú"}	 Main super-class for regular database-persisted Odoo models.\n\n    Odoo models are created by inheriting from this class::\n\n        class user(Model):\n            ...\n\n    The system will later instantiate the class once per database (on\n    which the class' module is installed).\n    	f	\N	\N	t	t	f	\N	\N	\N	\N
\.


--
