OWL
data_display
Calendar Renderer
Odoo 19 OWL component — Calendar Renderer (views)
Live preview
Interactive
Source excerpt
web/static/src/views/calendar/calendar_renderer.js
import { ActionSwiper } from "@web/core/action_swiper/action_swiper";
import { CalendarCommonRenderer } from "./calendar_common/calendar_common_renderer";
import { CalendarYearRenderer } from "./calendar_year/calendar_year_renderer";
import { Component } from "@odoo/owl";
export class CalendarRenderer extends Component {
static template = "web.CalendarRenderer";
static components = {
day: CalendarCommonRenderer,
week: CalendarCommonRenderer,
month: CalendarCommonRenderer,
year: CalendarYearRenderer,
ActionSwiper,
};
static props = {
model: Object,
isWeekendVisible: Boolean,
createRecord: Function,
editRecord: Function,
deleteRecord: Function,
setDate: Function,
callbackRecorder: Object,
onSquareSelection: Function,
cleanSquareSelection: Function,
};
get concreteRenderer() {
return this.constructor.components[this.props.model.scale];
}
get concreteRendererProps() {
if (this.props.model.scale === "year") {
return {
model: this.props.model,
isWeekendVisible: this.props.isWeekendVisible,
createRecord: this.props.createRecord,
editRecord: this.props.editRecord,
deleteRecord: this.props.deleteRecord,
};
}
return this.props;
}
get calendarKey() {
return `${this.props.model.scale}_${this.props.model.date.valueOf()}`;
}
get actionSwiperProps() {
return {
onLeftSwipe: this.env.isSmall
? { action: () => this.props.setDate("next") }
: undefined,
onRightSwipe: this.env.isSmall
? { action: () => this.props.setDate("previous") }
: undefined,
animationOnMove: false,
animationType: "forwards",
swipeDistanceRatio: 6,
swipeInvalid: () => Boolean(document.querySelector(".o_event.fc-mirror")),
};
}
}
Registry / API
- Registry name
CalendarRenderer- Category
—- Module
web- Slug
calendar-renderer- Nav group
data_display