我正在运行TRAC 1.0.1。 对于我的门票,我想有一个DueDate。输入DueDate应该使用DatePicker完成。因为它很方便,你不能输入错误的值。
我在TRAC中添加了以下插件:http://trac-hacks.org/wiki/DateFieldPlugin 描述说,它提供自定义字段的验证和Milestone和Ticket字段的DatePicker。
我的trac.ini配置文件如下所示:
[ticket-custom]
duedate1 = text
duedate1.date = true
duedate1.date_empty = true
duedate1.label = Due Date
duedate1.order = 4
duedate1.value = DD-MM-YYYY
[datefield]
first_day = 1
format = dmy
separator = -
TRAC现在正在根据格式检查输入。但我真正想要的是一个弹出的DatePicker,让我选择日期。
感谢任何帮助。
答案 0 :(得分:2)
如果输入正在验证但没有日期选择器,则听起来像客户端JS /浏览器问题。
我刚创建了一个新的Trac环境,添加了DateFieldPlugin,复制了您的[ticket-custom]
和[datefield]
ini
配置,似乎开箱即用。例如在/ newticket上我可以看到截止日期字段的日期选择器(至少使用Firefox)。鉴于此,我所能做的就是提供一些可能有助于我们调试问题的更多细节。
通过JavaScript添加日期选择器。如果您正在运行Trac 1.0,那么您不需要担心jQuery或jQuery UI,因为Trac核心现在附带了这些依赖项。当您运行tracd时,您可以通过查看Firebug等中的脚本选项卡来查看。您是否正在提供可能存在冲突的jQuery或jQuery UI脚本? Firebug控制台选项卡上是否显示任何错误?
当你在Trac中请求某些页面时,插件会提供额外的JS文件,包括/ newticket和/ ticket。您还应该能够看到这些脚本在Firebug中提供等等。这是真的吗?
如果您检查/ newticket上显示的ticket.html
模板中的HTML,您还应该在截止日期输入中看到类似的内容
<input type="text" class="datepick hasDatepicker" value="MM-DD-YYYY" name="field_due_date1" id="field-due_date1">
请注意,两个datepick
和hasDatePicker
类告诉JS呈现jQuery Datepicker对话框。您的自定义字段是否包含这些类?该插件应该为您添加它们(在post_process_request()
内)
如果您的所有内容都相同,那么这可能是浏览器问题?
答案 1 :(得分:1)
虽然插件方式还可以,但是没有别的方法,现在它只是次佳,因为将日期/时间存储为格式化字符串而不是POSIX(微秒)的所有限制,就像其他原生一样Trac时间字段。
有一种更好的方法:Custom date/time field support自1.1.1开始进入Trac核心(&#34;不稳定&#34;开发分支向下一个稳定1.2移动)。
至少如果您预见到大量使用和/或长期Trac部署,您会感谢从一开始就向您的数据库添加真正的时间戳。它为您提供了最佳的体验,如日期选择器UI,全时区和TracQuery支持,甚至未来的时间限制(&#39;次日&#39;,&#39;下周&#39;等)现在可能
关于Trac代码稳定性的最后一个注意事项:对于我自2009年以来使用真正的自定义时间字段支持生产补丁(Trac 0.13dev)的价值,现在在具有30.000+票据的应用程序中运行顺畅。 / p>