集中会议信息的民间活动
uwosh.meeting的Python项目详细描述
此产品有助于您更好地管理与会议相关的所有信息。
电子邮件中包含约定的日期和时间;地点仍有待确定
-会议记录在一天(或几天)之后通过电子邮件发送到周围
-可能被埋没在会议记录中:您的行动项目,下次会议的日期和时间
在那次会议上,以及你在下次会议前要做的事…祝您在收件箱中找到所有内容。
UTE(日期、时间、位置、
与会者、iCal导出等)
-folderish so可以包含附件(文档)
-议程、会议纪要、操作项、下次会议日期/时间的单独字段
-启用ATbackref的指向上一次和下一次会议对象的链接,以便可以跳转
及时向前和向后查看在您的同一工作组的前几次会议上发生的事情
-向所有
与会者发送可选电子邮件通知(仅限一次或每次编辑时发送);电子邮件包含所有信息(附件除外),
包括指向ed的直接链接它是会议对象并添加附件
-授予所有与会者的可选编辑权限
-与solgema.fullcalendar视图集成e站点,转到"门户日历->;配置"选项卡,然后在"要在日历中显示的门户类型"列表中,控制单击或
命令单击会议类型,以便同时选择事件类型和会议类型。然后按页面底部的"提交"。
依赖项
----
此产品还依赖于products.atbackref以支持连接的会议对象之间的双向关系
(下一个/上一个)。将以下内容添加到buildout.cfg egons中:
,然后重新运行bin/buildout。
如果要在一个好的日历视图中查看会议对象,请从http://plone.org/products/solgema.fullcalendar安装
u的solgema.fullcalendar产品wosh.meeting产品包含一个视图模板,将由
solgema.fullcalendar使用。
credits
----
我希望我能记得是谁在威斯康星大学奥什科什分校向我本人推荐了这个内联网项目的"杀手级应用程序"……谢谢你!
其他
——
-代码库:https://github.com/collective/uwosh.meeting
-对nguyen@uwosh.edu的问题和评论
-在https://github.com/collective/uwosh.meeting/issues上报告错误/>===
[tKimnguyen]未发布
=--
-todo:添加与会者的自动完成
-todo:通过
relat自动链接前面和后面的会议对象ed items字段
-todo:对于solgema.fullcalendar,在单击事件日历/或允许列表和在事件文件夹中添加会议对象时,请防止"添加会议"显示
(可能更简单)
-todo:将一次性电子邮件通知作为一个操作实现
-todo:(re)公开
meeting_view.pt中的"add comment"文本字段和按钮,这些字段和按钮通常用于非folderish内容类型
-todo:在没有错误的情况下使用backreferencebrowserwidget而不是backreferencewidget!
-todo:添加"克隆"操作,使下一个会议对象成为当前会议,并将其
previous meeting设置为当前会议[Tkimnguyen]
----------
-添加了测试
-修复了删除只有编辑角色的与会者的问题
-所有者角色现在获得"uwosh.meeting:add meeting"默认权限
0.4.3(2011-11-23)[Tkimnguyen]
-----——————————————————————————————————————————————————————————————————————————————————————————————————/>会议"
0.4.1(2011-11-18)[tkimnguyen]
----------
-删除具有编辑角色的与会者时修复错误
-改进了对没有电子邮件地址或全名的成员的处理
-通知电子邮件包括下一条和前一条上一次会议的URL
,并列出与会者的全名和ID
>0.4(2011-09-30)[tkimnguyen]
----
-更新产品说明
-将"添加附件"链接添加到会议视图。pt
-将"查看"链接添加到日历视图
-将"允许讨论"设置移动到默认模式
-添加了有关如何使已发布的会议对象
显示在日历portlet上的说明
-添加了previousmeeting和nextmeeting属性,这些属性使用atbackref
来显示会议对象;需要
单独安装产品。atbackref
0.3.1(2011-09-13)[tkimnguyen]
-
-版本bump
>0.3(2011-09-12)[tkimnguyen]
-
-添加操作项和下一个meeting date time attributes
-防止发送电子邮件通知时出现Unicode错误
-电子邮件通知消息包括文本/纯文本版本的富文本
字段值
-修复了安装时错误的默认外观选择
0.2.2(2011-08-29)[tkimnguyen]
-————————————————————————————————————————————————————————————————————————————————————————————————a.完整的日历视图,添加编辑和"添加附件"链接
如果用户具有修改门户内容的权限
/>-允许与会者编辑会议对象的复选框
-会议视图和电子邮件通知包括所包含对象的列表
0.1(2011-08-24)[tkimnguyen]
----------
-基本功能和属性
*****************
简介
==
这是一个全面的功能测试。这里的重点是测试用户可以输入和查看,并且系统在很大程度上是作为一个黑盒进行测试的。
我们也使用plonetestcase来设置这个测试,因此我们有一个完整的plone站点可以使用。我们*可以*检查门户的状态,例如使用
self.portal和self.folder,但由于您没有将系统视为一个黑盒,因此常常会对它感到不快。另外,如果您使用self.set roles()之类的调用登录或设置
角色,这些不会反映在作为单独会话运行的测试浏览器中。
作为doctest,我们可以在这里讲述一个故事。
首先,我们必须执行一些设置。我们使用带有5个的testbrowser,因为它提供了正确的zope 2集成。不过,大多数
文档都在下面的zope.testbrower包中。
>;>;来自products.five.testbrowser import browser
>;>;browser=browser()
>;>;portal_url=self.portal.absolute_url()
编写和调试TestBrowser测试。它允许我们在错误日志中查看所有错误消息。
>>self.portal.error\u log.\u ignored\u exceptions=()
我们将使用plonetestcase中的默认用户:
>;>from products.plonetestcase.setup import portal_owner,default_password
因为附加主题或产品可能删除或隐藏登录portlet,此测试将使用plone附带的登录表单。
>;>browser.open(portal_url+'/login_form')
>;>browser.getcontrol(name='''u ac_name').value=portal_owner
>;>browser.getcontrol(name=''''u ac_password').value=default_password
>;>browser.getcontrol(name='submit').click()
在这里,我们设置登录表单上字段的值,然后模拟
提交单击。然后,我们将确保获得友好的登录消息:
>;>;"您现在已登录"在浏览器中。内容
true
在这里-*-
会议内容类型
==
在本节中,我们通过执行添加、更新和删除会议内容项等基本操作来测试会议内容类型。
添加新的会议内容项————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————在这种情况下,我们选择
"会议",然后单击"添加"按钮进入添加表单。
>;>browser.getcontrol('meeting').click()
>;>browser.getcontrol(name='form.button.add').click()
>;'meeting'在浏览器中。内容
true
我们填写并提交表单。
>;>browser.getcontrol(name='title').value='meeting sample'
>;>browser.getcontrol('save').click()
>;'changes saved'在浏览器中。内容
true
我们在门户中添加了一个新的"会议"内容项。
更新现有的会议内容项
---------------------------
让我们单击"编辑"选项卡并更新对象属性值。
>;>;browser.getlink('edit')。单击()
>;>>>browser.getcontrol(name='title').value='新会议示例'
>>>browser.getcontrol('save').click()
>我们检查是否应用了更改。
>>>在浏览器中"保存的更改"。browser中的"新会议示例"内容
true
>;'new meeting sample'er.内容
真
删除会议内容项
-----——————————————————————————————o删除"new meeting sample"对象。首先,我们转到"内容"选项卡,选择"新会议示例"进行删除。
>;>;browser.getlink('contents').click()
>;>;browser.getcontrol('new meeting sample').click()
我们单击"删除"按钮。
>;>;browser.getcontrol('delete')。在浏览器中单击()
>;>;'item(s)deleted'。内容
true
因此,如果返回主页,将不再有"New Meeting
Sample"选项卡。
>;>;浏览器。在浏览器中打开(门户网站URL)
>;'New Meeting Sample'.content s
false
添加一个新的会议内容项作为参与者
——或分配了
contributor角色的所有成员。
>;>;browser.getlink('log out').click()
>;>;browser.open(portal_url+'/login_form')
>;>;browser.getcontrol(name=''uu ac_name').value='contributor'
>;>;browser.getcontrol(name=''u ac_password')。value=default_password
>>gt;browser.getcontrol(name='submit')。click()
>>gt;browser.open(portal_url)
我们使用"添加新内容"菜单添加新内容项。
>;browser.getlink('add new')。click()
"会议"并单击"添加"按钮以进入"添加"窗体。
>;>;browser.getcontrol("会议").click()
>;>;browser.getcontrol(name="form.button.add').click()
>;>;"会议"在浏览器中。内容
true
它。
>;>browser.getcontrol(name='title').value='meeting sample'
>;>browser.getcontrol('save').click()
>;'changes saved'在浏览器中。contents
true
我们添加了一个以参与者身份登录的新会议内容项。
最后,让我们以管理者身份重新登录。
>;>;browser.getlink('log out').click()
>;>;browser.open(portal\'url+'/log in\'form')
>;>;browser.getcontrol(name='''uu ac\'name').value=pOrtal_u owner
>;>browser.getcontrol(name=''uu ac_u password').value=default_password
>;>browser.getcontrol(name='submit').click()
>;>browser.open(portal_url)
下载
********
电子邮件中包含约定的日期和时间;地点仍有待确定
-会议记录在一天(或几天)之后通过电子邮件发送到周围
-可能被埋没在会议记录中:您的行动项目,下次会议的日期和时间
在那次会议上,以及你在下次会议前要做的事…祝您在收件箱中找到所有内容。
UTE(日期、时间、位置、
与会者、iCal导出等)
-folderish so可以包含附件(文档)
-议程、会议纪要、操作项、下次会议日期/时间的单独字段
-启用ATbackref的指向上一次和下一次会议对象的链接,以便可以跳转
及时向前和向后查看在您的同一工作组的前几次会议上发生的事情
-向所有
与会者发送可选电子邮件通知(仅限一次或每次编辑时发送);电子邮件包含所有信息(附件除外),
包括指向ed的直接链接它是会议对象并添加附件
-授予所有与会者的可选编辑权限
-与solgema.fullcalendar视图集成e站点,转到"门户日历->;配置"选项卡,然后在"要在日历中显示的门户类型"列表中,控制单击或
命令单击会议类型,以便同时选择事件类型和会议类型。然后按页面底部的"提交"。
依赖项
----
此产品还依赖于products.atbackref以支持连接的会议对象之间的双向关系
(下一个/上一个)。将以下内容添加到buildout.cfg egons中:
,然后重新运行bin/buildout。
如果要在一个好的日历视图中查看会议对象,请从http://plone.org/products/solgema.fullcalendar安装
u的solgema.fullcalendar产品wosh.meeting产品包含一个视图模板,将由
solgema.fullcalendar使用。
credits
----
我希望我能记得是谁在威斯康星大学奥什科什分校向我本人推荐了这个内联网项目的"杀手级应用程序"……谢谢你!
其他
——
-代码库:https://github.com/collective/uwosh.meeting
-对nguyen@uwosh.edu的问题和评论
-在https://github.com/collective/uwosh.meeting/issues上报告错误/>===
[tKimnguyen]未发布
=--
-todo:添加与会者的自动完成
-todo:通过
relat自动链接前面和后面的会议对象ed items字段
-todo:对于solgema.fullcalendar,在单击事件日历/或允许列表和在事件文件夹中添加会议对象时,请防止"添加会议"显示
(可能更简单)
-todo:将一次性电子邮件通知作为一个操作实现
-todo:(re)公开
meeting_view.pt中的"add comment"文本字段和按钮,这些字段和按钮通常用于非folderish内容类型
-todo:在没有错误的情况下使用backreferencebrowserwidget而不是backreferencewidget!
-todo:添加"克隆"操作,使下一个会议对象成为当前会议,并将其
previous meeting设置为当前会议[Tkimnguyen]
----------
-添加了测试
-修复了删除只有编辑角色的与会者的问题
-所有者角色现在获得"uwosh.meeting:add meeting"默认权限
0.4.3(2011-11-23)[Tkimnguyen]
-----——————————————————————————————————————————————————————————————————————————————————————————————————/>会议"
0.4.1(2011-11-18)[tkimnguyen]
----------
-删除具有编辑角色的与会者时修复错误
-改进了对没有电子邮件地址或全名的成员的处理
-通知电子邮件包括下一条和前一条上一次会议的URL
,并列出与会者的全名和ID
>0.4(2011-09-30)[tkimnguyen]
----
-更新产品说明
-将"添加附件"链接添加到会议视图。pt
-将"查看"链接添加到日历视图
-将"允许讨论"设置移动到默认模式
-添加了有关如何使已发布的会议对象
显示在日历portlet上的说明
-添加了previousmeeting和nextmeeting属性,这些属性使用atbackref
来显示会议对象;需要
单独安装产品。atbackref
0.3.1(2011-09-13)[tkimnguyen]
-
-版本bump
>0.3(2011-09-12)[tkimnguyen]
-
-添加操作项和下一个meeting date time attributes
-防止发送电子邮件通知时出现Unicode错误
-电子邮件通知消息包括文本/纯文本版本的富文本
字段值
-修复了安装时错误的默认外观选择
0.2.2(2011-08-29)[tkimnguyen]
-————————————————————————————————————————————————————————————————————————————————————————————————a.完整的日历视图,添加编辑和"添加附件"链接
如果用户具有修改门户内容的权限
/>-允许与会者编辑会议对象的复选框
-会议视图和电子邮件通知包括所包含对象的列表
0.1(2011-08-24)[tkimnguyen]
----------
-基本功能和属性
*****************
简介
==
这是一个全面的功能测试。这里的重点是测试用户可以输入和查看,并且系统在很大程度上是作为一个黑盒进行测试的。
我们也使用plonetestcase来设置这个测试,因此我们有一个完整的plone站点可以使用。我们*可以*检查门户的状态,例如使用
self.portal和self.folder,但由于您没有将系统视为一个黑盒,因此常常会对它感到不快。另外,如果您使用self.set roles()之类的调用登录或设置
角色,这些不会反映在作为单独会话运行的测试浏览器中。
作为doctest,我们可以在这里讲述一个故事。
首先,我们必须执行一些设置。我们使用带有5个的testbrowser,因为它提供了正确的zope 2集成。不过,大多数
文档都在下面的zope.testbrower包中。
>;>;来自products.five.testbrowser import browser
>;>;browser=browser()
>;>;portal_url=self.portal.absolute_url()
编写和调试TestBrowser测试。它允许我们在错误日志中查看所有错误消息。
>>self.portal.error\u log.\u ignored\u exceptions=()
我们将使用plonetestcase中的默认用户:
>;>from products.plonetestcase.setup import portal_owner,default_password
因为附加主题或产品可能删除或隐藏登录portlet,此测试将使用plone附带的登录表单。
>;>browser.open(portal_url+'/login_form')
>;>browser.getcontrol(name='''u ac_name').value=portal_owner
>;>browser.getcontrol(name=''''u ac_password').value=default_password
>;>browser.getcontrol(name='submit').click()
在这里,我们设置登录表单上字段的值,然后模拟
提交单击。然后,我们将确保获得友好的登录消息:
>;>;"您现在已登录"在浏览器中。内容
true
在这里-*-
会议内容类型
==
在本节中,我们通过执行添加、更新和删除会议内容项等基本操作来测试会议内容类型。
添加新的会议内容项————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————在这种情况下,我们选择
"会议",然后单击"添加"按钮进入添加表单。
>;>browser.getcontrol('meeting').click()
>;>browser.getcontrol(name='form.button.add').click()
>;'meeting'在浏览器中。内容
true
我们填写并提交表单。
>;>browser.getcontrol(name='title').value='meeting sample'
>;>browser.getcontrol('save').click()
>;'changes saved'在浏览器中。内容
true
我们在门户中添加了一个新的"会议"内容项。
更新现有的会议内容项
---------------------------
让我们单击"编辑"选项卡并更新对象属性值。
>;>;browser.getlink('edit')。单击()
>;>>>browser.getcontrol(name='title').value='新会议示例'
>>>browser.getcontrol('save').click()
>我们检查是否应用了更改。
>>>在浏览器中"保存的更改"。browser中的"新会议示例"内容
true
>;'new meeting sample'er.内容
真
删除会议内容项
-----——————————————————————————————o删除"new meeting sample"对象。首先,我们转到"内容"选项卡,选择"新会议示例"进行删除。
>;>;browser.getlink('contents').click()
>;>;browser.getcontrol('new meeting sample').click()
我们单击"删除"按钮。
>;>;browser.getcontrol('delete')。在浏览器中单击()
>;>;'item(s)deleted'。内容
true
因此,如果返回主页,将不再有"New Meeting
Sample"选项卡。
>;>;浏览器。在浏览器中打开(门户网站URL)
>;'New Meeting Sample'.content s
false
添加一个新的会议内容项作为参与者
——或分配了
contributor角色的所有成员。
>;>;browser.getlink('log out').click()
>;>;browser.open(portal_url+'/login_form')
>;>;browser.getcontrol(name=''uu ac_name').value='contributor'
>;>;browser.getcontrol(name=''u ac_password')。value=default_password
>>gt;browser.getcontrol(name='submit')。click()
>>gt;browser.open(portal_url)
我们使用"添加新内容"菜单添加新内容项。
>;browser.getlink('add new')。click()
"会议"并单击"添加"按钮以进入"添加"窗体。
>;>;browser.getcontrol("会议").click()
>;>;browser.getcontrol(name="form.button.add').click()
>;>;"会议"在浏览器中。内容
true
它。
>;>browser.getcontrol(name='title').value='meeting sample'
>;>browser.getcontrol('save').click()
>;'changes saved'在浏览器中。contents
true
我们添加了一个以参与者身份登录的新会议内容项。
最后,让我们以管理者身份重新登录。
>;>;browser.getlink('log out').click()
>;>;browser.open(portal\'url+'/log in\'form')
>;>;browser.getcontrol(name='''uu ac\'name').value=pOrtal_u owner
>;>browser.getcontrol(name=''uu ac_u password').value=default_password
>;>browser.getcontrol(name='submit').click()
>;>browser.open(portal_url)
下载
********