Skip to main content

基于全日历的日历视图

项目描述

介绍

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.35.1一起运行。

变更日志

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 (83.5 kB 查看哈希

已上传 source