基于全日历的日历视图
项目描述
介绍
ftw.calendar是基于 fullcalendar ( http://arshaw.com/fullcalendar ) 的日历视图。
特征
通用:ftw.calendar 不关心事件对象,它只需要一个集合,其中生成的大脑有一个 start 和一个 end 属性。如果日历视图位于集合以外的其他内容类型上,它将显示此上下文下的所有事件(在 portal_calendar 中定义的类型)。
轻量级:唯一的要求(当然除了 plone)是 simplejson。或者,如果要启用事件大小调整和拖放功能,可以安装 jquery.ui,但不是必需的。
国际化:目前 ftw.calendar 提供德语、英语和捷克语版本。随意添加更多翻译。
集成:ftw.calendar 关心您的日历设置。一周的第一天得到尊重并相应地显示。
灵活:日历源实现为适配器。覆盖它以修改标题或添加 css 类。
用法
将ftw.calendar添加到您的构建配置中:
[instance]
eggs +=
ftw.calendar
安装通用导入配置文件。
使用ftwcalendar_view作为任何集合的新默认视图。新 plone 站点中的默认事件集合应该可以正常工作,但您可能应该删除日期标准,因为 fullcalendar 需要能够根据所选月份设置它们。
日历来源
为了便于定制,我建议从默认日历源实现扩展并覆盖三个定义的函数之一。
这是来自ftw.meeting的示例:
from ftw.calendar.browser.calendarupdateview import CalendarJSONSource
class MeetingCalendarJSONSource(CalendarJSONSource):
def generate_source_dict_from_brain(self, brain):
output = super(MeetingCalendarJSONSource,
self).generate_source_dict_from_brain(brain)
if brain.Type == 'Meeting' and \
self.memberid in brain.getAttendeesOrUsers:
output['className'] += ' attendee'
return output
配置.zcml:
<configure zcml:condition="installed ftw.calendar">
<adapter
for="* ftw.meeting.interfaces.IMeetingLayer"
name="ftw_calendar_source"
provides="ftw.calendar.browser.interfaces.IFtwCalendarJSONSourceProvider"
factory=".calendarsource.MeetingCalendarJSONSource"
/>
</configure>
日历事件创建者
可以通过单击日历小部件上的日期/时间来创建日历条目。由于ftw.calendar不知道在特定项目中使用哪种事件类型,它必须由产品使用ftw.calendar定义。没有默认实现!除非您在产品中实现它,否则它不会起作用。
这是使用适配器完成的。这是来自ftw.contentpage的示例:
from ftw.calendar.browser.interfaces import IFtwCalendarEventCreator
from plone import api
from zope.interface import implements
class CalendarEventPageCreator(object):
implements(IFtwCalendarEventCreator)
def __init__(self, context, request):
self.context = context
self.request = request
def getEventType(self):
return "EventPage"
def createEvent(self, title, start_date):
return api.content.create(container=self.context,
type="EventPage",
title=title,
startDate=start_date,
endDate=start_date)
配置.zcml
<adapter for="* *" provides="ftw.calendar.browser.interfaces.IFtwCalendarEventCreator" factory=".adapters.CalendarEventPageCreator" />
故障排除
安装并尝试日历视图后,通常会出现 javascript 错误。通常这些是由于 javascript 缓存造成的,可以通过在 js_registry 中启用 javascript 调试来轻松解决。
学分
非常感谢 Adam Shaw 的 jq.fullcalendar。
兼容性
与Plone 4.3、5.1一起运行。
链接
皮皮: http ://pypi.python.org/pypi/ftw.calendar
版权
这个包是4teamwork的版权。
ftw.calendar根据 GNU 通用公共许可证第 2 版获得许可。
变更日志
3.1.2 (2019-09-12)
在 fullcalendar js 修复 [Nachtalb] 中添加缺少的升级步骤以缩小错误
3.1.1 (2018-12-12)
修复 fullcalendar js [Nachtalb] 中的双重缩小错误
Drop Plone 4.2 支持 [Nachtalb]
添加缺少的 5.1 兼容性通知 [Nachtalb]
3.1.0 (2018-06-19)
添加对 Plone 5.1 的支持。[cguardia,琼斯]
删除对 ftw.testing[splinter] 的依赖(已在 ftw.testing 中删除)。[lgraf]
3.0.0 (2017-01-24)
删除克隆 4.1 支持。[lknoepfel]
通过单击日历中的日期添加添加事件的功能。没有默认实现。产品必须为其事件类型实现它。[lknoepfel]
检查事件的编辑权限以启用拖放。[lknoepfel]
修复了未应用日期范围的错误。[lknoepfel]
2.1.2 (2016-11-17)
修复 jQuery / Diazo 问题:设置正确的响应标头。[琼斯]
为 menuitem 添加了德语翻译。[lknoepfel]
2.1.1 (2015-10-23)
为新型 Plone 集合启用日历视图。[姆巴赫托德]
2.1.0 (2015-04-30)
将日历源重构为适配器。[lknoepfel]
更好的日期格式显示在标题和列标题中的日期。[姆巴赫托德]
2.0.0 (2013-11-04)
添加测试设置和基本测试。[mathias.leimgruber]
克隆 4.3 兼容性。[mathias.leimgruber]
包清理(Readme.rst/History.txt/setup.py/.gitignore/license)。[mathias.leimgruber]
以 ISO8601 格式将日期传递给 javascript,以便它正确处理时区。[达维萨利]
1.15 (2012-01-27)
使日历与集合以外的其他上下文一起工作。[朱利安·因方格]
为配置 javascript 设置 mimetype 标头,以便它与 Diazo 主题一起使用。[22.06.2011,悠马]
1.14
为 ftwcalendar_view 添加了类,因此可以在此类上注册 viewlet。[22.06.2011,金方儿]
添加了法语翻译。感谢弗朗索瓦·赫特。[22.03.2011,fsprenger]
确保链接颜色不会被旭日风格覆盖 [20.06.2011, fspreger]
1.13
修复 GS 结构(Types -> types and topic.xml -> Topic.xml 并添加 types.xml)[07.03.2011,mathias.leimgruber]
修复了 README.txt [thomasdesvenain]
1.12
更改德语的默认时间格式(显示 H:mm)。[14.02.2011,mathias.leimgruber]
在 context.aq_inner 上调用 queryCatalog 以获得正确的 ATRelativePathCriterion 支持。[14.02.2011,mathias.leimgruber]
日历更新视图上的 PEP8。[14.02.2011,mathias.leimgruber]
1.11
将 fullcalendar 更新到 1.4.10 版。可以在此处找到 fullcalendar 的变更日志:http: //arshaw.com/js/fullcalendar/changelog.txt [fsprenger]
修复了配置中的一个 js 错误 [fspreger]
修复 Plone 3 与 zcml.condition [fsprenger] 的兼容性
使一周的第一天选项使用 Plone 日历控制面板中的设置。[约马]
更新了安装配置文件中的产品描述。[约马]
更改设置以使用 Plone 的普通 i18n 机器。[约马]
改进了 Plone 4 上 Sunburst 中的默认样式。 [yomatters]
将 drop 和 resize 参数作为 JSON 发送以实现 jQuery 1.4 兼容性。[约马]
1.10
解决了先前版本中隐藏 osx 文件的问题 [fsprenger]
不要在 JSRegistry 中压缩 fullcallendar.min.js。[纳罗]
1.9
将 fullcalendar 更新到版本 1.4.8 [fsprenger]
1.8
添加捷克语翻译 [naro]
添加了 menuItem 声明以提供漂亮且可翻译的显示菜单项 [naro]
固定 zcml 声明(添加层)[naro]
添加了 .po 文件 [naro]
1.7
更新了公开发布的文档 [fsprenger]
1.6
将全日历更新到 1.4.6 版
1.5
如果当前语言没有翻译,则将英语配置为备用语言
添加了一个自定义 css 文件以覆盖 fullcalendar.css 中定义的样式
突出显示当前用户自己的事件
使用 members.css 中定义的样式来标记事件的状态
增加了对全天活动的支持
1.4
在日视图和周视图中启用拖放
在日视图和周视图中启用调整大小
1.3
删除了 jquery 插件集成(用于 plone 2.5)
修复了查询中的错误,现在可以正确显示跨越几个月的事件
1.2
固定时间格式并将开始日期设置为星期一
1.1
删除了对不存在文件的引用
1.0
初始发行
项目详情
ftw.calendar -3.1.2.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | ec573c5a4d8f1e0eb16fe620e8a691cf910a3a6bff00f6f2cc0870769ccedfe5 |
|
| MD5 | 7e4d615be8d29239e5b75125c20aec0b |
|
| 布莱克2-256 | ad0d9edf07d73a3f298acd2af916c662d2eede5cefdfec32f2d9248fabe3441f |