python - 如何在 Odoo 13 中修改日历事件对象弹出框的值
问题描述
蓝色边框的框叫什么?以及如何修改红色边框中的字段?我想以编程方式修改这些值。
解决方案
在 Odoo 14 中,这个弹出框定义在odoo/addons/web/static/src/xml/web_calendar.xml
<t t-name="CalendarView.event.popover">
<div class="o_cw_body">
<ul class="list-group list-group-flush">
<li t-if="!widget.hideDate and widget.eventDate.date" class="list-group-item">
<i class="fa fa-fw fa-calendar-o"/>
<b class="text-capitalize" t-esc="widget.eventDate.date"/> <small t-if="widget.eventDate.duration"><b t-esc="_.str.sprintf('(%s)', widget.eventDate.duration)"/></small>
</li>
<li t-if="!widget.hideTime and widget.eventTime.time" class="list-group-item">
<i class="fa fa-fw fa-clock-o"/>
<b t-esc="widget.eventTime.time"/> <small t-if="widget.eventTime.duration"><b t-esc="_.str.sprintf('(%s)', widget.eventTime.duration)"/></small>
</li>
</ul>
<ul t-if="widget.isEventDetailsVisible()" class="list-group list-group-flush o_cw_popover_fields_secondary"/>
<div class="card-footer border-top">
<a t-if="widget.isEventEditable()" href="#" class="btn btn-primary o_cw_popover_edit">Edit</a>
<a t-if="widget.isEventDeletable()" href="#" class="btn btn-secondary o_cw_popover_delete ml-2">Delete</a>
</div>
</div>
</t>
JavaScript 中的 Widget 就是这个odoo/addons/web/static/src/js/views/calendar/calendar_popover.js
您可以对其进行扩展以修改其值或添加其他字段等:
var CalendarPopover = Widget.extend(WidgetAdapterMixin, StandaloneFieldManagerMixin, {
template: 'CalendarView.event.popover',
events: {
'click .o_cw_popover_edit': '_onClickPopoverEdit',
'click .o_cw_popover_delete': '_onClickPopoverDelete',
},
/**
* @constructor
* @param {Widget} parent
* @param {Object} eventInfo
*/
init: function (parent, eventInfo) {
this._super.apply(this, arguments);
StandaloneFieldManagerMixin.init.call(this);
this.hideDate = eventInfo.hideDate;
this.hideTime = eventInfo.hideTime;
this.eventTime = eventInfo.eventTime;
this.eventDate = eventInfo.eventDate;
this.displayFields = eventInfo.displayFields;
this.fields = eventInfo.fields;
this.event = eventInfo.event;
this.modelName = eventInfo.modelName;
this._canDelete = eventInfo.canDelete;
},
//... rest of the class
推荐阅读
- function - Kotlin:覆盖(并指定)通用接口函数
- powerbi - 如何在 Power BI 中获取行主组总数的子组百分比?
- sql - 如何返回一行而不是两行?
- apache-kafka - Kafka生产者:如何公平平衡kafka消费者之间的消息(而不是分区之间)
- c++ - 如何编写代码来计算 C++ 中几个变量函数的偏导数?
- python - 如何在“else”之前运行“if not”语句:
- javascript - 如何在 bootstrap-vue 中为下拉菜单设置动画
- r - 减少 R 中条件语句的数量?
- javascript - 仅在第一次加载时出现语法错误,刷新页面后就会消失
- c# - 直接减去两个八进制数而不转换成十进制