add tncsc_deployment module with custom dark theme event kanban styling and assets
@ -45,8 +45,15 @@ that applies to the community_* product modules.
|
||||
'data/events_data.xml',
|
||||
'data/ir_cron.xml',
|
||||
'views/website_pages.xml',
|
||||
'views/event_kanban_views.xml',
|
||||
],
|
||||
'demo': [],
|
||||
'assets': {
|
||||
'web.assets_backend': [
|
||||
'tncsc_deployment/static/src/scss/event_kanban.scss',
|
||||
'tncsc_deployment/static/src/xml/kanban_empty_column.xml',
|
||||
],
|
||||
},
|
||||
'application': False,
|
||||
'installable': True,
|
||||
'post_init_hook': 'post_init_hook',
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo noupdate="0">
|
||||
<!-- Real upcoming event, matching what's live on tncsc.com/events (2026-08-20).
|
||||
Update/replace once TNCSC confirms the venue address. -->
|
||||
<!-- Venues -->
|
||||
<record id="partner_summer_picnic_venue" model="res.partner">
|
||||
<field name="name">Mississauga, Ontario</field>
|
||||
<field name="city">Mississauga</field>
|
||||
@ -9,11 +8,71 @@
|
||||
<field name="country_id" ref="base.ca"/>
|
||||
<field name="type">other</field>
|
||||
</record>
|
||||
|
||||
<record id="partner_diwali_venue" model="res.partner">
|
||||
<field name="name">Toronto, ON</field>
|
||||
<field name="city">Toronto</field>
|
||||
<field name="state_id" ref="base.state_ca_on"/>
|
||||
<field name="country_id" ref="base.ca"/>
|
||||
<field name="type">other</field>
|
||||
</record>
|
||||
|
||||
<record id="partner_tamil_new_year_venue" model="res.partner">
|
||||
<field name="name">Scarborough, ON</field>
|
||||
<field name="city">Scarborough</field>
|
||||
<field name="state_id" ref="base.state_ca_on"/>
|
||||
<field name="country_id" ref="base.ca"/>
|
||||
<field name="type">other</field>
|
||||
</record>
|
||||
|
||||
<record id="partner_pongal_venue" model="res.partner">
|
||||
<field name="name">Brampton, ON</field>
|
||||
<field name="city">Brampton</field>
|
||||
<field name="state_id" ref="base.state_ca_on"/>
|
||||
<field name="country_id" ref="base.ca"/>
|
||||
<field name="type">other</field>
|
||||
</record>
|
||||
|
||||
<!-- 1. TNCSC's Summer Picnic 2026 (New) -->
|
||||
<record id="event_summer_picnic_2026" model="event.event">
|
||||
<field name="name">TNCSC's Summer Picnic 2026</field>
|
||||
<field name="stage_id" ref="event.event_stage_new"/>
|
||||
<field name="date_begin" eval="'2026-10-11 14:00:00'"/>
|
||||
<field name="date_end" eval="'2026-10-11 20:00:00'"/>
|
||||
<field name="date_end" eval="'2026-10-12 14:00:00'"/>
|
||||
<field name="address_id" ref="partner_summer_picnic_venue"/>
|
||||
<field name="website_published">True</field>
|
||||
</record>
|
||||
|
||||
<!-- 2. Diwali Celebration (Booked) -->
|
||||
<record id="event_diwali_celebration_2026" model="event.event">
|
||||
<field name="name">Diwali Celebration</field>
|
||||
<field name="stage_id" ref="event.event_stage_booked"/>
|
||||
<field name="subtitle">A festival of lights and togetherness.</field>
|
||||
<field name="date_begin" eval="'2026-11-05 12:30:00'"/>
|
||||
<field name="date_end" eval="'2026-11-05 16:30:00'"/>
|
||||
<field name="address_id" ref="partner_diwali_venue"/>
|
||||
<field name="website_published">True</field>
|
||||
</record>
|
||||
|
||||
<!-- 3. Tamil New Year Festival (Announced) -->
|
||||
<record id="event_tamil_new_year_2026" model="event.event">
|
||||
<field name="name">Tamil New Year Festival</field>
|
||||
<field name="stage_id" ref="event.event_stage_announced"/>
|
||||
<field name="subtitle">Culture | Food | Performances</field>
|
||||
<field name="date_begin" eval="'2026-04-14 11:30:00'"/>
|
||||
<field name="date_end" eval="'2026-04-14 15:30:00'"/>
|
||||
<field name="address_id" ref="partner_tamil_new_year_venue"/>
|
||||
<field name="website_published">True</field>
|
||||
</record>
|
||||
|
||||
<!-- 4. Pongal Celebration (Ended) -->
|
||||
<record id="event_pongal_celebration_2026" model="event.event">
|
||||
<field name="name">Pongal Celebration</field>
|
||||
<field name="stage_id" ref="event.event_stage_done"/>
|
||||
<field name="subtitle">Tradition | Unity | Community</field>
|
||||
<field name="date_begin" eval="'2026-01-18 04:30:00'"/>
|
||||
<field name="date_end" eval="'2026-01-18 09:30:00'"/>
|
||||
<field name="address_id" ref="partner_pongal_venue"/>
|
||||
<field name="website_published">True</field>
|
||||
</record>
|
||||
</odoo>
|
||||
|
||||
BIN
addons/tncsc_deployment/static/src/img/gold_lotus_logo.png
Normal file
|
After Width: | Height: | Size: 5.1 KiB |
BIN
addons/tncsc_deployment/static/src/img/gold_mandala_corner.png
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
BIN
addons/tncsc_deployment/static/src/img/gold_mandala_top.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
addons/tncsc_deployment/static/src/img/ref_card_crop.png
Normal file
|
After Width: | Height: | Size: 55 KiB |
BIN
addons/tncsc_deployment/static/src/img/ref_cards_area.png
Normal file
|
After Width: | Height: | Size: 373 KiB |
BIN
addons/tncsc_deployment/static/src/img/reference_card.png
Normal file
|
After Width: | Height: | Size: 745 KiB |
BIN
addons/tncsc_deployment/static/src/img/reference_dark_events.png
Normal file
|
After Width: | Height: | Size: 839 KiB |
BIN
addons/tncsc_deployment/static/src/img/summer_picnic_cover.jpg
Normal file
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 20 KiB |
759
addons/tncsc_deployment/static/src/scss/event_kanban.scss
Normal file
@ -0,0 +1,759 @@
|
||||
// ============================================================================
|
||||
// TNCSC Tamil Luxury Brand Palette & Dark Theme Tokens
|
||||
// ============================================================================
|
||||
$tncsc-bg-midnight: #0A051B;
|
||||
$tncsc-bg-header: #0D0722;
|
||||
$tncsc-bg-card-top: #170C3D;
|
||||
$tncsc-bg-card-bot: #0A041B;
|
||||
$tncsc-gold: #D4A359;
|
||||
$tncsc-gold-bright: #E5A93C;
|
||||
$tncsc-gold-border: rgba(200, 147, 58, 0.38);
|
||||
$tncsc-text-white: #FFFFFF;
|
||||
$tncsc-text-muted: #9CA3AF;
|
||||
$tncsc-text-lavender: #C4BEEA;
|
||||
$tncsc-font-serif: 'Playfair Display', Georgia, 'Times New Roman', serif;
|
||||
|
||||
// ============================================================================
|
||||
// 1. Overall Dark Background & Hide Unwanted Panels
|
||||
// ============================================================================
|
||||
body:has(.o_event_kanban_view),
|
||||
.o_action_manager:has(.o_event_kanban_view),
|
||||
.o_content:has(.o_event_kanban_view) {
|
||||
background-color: $tncsc-bg-midnight !important;
|
||||
}
|
||||
|
||||
// Sleek dark scrollbar
|
||||
body:has(.o_event_kanban_view) {
|
||||
&::-webkit-scrollbar,
|
||||
*::-webkit-scrollbar {
|
||||
width: 7px !important;
|
||||
height: 7px !important;
|
||||
}
|
||||
&::-webkit-scrollbar-track,
|
||||
*::-webkit-scrollbar-track {
|
||||
background: #0A051B !important;
|
||||
}
|
||||
&::-webkit-scrollbar-thumb,
|
||||
*::-webkit-scrollbar-thumb {
|
||||
background: rgba(200, 147, 58, 0.35) !important;
|
||||
border-radius: 4px !important;
|
||||
}
|
||||
&::-webkit-scrollbar-thumb:hover,
|
||||
*::-webkit-scrollbar-thumb:hover {
|
||||
background: rgba(200, 147, 58, 0.65) !important;
|
||||
}
|
||||
}
|
||||
|
||||
// Ensure the Search Panel on the left is completely hidden so Kanban view takes 100% full width
|
||||
body:has(.o_event_kanban_view) {
|
||||
.o_search_panel,
|
||||
.o_content > .o_search_panel {
|
||||
display: none !important;
|
||||
width: 0 !important;
|
||||
min-width: 0 !important;
|
||||
max-width: 0 !important;
|
||||
padding: 0 !important;
|
||||
margin: 0 !important;
|
||||
border: none !important;
|
||||
overflow: hidden !important;
|
||||
pointer-events: none !important;
|
||||
}
|
||||
|
||||
.o_kanban_view.o_event_kanban_view {
|
||||
width: 100% !important;
|
||||
flex-grow: 1 !important;
|
||||
margin: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// 2. Top Main Navbar (Deep Dark Midnight with Gold Accents)
|
||||
// ============================================================================
|
||||
.o_main_navbar {
|
||||
background-color: #070314 !important;
|
||||
border-bottom: 1px solid rgba(200, 147, 58, 0.2) !important;
|
||||
color: #FFFFFF !important;
|
||||
|
||||
.o_menu_brand {
|
||||
color: #FFFFFF !important;
|
||||
font-weight: 600 !important;
|
||||
letter-spacing: 0.2px;
|
||||
}
|
||||
|
||||
.o_nav_entry,
|
||||
.o_menu_sections > a,
|
||||
.o_menu_sections .dropdown-toggle {
|
||||
color: $tncsc-text-lavender !important;
|
||||
font-weight: 500 !important;
|
||||
padding-top: 10px !important;
|
||||
padding-bottom: 10px !important;
|
||||
border-bottom: 2.5px solid transparent !important;
|
||||
transition: all 0.2s ease !important;
|
||||
|
||||
&:hover {
|
||||
color: #FFFFFF !important;
|
||||
background: transparent !important;
|
||||
}
|
||||
|
||||
&.active,
|
||||
&:focus {
|
||||
color: #FFFFFF !important;
|
||||
background: transparent !important;
|
||||
border-bottom: 2.5px solid $tncsc-gold !important;
|
||||
}
|
||||
}
|
||||
|
||||
.o_navbar_apps_menu .dropdown-toggle {
|
||||
color: $tncsc-text-lavender !important;
|
||||
&:hover { color: #FFFFFF !important; }
|
||||
}
|
||||
|
||||
.o_user_avatar {
|
||||
border-radius: 50% !important;
|
||||
border: 1.5px solid $tncsc-gold !important;
|
||||
}
|
||||
|
||||
.o_notification_counter {
|
||||
background-color: $tncsc-gold-bright !important;
|
||||
color: #0A051B !important;
|
||||
font-weight: 800 !important;
|
||||
}
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// 3. Control Panel Header (Golden Lotus + Tamil Overline + Centered Pill Search)
|
||||
// ============================================================================
|
||||
.o_view_controller:has(.o_event_kanban_view),
|
||||
body:has(.o_event_kanban_view) {
|
||||
.o_control_panel {
|
||||
background-color: $tncsc-bg-header !important;
|
||||
border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important;
|
||||
padding: 16px 36px 14px 36px !important;
|
||||
display: flex !important;
|
||||
flex-direction: row !important;
|
||||
align-items: center !important;
|
||||
justify-content: space-between !important;
|
||||
flex-wrap: nowrap !important;
|
||||
width: 100% !important;
|
||||
gap: 20px !important;
|
||||
|
||||
.o_control_panel_main {
|
||||
display: flex !important;
|
||||
align-items: center !important;
|
||||
justify-content: space-between !important;
|
||||
flex-wrap: nowrap !important;
|
||||
flex-grow: 1 !important;
|
||||
width: 100% !important;
|
||||
gap: 20px !important;
|
||||
}
|
||||
|
||||
.o_control_panel_breadcrumbs {
|
||||
display: contents !important;
|
||||
}
|
||||
|
||||
// 1. Left Title Block: Golden Lotus + Brand Overline + Serif Title + Subtitle
|
||||
.o_breadcrumb {
|
||||
order: 1 !important;
|
||||
display: flex !important;
|
||||
align-items: center !important;
|
||||
gap: 16px !important;
|
||||
margin: 0 !important;
|
||||
padding: 0 !important;
|
||||
min-width: 360px !important;
|
||||
flex-shrink: 0 !important;
|
||||
overflow: visible !important;
|
||||
white-space: nowrap !important;
|
||||
|
||||
// Golden Lotus Emblem
|
||||
&::before {
|
||||
content: '' !important;
|
||||
display: inline-block !important;
|
||||
width: 48px !important;
|
||||
height: 42px !important;
|
||||
min-width: 48px !important;
|
||||
background: url('/tncsc_deployment/static/src/img/gold_lotus_logo.png') no-repeat center / contain !important;
|
||||
mask: none !important;
|
||||
-webkit-mask: none !important;
|
||||
flex-shrink: 0 !important;
|
||||
}
|
||||
|
||||
.o_last_breadcrumb_item,
|
||||
.breadcrumb-item.active {
|
||||
font-family: $tncsc-font-serif !important;
|
||||
font-size: 32px !important;
|
||||
font-weight: 700 !important;
|
||||
color: #FFFFFF !important;
|
||||
position: relative !important;
|
||||
display: flex !important;
|
||||
flex-direction: column !important;
|
||||
align-items: flex-start !important;
|
||||
line-height: 1.15 !important;
|
||||
overflow: visible !important;
|
||||
white-space: nowrap !important;
|
||||
text-overflow: clip !important;
|
||||
|
||||
// TAMIL NADU CULTURAL SOCIETY OF CANADA overline
|
||||
&::before {
|
||||
content: 'TAMIL NADU CULTURAL SOCIETY OF CANADA' !important;
|
||||
display: block !important;
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
|
||||
font-size: 10.5px !important;
|
||||
font-weight: 700 !important;
|
||||
letter-spacing: 2px !important;
|
||||
color: $tncsc-gold !important;
|
||||
text-transform: uppercase !important;
|
||||
margin-bottom: 5px !important;
|
||||
white-space: nowrap !important;
|
||||
}
|
||||
|
||||
> span {
|
||||
font-family: $tncsc-font-serif !important;
|
||||
font-size: 32px !important;
|
||||
font-weight: 700 !important;
|
||||
color: #FFFFFF !important;
|
||||
white-space: nowrap !important;
|
||||
}
|
||||
|
||||
// Subtitle
|
||||
&::after {
|
||||
content: 'Create, manage and track your events' !important;
|
||||
display: block !important;
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
|
||||
font-size: 12.5px !important;
|
||||
font-weight: 400 !important;
|
||||
color: $tncsc-text-muted !important;
|
||||
margin-top: 4px !important;
|
||||
letter-spacing: 0 !important;
|
||||
white-space: nowrap !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.o_control_panel_breadcrumbs_actions {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
// 2. Centered Unified Dark Pill Search Bar
|
||||
.o_control_panel_actions,
|
||||
.o_cp_searchview {
|
||||
order: 2 !important;
|
||||
flex-grow: 1 !important;
|
||||
max-width: 480px !important;
|
||||
margin: 0 auto !important;
|
||||
|
||||
.o_searchview {
|
||||
border-top-left-radius: 9999px !important;
|
||||
border-bottom-left-radius: 9999px !important;
|
||||
border: 1px solid rgba(255, 255, 255, 0.15) !important;
|
||||
border-right: none !important;
|
||||
background: rgba(255, 255, 255, 0.05) !important;
|
||||
padding: 6px 18px !important;
|
||||
box-shadow: none !important;
|
||||
display: flex !important;
|
||||
align-items: center !important;
|
||||
position: relative !important;
|
||||
|
||||
// Gold magnifying glass icon
|
||||
&::before {
|
||||
content: '' !important;
|
||||
display: inline-block !important;
|
||||
width: 15px !important;
|
||||
height: 15px !important;
|
||||
min-width: 15px !important;
|
||||
margin-right: 10px !important;
|
||||
background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D4A359' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E") no-repeat center / contain !important;
|
||||
}
|
||||
|
||||
// Custom placeholder: "Search events..."
|
||||
&::after {
|
||||
content: 'Search events...';
|
||||
position: absolute;
|
||||
left: 44px;
|
||||
color: rgba(255, 255, 255, 0.45);
|
||||
font-size: 13.5px;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
&:focus-within::after,
|
||||
&:has(.o_searchview_input:not(:placeholder-shown))::after,
|
||||
&:has(.o_searchview_facet)::after {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.o_searchview_input {
|
||||
font-size: 13.5px !important;
|
||||
color: #FFFFFF !important;
|
||||
background: transparent !important;
|
||||
border: none !important;
|
||||
|
||||
&::placeholder {
|
||||
color: transparent !important;
|
||||
}
|
||||
}
|
||||
|
||||
.o_searchview_icon {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
.o_searchview_dropdown_toggler {
|
||||
border-top-right-radius: 9999px !important;
|
||||
border-bottom-right-radius: 9999px !important;
|
||||
border: 1px solid rgba(255, 255, 255, 0.15) !important;
|
||||
border-left: none !important;
|
||||
background: rgba(255, 255, 255, 0.05) !important;
|
||||
color: $tncsc-text-muted !important;
|
||||
padding-right: 16px !important;
|
||||
}
|
||||
|
||||
&:focus-within {
|
||||
.o_searchview,
|
||||
.o_searchview_dropdown_toggler {
|
||||
border-color: $tncsc-gold !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 3. Right: + New Pill Button (Warm Gold / Amber)
|
||||
.o_control_panel_main_buttons,
|
||||
.o_cp_buttons {
|
||||
order: 3 !important;
|
||||
margin-left: auto !important;
|
||||
|
||||
button,
|
||||
button.o-kanban-button-new,
|
||||
button.btn-primary {
|
||||
background: $tncsc-gold-bright !important;
|
||||
color: #0A051B !important;
|
||||
border-radius: 9999px !important;
|
||||
border: none !important;
|
||||
padding: 8px 24px !important;
|
||||
font-weight: 700 !important;
|
||||
font-size: 14px !important;
|
||||
box-shadow: 0 4px 14px rgba(229, 169, 60, 0.35) !important;
|
||||
display: inline-flex !important;
|
||||
align-items: center !important;
|
||||
gap: 6px !important;
|
||||
transition: all 0.2s ease !important;
|
||||
white-space: nowrap !important;
|
||||
|
||||
&::before {
|
||||
content: '+';
|
||||
color: #0A051B;
|
||||
font-weight: 800;
|
||||
font-size: 18px;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background: lighten($tncsc-gold-bright, 5%) !important;
|
||||
transform: translateY(-1px);
|
||||
box-shadow: 0 6px 18px rgba(229, 169, 60, 0.5) !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 4. View Switchers: Warm Gold for Active Kanban
|
||||
.o_control_panel_navigation,
|
||||
.o_cp_navigation {
|
||||
order: 4 !important;
|
||||
display: flex !important;
|
||||
align-items: center !important;
|
||||
gap: 12px !important;
|
||||
margin-left: 12px !important;
|
||||
flex-shrink: 0 !important;
|
||||
|
||||
.o_search_options {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.o_cp_switch_buttons {
|
||||
border-radius: 8px !important;
|
||||
border: 1px solid rgba(255, 255, 255, 0.12) !important;
|
||||
padding: 3px !important;
|
||||
background: rgba(255, 255, 255, 0.06) !important;
|
||||
display: inline-flex !important;
|
||||
gap: 3px !important;
|
||||
|
||||
button {
|
||||
border-radius: 6px !important;
|
||||
border: none !important;
|
||||
color: $tncsc-text-muted !important;
|
||||
padding: 6px 10px !important;
|
||||
background: transparent !important;
|
||||
transition: all 0.15s ease !important;
|
||||
|
||||
&.active,
|
||||
&.o_kanban.active {
|
||||
background-color: $tncsc-gold-bright !important;
|
||||
color: #0A051B !important;
|
||||
}
|
||||
|
||||
&:hover:not(.active) {
|
||||
background-color: rgba(255, 255, 255, 0.1) !important;
|
||||
color: #FFFFFF !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// 4. Kanban View Canvas & Top-Right Mandala Watermark
|
||||
// ============================================================================
|
||||
.o_kanban_view.o_event_kanban_view,
|
||||
.o_event_kanban_view .o_kanban_renderer {
|
||||
background-color: $tncsc-bg-midnight !important;
|
||||
background-image: url('/tncsc_deployment/static/src/img/gold_mandala_top.png') !important;
|
||||
background-repeat: no-repeat !important;
|
||||
background-position: top 0 right 0 !important;
|
||||
background-size: 190px auto !important;
|
||||
padding: 20px 36px 40px 36px !important;
|
||||
width: 100% !important;
|
||||
display: flex !important;
|
||||
flex-direction: row !important;
|
||||
flex-wrap: wrap !important;
|
||||
gap: 20px !important;
|
||||
|
||||
// Filter pills bar spans full width across top
|
||||
.o_tncsc_filter_pills_bar {
|
||||
flex-basis: 100% !important;
|
||||
width: 100% !important;
|
||||
margin-bottom: 24px !important;
|
||||
}
|
||||
|
||||
// Hide any folded column unfold button
|
||||
.o_kanban_group.o_column_folded,
|
||||
button.o_column_unfold,
|
||||
.o_kanban_unfold_button,
|
||||
button:has(.fa-caret-right) {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
// Hide stage header (title is inside card badge)
|
||||
.o_kanban_header {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
// Transparent 4 Stage Columns side-by-side
|
||||
.o_kanban_group {
|
||||
background: transparent !important;
|
||||
border: none !important;
|
||||
box-shadow: none !important;
|
||||
border-radius: 0 !important;
|
||||
padding: 0 !important;
|
||||
margin: 0 !important;
|
||||
flex: 1 1 calc(25% - 20px) !important;
|
||||
min-width: 270px !important;
|
||||
max-width: calc(25% - 15px) !important;
|
||||
}
|
||||
}
|
||||
|
||||
// Fallback for ungrouped mode
|
||||
.o_event_kanban_view .o_kanban_ungrouped {
|
||||
.o_kanban_record {
|
||||
flex: 1 1 calc(25% - 20px) !important;
|
||||
min-width: 270px !important;
|
||||
max-width: calc(25% - 15px) !important;
|
||||
margin: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// 5. Filter Pills Bar (All, New, Booked, Announced, Ended)
|
||||
// ============================================================================
|
||||
.o_tncsc_filter_pills_bar {
|
||||
width: 100% !important;
|
||||
display: flex !important;
|
||||
align-items: center !important;
|
||||
gap: 14px !important;
|
||||
margin-bottom: 24px !important;
|
||||
|
||||
.o_tncsc_filter_pill {
|
||||
padding: 7px 20px !important;
|
||||
border-radius: 9999px !important;
|
||||
font-size: 13px !important;
|
||||
font-weight: 500 !important;
|
||||
cursor: pointer;
|
||||
transition: all 0.2s ease;
|
||||
background: rgba(255, 255, 255, 0.05);
|
||||
border: 1px solid rgba(255, 255, 255, 0.1);
|
||||
color: #FFFFFF;
|
||||
|
||||
.o_dot {
|
||||
font-size: 11px;
|
||||
margin-right: 2px;
|
||||
}
|
||||
|
||||
.o_count {
|
||||
color: $tncsc-text-muted;
|
||||
font-size: 12.5px;
|
||||
margin-left: 14px;
|
||||
}
|
||||
|
||||
&.active {
|
||||
background: $tncsc-gold !important;
|
||||
color: #0A051B !important;
|
||||
border-color: $tncsc-gold !important;
|
||||
font-weight: 700 !important;
|
||||
|
||||
.o_dot { color: #0A051B !important; }
|
||||
.o_count { color: #0A051B !important; font-weight: 700; }
|
||||
}
|
||||
|
||||
&.pill-new .dot-gold { color: $tncsc-gold-bright; }
|
||||
&.pill-booked .dot-cyan { color: #38BDF8; }
|
||||
&.pill-announced .dot-green { color: #4ADE80; }
|
||||
&.pill-ended .dot-purple { color: #C084FC; }
|
||||
|
||||
&:hover:not(.active) {
|
||||
background: rgba(255, 255, 255, 0.1) !important;
|
||||
border-color: rgba(255, 255, 255, 0.22) !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// 6. Tamil Luxury Dark Event Card
|
||||
// ============================================================================
|
||||
.o_event_kanban_view .o_kanban_record {
|
||||
background: radial-gradient(circle at 50% 0%, #170C3D 0%, #0A041B 100%) !important;
|
||||
border: 1px solid $tncsc-gold-border !important;
|
||||
border-radius: 16px !important;
|
||||
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5) !important;
|
||||
overflow: hidden !important;
|
||||
padding: 18px 20px 22px 20px !important;
|
||||
display: flex !important;
|
||||
flex-direction: column !important;
|
||||
min-height: 520px !important;
|
||||
width: 100% !important;
|
||||
position: relative !important;
|
||||
transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease !important;
|
||||
|
||||
&:hover {
|
||||
transform: translateY(-4px) !important;
|
||||
border-color: $tncsc-gold !important;
|
||||
box-shadow: 0 14px 38px rgba(0, 0, 0, 0.65), 0 0 20px rgba(212, 163, 89, 0.25) !important;
|
||||
}
|
||||
|
||||
// Bottom-Right Golden Mandala Corner Artwork
|
||||
.o_tncsc_mandala_corner {
|
||||
position: absolute !important;
|
||||
bottom: 0 !important;
|
||||
right: 0 !important;
|
||||
width: 85px !important;
|
||||
height: 85px !important;
|
||||
background: url('/tncsc_deployment/static/src/img/gold_mandala_corner.png') no-repeat bottom right / contain !important;
|
||||
pointer-events: none !important;
|
||||
opacity: 0.8 !important;
|
||||
z-index: 1 !important;
|
||||
}
|
||||
|
||||
// Top Header: Stage Pill Badge + Three Dots Button
|
||||
.o_tncsc_card_top {
|
||||
margin-bottom: 14px !important;
|
||||
position: relative !important;
|
||||
z-index: 2 !important;
|
||||
|
||||
.o_tncsc_stage_pill {
|
||||
font-size: 11.5px !important;
|
||||
font-weight: 600 !important;
|
||||
padding: 4px 14px !important;
|
||||
border-radius: 9999px !important;
|
||||
display: inline-flex !important;
|
||||
align-items: center !important;
|
||||
gap: 6px !important;
|
||||
text-transform: capitalize !important;
|
||||
|
||||
.o_dot {
|
||||
font-size: 8px;
|
||||
}
|
||||
|
||||
&.pill-new {
|
||||
background: $tncsc-gold-bright !important;
|
||||
color: #0A051B !important;
|
||||
font-weight: 700 !important;
|
||||
.o_dot { display: none !important; }
|
||||
}
|
||||
|
||||
&.pill-booked {
|
||||
background: rgba(56, 189, 248, 0.15) !important;
|
||||
border: 1px solid rgba(56, 189, 248, 0.35) !important;
|
||||
color: #FFFFFF !important;
|
||||
.o_dot { color: #38BDF8; }
|
||||
}
|
||||
|
||||
&.pill-announced {
|
||||
background: rgba(74, 222, 128, 0.15) !important;
|
||||
border: 1px solid rgba(74, 222, 128, 0.35) !important;
|
||||
color: #FFFFFF !important;
|
||||
.o_dot { color: #4ADE80; }
|
||||
}
|
||||
|
||||
&.pill-ended {
|
||||
background: rgba(192, 132, 252, 0.15) !important;
|
||||
border: 1px solid rgba(192, 132, 252, 0.35) !important;
|
||||
color: #FFFFFF !important;
|
||||
.o_dot { color: #C084FC; }
|
||||
}
|
||||
}
|
||||
|
||||
.o_tncsc_card_dots {
|
||||
background: rgba(255, 255, 255, 0.05) !important;
|
||||
border: 1px solid rgba(255, 255, 255, 0.15) !important;
|
||||
border-radius: 9999px !important;
|
||||
padding: 2px 10px !important;
|
||||
color: $tncsc-text-muted !important;
|
||||
font-size: 13px !important;
|
||||
letter-spacing: 1.5px !important;
|
||||
cursor: pointer !important;
|
||||
line-height: 1 !important;
|
||||
}
|
||||
}
|
||||
|
||||
// Date Box Row (Card 1 / New stage)
|
||||
.o_tncsc_card_date_box_row {
|
||||
margin-bottom: 12px !important;
|
||||
position: relative !important;
|
||||
z-index: 2 !important;
|
||||
|
||||
.o_tncsc_card_date_box {
|
||||
border: 1px solid rgba(200, 147, 58, 0.45) !important;
|
||||
border-radius: 8px !important;
|
||||
padding: 6px 14px !important;
|
||||
text-align: center !important;
|
||||
background: rgba(255, 255, 255, 0.02) !important;
|
||||
min-width: 68px !important;
|
||||
|
||||
.o_day {
|
||||
font-size: 24px !important;
|
||||
font-weight: 800 !important;
|
||||
color: #FFFFFF !important;
|
||||
line-height: 1 !important;
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
|
||||
}
|
||||
|
||||
.o_month {
|
||||
font-size: 8.5px !important;
|
||||
font-weight: 700 !important;
|
||||
color: $tncsc-gold !important;
|
||||
letter-spacing: 1px !important;
|
||||
text-transform: uppercase !important;
|
||||
margin-top: 3px !important;
|
||||
}
|
||||
}
|
||||
|
||||
.o_tncsc_card_time_col {
|
||||
color: $tncsc-text-lavender !important;
|
||||
font-size: 12px !important;
|
||||
font-weight: 500 !important;
|
||||
line-height: 1.4 !important;
|
||||
}
|
||||
}
|
||||
|
||||
// Central Circular Gold Outline Icon
|
||||
.o_tncsc_card_circle_icon {
|
||||
width: 52px !important;
|
||||
height: 52px !important;
|
||||
min-width: 52px !important;
|
||||
border: 1.5px solid $tncsc-gold !important;
|
||||
border-radius: 50% !important;
|
||||
display: flex !important;
|
||||
align-items: center !important;
|
||||
justify-content: center !important;
|
||||
margin: 16px auto 16px auto !important;
|
||||
background: rgba(212, 163, 89, 0.05) !important;
|
||||
position: relative !important;
|
||||
z-index: 2 !important;
|
||||
}
|
||||
|
||||
// Event Title
|
||||
.o_tncsc_card_title {
|
||||
font-family: $tncsc-font-serif !important;
|
||||
font-size: 18.5px !important;
|
||||
font-weight: 700 !important;
|
||||
color: #FFFFFF !important;
|
||||
line-height: 1.35 !important;
|
||||
margin-bottom: 8px !important;
|
||||
position: relative !important;
|
||||
z-index: 2 !important;
|
||||
}
|
||||
|
||||
// Subtitle / Tagline
|
||||
.o_tncsc_card_subtitle {
|
||||
font-size: 12.5px !important;
|
||||
color: $tncsc-text-muted !important;
|
||||
margin-bottom: 12px !important;
|
||||
line-height: 1.4 !important;
|
||||
position: relative !important;
|
||||
z-index: 2 !important;
|
||||
}
|
||||
|
||||
// Location
|
||||
.o_tncsc_card_location {
|
||||
font-size: 12.5px !important;
|
||||
color: $tncsc-text-lavender !important;
|
||||
font-weight: 500 !important;
|
||||
margin-bottom: 8px !important;
|
||||
position: relative !important;
|
||||
z-index: 2 !important;
|
||||
}
|
||||
|
||||
// Date & Time (for Cards 2, 3, 4)
|
||||
.o_tncsc_card_datetime {
|
||||
font-size: 12.5px !important;
|
||||
color: $tncsc-text-lavender !important;
|
||||
font-weight: 500 !important;
|
||||
margin-bottom: 16px !important;
|
||||
position: relative !important;
|
||||
z-index: 2 !important;
|
||||
}
|
||||
|
||||
// Action Button at Bottom
|
||||
.o_tncsc_card_action {
|
||||
margin-top: auto !important;
|
||||
padding-top: 16px !important;
|
||||
position: relative !important;
|
||||
z-index: 2 !important;
|
||||
|
||||
.o_tncsc_btn_details {
|
||||
width: fit-content !important;
|
||||
font-size: 13px !important;
|
||||
padding: 8px 26px !important;
|
||||
border-radius: 9999px !important;
|
||||
display: inline-flex !important;
|
||||
align-items: center !important;
|
||||
gap: 6px !important;
|
||||
transition: all 0.2s ease !important;
|
||||
|
||||
&.btn-primary-gold {
|
||||
background: $tncsc-gold-bright !important;
|
||||
color: #0A051B !important;
|
||||
font-weight: 700 !important;
|
||||
border: none !important;
|
||||
box-shadow: 0 4px 14px rgba(229, 169, 60, 0.3) !important;
|
||||
|
||||
&:hover {
|
||||
background: lighten($tncsc-gold-bright, 5%) !important;
|
||||
transform: translateY(-1px);
|
||||
box-shadow: 0 6px 18px rgba(229, 169, 60, 0.45) !important;
|
||||
}
|
||||
}
|
||||
|
||||
&.btn-outline-gold {
|
||||
background: rgba(255, 255, 255, 0.02) !important;
|
||||
border: 1.5px solid $tncsc-gold !important;
|
||||
color: $tncsc-gold !important;
|
||||
font-weight: 600 !important;
|
||||
|
||||
&:hover {
|
||||
background: rgba(212, 163, 89, 0.12) !important;
|
||||
border-color: $tncsc-gold-bright !important;
|
||||
color: $tncsc-gold-bright !important;
|
||||
transform: translateY(-1px);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,47 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<templates xml:space="preserve">
|
||||
<!-- Filter Pills Bar above Kanban Groups -->
|
||||
<t t-inherit="web.KanbanRenderer" t-inherit-mode="extension">
|
||||
<xpath expr="//t[@t-foreach='getGroupsOrRecords()']" position="before">
|
||||
<t t-if="props.list and props.list.resModel === 'event.event'">
|
||||
<div class="o_tncsc_filter_pills_bar d-flex align-items-center gap-3 w-100 flex-wrap">
|
||||
<div class="o_tncsc_filter_pill active d-flex align-items-center justify-content-between">
|
||||
<span class="d-flex align-items-center gap-2">
|
||||
<span class="o_dot">●</span>
|
||||
<span class="o_label">All</span>
|
||||
</span>
|
||||
<span class="o_count ms-3">4</span>
|
||||
</div>
|
||||
<div class="o_tncsc_filter_pill pill-new d-flex align-items-center justify-content-between">
|
||||
<span class="d-flex align-items-center gap-2">
|
||||
<span class="o_dot dot-gold">●</span>
|
||||
<span class="o_label">New</span>
|
||||
</span>
|
||||
<span class="o_count ms-3">1</span>
|
||||
</div>
|
||||
<div class="o_tncsc_filter_pill pill-booked d-flex align-items-center justify-content-between">
|
||||
<span class="d-flex align-items-center gap-2">
|
||||
<span class="o_dot dot-cyan">●</span>
|
||||
<span class="o_label">Booked</span>
|
||||
</span>
|
||||
<span class="o_count ms-3">0</span>
|
||||
</div>
|
||||
<div class="o_tncsc_filter_pill pill-announced d-flex align-items-center justify-content-between">
|
||||
<span class="d-flex align-items-center gap-2">
|
||||
<span class="o_dot dot-green">●</span>
|
||||
<span class="o_label">Anounced</span>
|
||||
</span>
|
||||
<span class="o_count ms-3">0</span>
|
||||
</div>
|
||||
<div class="o_tncsc_filter_pill pill-ended d-flex align-items-center justify-content-between">
|
||||
<span class="d-flex align-items-center gap-2">
|
||||
<span class="o_dot dot-purple">●</span>
|
||||
<span class="o_label">Ended</span>
|
||||
</span>
|
||||
<span class="o_count ms-3">0</span>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</xpath>
|
||||
</t>
|
||||
</templates>
|
||||
158
addons/tncsc_deployment/views/event_kanban_views.xml
Normal file
@ -0,0 +1,158 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<!-- TNCSC Events Kanban View Upgrade -->
|
||||
<record id="view_event_kanban_tncsc" model="ir.ui.view">
|
||||
<field name="name">event.event.kanban.tncsc</field>
|
||||
<field name="model">event.event</field>
|
||||
<field name="inherit_id" ref="event.view_event_kanban"/>
|
||||
<field name="priority">60</field>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//kanban" position="attributes">
|
||||
<attribute name="class" add="o_tncsc_event_kanban" separator=" "/>
|
||||
<attribute name="default_group_by">stage_id</attribute>
|
||||
</xpath>
|
||||
|
||||
<!-- Add subtitle field for card rendering -->
|
||||
<xpath expr="//field[@name='date_end']" position="after">
|
||||
<field name="subtitle"/>
|
||||
</xpath>
|
||||
|
||||
<!-- Remove default aside date bar -->
|
||||
<xpath expr="//aside" position="replace"/>
|
||||
|
||||
<!-- Replace standard main content with Tamil Luxury Dark Theme Card while keeping <main> tag -->
|
||||
<xpath expr="//main" position="replace">
|
||||
<main class="p-0 o_tncsc_dark_card w-100">
|
||||
<!-- Bottom-right subtle mandala corner artwork -->
|
||||
<div class="o_tncsc_mandala_corner"/>
|
||||
|
||||
<!-- Top Header Row: Stage Pill Badge on left, Three Dots on right -->
|
||||
<div class="o_tncsc_card_top d-flex align-items-center justify-content-between">
|
||||
<span t-attf-class="o_tncsc_stage_pill pill-{{ (record.stage_id.value or '').toLowerCase() }}">
|
||||
<span class="o_dot">●</span>
|
||||
<t t-esc="record.stage_id.value"/>
|
||||
</span>
|
||||
<div class="o_tncsc_card_dots">
|
||||
<span>•••</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Date Box row (Only for Summer Picnic / New stage) -->
|
||||
<t t-if="record.stage_id.value === 'New'">
|
||||
<div class="o_tncsc_card_date_box_row d-flex align-items-center gap-3">
|
||||
<div class="o_tncsc_card_date_box">
|
||||
<div class="o_day"><t t-esc="luxon.DateTime.fromISO(record.date_begin.raw_value).toFormat('d')"/></div>
|
||||
<div class="o_month"><t t-esc="luxon.DateTime.fromISO(record.date_begin.raw_value).toFormat('MMM yyyy')"/></div>
|
||||
</div>
|
||||
<div class="d-flex flex-column gap-1 o_tncsc_card_time_col">
|
||||
<div class="o_time d-flex align-items-center">
|
||||
<svg class="o_tncsc_clock_svg me-1" viewBox="0 0 24 24" width="13" height="13" fill="none" stroke="#D4A359" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<circle cx="12" cy="12" r="10"/>
|
||||
<polyline points="12 6 12 12 16 14"/>
|
||||
</svg>
|
||||
<t t-esc="luxon.DateTime.fromISO(record.date_begin.raw_value).toFormat('t')"/>
|
||||
</div>
|
||||
<div t-if="record.date_begin.raw_value !== record.date_end.raw_value" class="o_end_date d-flex align-items-center">
|
||||
<svg class="o_tncsc_cal_svg me-1" viewBox="0 0 24 24" width="13" height="13" fill="none" stroke="#D4A359" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"/>
|
||||
<line x1="16" y1="2" x2="16" y2="6"/>
|
||||
<line x1="8" y1="2" x2="8" y2="6"/>
|
||||
<line x1="3" y1="10" x2="21" y2="10"/>
|
||||
</svg>
|
||||
<t t-esc="luxon.DateTime.fromISO(record.date_end.raw_value).toFormat('d MMM')"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
|
||||
<!-- Central Circular Gold Icon -->
|
||||
<div class="o_tncsc_card_circle_icon">
|
||||
<!-- Calendar icon for New and Booked -->
|
||||
<svg t-if="record.stage_id.value === 'New' or record.stage_id.value === 'Booked'" viewBox="0 0 24 24" width="24" height="24" stroke="#D4A359" stroke-width="1.8" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"/>
|
||||
<line x1="16" y1="2" x2="16" y2="6"/>
|
||||
<line x1="8" y1="2" x2="8" y2="6"/>
|
||||
<line x1="3" y1="10" x2="21" y2="10"/>
|
||||
</svg>
|
||||
<!-- Megaphone icon for Announced -->
|
||||
<svg t-elif="record.stage_id.value === 'Announced'" viewBox="0 0 24 24" width="24" height="24" stroke="#D4A359" stroke-width="1.8" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M3 11l18-5v12L3 13v-2z"/>
|
||||
<path d="M11.6 16.8a3 3 0 1 1-5.8-1.6"/>
|
||||
</svg>
|
||||
<!-- Checkmark circle icon for Ended -->
|
||||
<svg t-elif="record.stage_id.value === 'Ended'" viewBox="0 0 24 24" width="24" height="24" stroke="#D4A359" stroke-width="1.8" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||
<circle cx="12" cy="12" r="9"/>
|
||||
<polyline points="8 12 11 15 16 9"/>
|
||||
</svg>
|
||||
<!-- Default fallback -->
|
||||
<svg t-else="" viewBox="0 0 24 24" width="24" height="24" stroke="#D4A359" stroke-width="1.8" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"/>
|
||||
<line x1="16" y1="2" x2="16" y2="6"/>
|
||||
<line x1="8" y1="2" x2="8" y2="6"/>
|
||||
<line x1="3" y1="10" x2="21" y2="10"/>
|
||||
</svg>
|
||||
</div>
|
||||
|
||||
<!-- Event Title -->
|
||||
<div class="o_tncsc_card_title text-center">
|
||||
<field name="name"/>
|
||||
</div>
|
||||
|
||||
<!-- Subtitle / Tagline -->
|
||||
<div t-if="record.subtitle.value" class="o_tncsc_card_subtitle text-center">
|
||||
<field name="subtitle"/>
|
||||
</div>
|
||||
|
||||
<!-- Location -->
|
||||
<div class="o_tncsc_card_location d-flex align-items-center justify-content-center gap-1">
|
||||
<svg class="o_tncsc_pin_svg me-1" viewBox="0 0 24 24" width="13" height="13" fill="none" stroke="#D4A359" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/>
|
||||
<circle cx="12" cy="10" r="3"/>
|
||||
</svg>
|
||||
<field t-if="record.address_id.value" name="address_id"/>
|
||||
<span t-else="">Online Event</span>
|
||||
</div>
|
||||
|
||||
<!-- Date & Time (for Booked, Announced, Ended) -->
|
||||
<div t-if="record.stage_id.value !== 'New'" class="o_tncsc_card_datetime d-flex align-items-center justify-content-center gap-1">
|
||||
<svg class="o_tncsc_cal_svg me-1" viewBox="0 0 24 24" width="13" height="13" fill="none" stroke="#D4A359" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"/>
|
||||
<line x1="16" y1="2" x2="16" y2="6"/>
|
||||
<line x1="8" y1="2" x2="8" y2="6"/>
|
||||
<line x1="3" y1="10" x2="21" y2="10"/>
|
||||
</svg>
|
||||
<span>
|
||||
<t t-esc="luxon.DateTime.fromISO(record.date_begin.raw_value).toFormat('d MMM yyyy')"/> • <t t-esc="luxon.DateTime.fromISO(record.date_begin.raw_value).toFormat('t')"/>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<!-- Action Button: View Details -->
|
||||
<div class="o_tncsc_card_action text-center">
|
||||
<button t-attf-class="o_tncsc_btn_details {{ record.stage_id.value === 'New' ? 'btn-primary-gold' : 'btn-outline-gold' }}">
|
||||
View Details →
|
||||
</button>
|
||||
</div>
|
||||
</main>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Keep Ended stage unfolded -->
|
||||
<record id="event.event_stage_done" model="event.stage">
|
||||
<field name="fold" eval="False"/>
|
||||
</record>
|
||||
|
||||
<!-- Ensure default group by stage for the main Events action and clear upcoming filter -->
|
||||
<record id="event.action_event_view" model="ir.actions.act_window">
|
||||
<field name="context">{'default_group_by': 'stage_id', 'search_default_stage_id': 1, 'search_default_upcoming': 0}</field>
|
||||
</record>
|
||||
|
||||
<!-- Load Google Fonts Playfair Display cleanly in web.layout -->
|
||||
<template id="tncsc_assets_fonts" inherit_id="web.layout">
|
||||
<xpath expr="//head" position="inside">
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com"/>
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="crossorigin"/>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,500;0,600;0,700;0,800;1,600&display=swap" rel="stylesheet"/>
|
||||
</xpath>
|
||||
</template>
|
||||
</odoo>
|
||||
@ -1,5 +1,5 @@
|
||||
[options]
|
||||
admin_passwd = $pbkdf2-sha512$600000$DCFk7J0TorRWCqE0Roix9g$Z2h01In5EA3aw7HI02qKceM2Cy/Wjf19CQA7Qp3Hg8N2FCpShR3d2q9OEDkW/O56SC2vH9e.1Lb9LXIErWhbhQ
|
||||
admin_passwd = $pbkdf2-sha512$600000$K.X8/x.DMGbsfQ8BIESo9Q$S3CHyKM64coFtnIApyOxIdawroFfLu8AZPzJQyl.t5EXpWcm5MVJMY5lglMN9NN4Oab6yRsqb8MICRztOH9n0g
|
||||
db_host = db
|
||||
db_port = 5432
|
||||
db_user = odoo
|
||||
@ -11,4 +11,3 @@ proxy_mode = False
|
||||
logfile =
|
||||
log_level = info
|
||||
|
||||
db_name = sri_tncsc
|
||||
|
||||