TurboGears2插件式事件和日历应用程序
项目描述
关于calendarevents
calendarevents是一个针对TurboGears2的可插拔日历和事件应用程序。它允许创建与应用程序内部定义的实体相关联的事件。
Calendarevents通过定义新的事件类型支持多个日历和事件类型,通过定义新的事件类型,可以定义事件如何与外部实体(如描述事件的博客文章)相关联。
在显示事件时,如果可用,将提供当天的天气信息和事件位置。
安装
calendarevents可以从pypi或bitbucket安装
easy_install tgapp-calendarevents
应该对大多数用户都适用
插入calendarevents
在您的应用程序 config/app_cfg.py 中导入 plug
from tgext.pluggable import plug
然后在 文件末尾 调用plug并传递calendarevents
plug(base_config, 'calendarevents', event_types=[...])
在 event_types 参数中至少定义一个事件类型。事件类型的定义在事件类型部分中解释。
您将能够通过 http://localhost:8080/calendarevents 访问日历。
事件类型
calendarevents需要应用程序定义至少一个EventType才能工作。
事件类型必须从 calendarevents.EventType 类继承定义,例如,要定义一个与描述音乐会本身的文章相关联的音乐会事件
from tw2.core.js import js_function from tw2.core.resources import JSLink, CSSLink class Concert(EventType): name = 'Concert' resources = [ JSLink(modname='calendarevents.public', filename='js/calendarevents.js'), CSSLink(modname='calendarevents.public', filename='css/fullcalendar.css') ] events = {'eventClick': js_function('calendarevents.eventClick'), 'dayClick': js_function('calendarevents.dayClick')} def get_linkable_entities(self, calendar): return [(a.uid, a.title) for a in model.DBSession.query(model.Article)] def get_linked_entity_info(self, event): return model.DBSession.query(model.Article).get(event.linked_entity_id).title def get_linked_entity_url(self, event): return tg.url('/blog/view/%s' % event.linked_entity_id) plug(base_config, 'calendarevents', event_types=[Concert()])
事件类型还可以指定一些附加选项来改变calendevents的行为。如果EventType将类属性force_redirect = True指定为,则每当打开事件页面时,用户将被重定向到链接实体URL。此外,EventType还可以通过暴露一个calendar_data(self, event) -> dict方法来更新日历信息,该方法可以返回事件的任何附加信息(例如,它可以标记事件为全天或非全天)。
仅当您想使用fullcalendar事件中的js_hooks时才需要resources。资源应该是注入的资源列表。
events是用于覆盖js_hooks的注入js方法。
js_hooks
如果您想使用js_hooks,您必须在事件类型中注入资源,请参阅上一节。目前支持的js_hooks事件有eventClick和dayClick。
.js钩子脚本的示例
(function(w) { w.calendarevents = { eventClick: function(base_url, event, view) { window.location.href = base_url+event.uid; }, dayClick: function(base_url, date, allDay, view) { } }; })(window);
注意:如果您注入了js_hooks,则替换了默认行为。注意:从版本0.2.0开始,日期包含点击的日期的moment
暴露的部分
calendarevents公开了一个部分,用于在其它页面中渲染事件框
calendarevents.partials:event(event) - 渲染事件框
日历部分
calendarevents.partials:calendar(cal, view='month', all_day_slot=False, start_from=datetime.utcnow())
日历部分公开了一个仅包含日历的部分,接受的参数为
- cal -> (必需) 日历对象,目前js事件仅由分配给该日历的event_type管理
该日历
event_sources -> 一个以下格式的字典
{'event_sources': [{'events': availability_events_list, 'color': 'Blue', 'text_color': ''}, {'events': occupation_events_list, 'color': 'Red', 'text_color': ''}]}
color和text_color是可选的,events应该是event.calendar_data属性的列表,如果您没有提供,则事件从cal对象中获取
start_from -> (datetime) 日历的起始日期
view -> (String) (默认值“month”) 日历视图的类型(《month’、‘basicWeek’、‘basicDay’、‘agendaWeek’、‘agendaDay’、‘custom_days’)
all_day_slot -> (Bool) (默认值:False) 事件插槽显示全天还是实际时间槽
slot_minutes -> (Int或String) (默认值:’00:15:00’或15) 插槽持续时间,如果slot_minutes < 60
first_hour -> (Int或String) (默认值:’08:00:00’或8) 显示的第一个小时
time_format -> (String) (默认值:”HH:mm”) 时间显示格式
column_format -> (String) (默认值:”D/M”) 列日期显示格式
first_day -> (Int) (默认值:0) 周的第一天
day_to_show -> (Int) (默认值:8) 视图中显示的天数
slot_label_interval -> (String) (默认值:’01:00:00’) 插槽标签间隔
实用工具
在calendarvents.lib.utils中,您可以找到一些用于查看和管理事件和日历的实用工具
create_calendar(name, events_type) - 创建一个新的日历,events_type应该是一个字符串
get_calendar(calendar_id) - 获取给定calendar_id的日历
create_event(cal, name, summary, datetime, location, linked_entity_type, linked_entity_id, end_time) - 创建一个新的calendar_event
get_event(event_id) - 获取指定 event_id 的 calendar_event
get_calendar_events_from_datetime(calendar, start_time, active) - 获取给定日历从指定 start_time 开始的所有活跃的 calendar_event
get_calendar_day_events(calendar, start_time, active) - 获取给定日历和指定 start_time 的所有活跃 calendar_event
get_calendar_events_in_range(calendar, start_time, end_time, active) - 获取给定日历和指定时间范围(start_time - end_time)的所有活跃 calendar_event
deactivate_event(event_id) - 使 calendar_event 失效,默认情况下,标准的获取事件工具只检索活跃的事件
activate_event(event_id) - 将 calendar_event 设置为活跃状态
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源代码分发
tgapp-calendarevents-0.2.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 448e9700f7b406b5801e4d1c78c8003f7190397c22205075a2a13fd3f19ab87d |
|
MD5 | 8be6cc6633500916add3bd72d75f5880 |
|
BLAKE2b-256 | e1207fec581a31691aa52126bc71d860acdb1e8c06622562202e9bb1b55b2972 |