的内容。
登录并访问/todo
!
自定义模板
提供的模板相当简单,仅用作起点。与以前的django-todo版本不同,它们现在作为引导示例提供,但是可以随意覆盖它们-对引导没有硬依赖性。要覆盖模板,请在项目的模板目录中创建todo
文件夹,然后将要覆盖的模板从django todo源复制到该目录中。
提交公共票
如果您希望使用公共票证归档系统,请首先创建这些票证应归档到的列表,然后将其slug添加到设置中的todo\u default\u list\u slug
(有关下面设置的详细信息)。
设置
可选配置参数,可添加到项目设置中:
# Restrict access to ALL todo lists/views to `is_staff` users.# If False or unset, all users can see all views (but more granular permissions are still enforced# within views, such as requiring staff for adding and deleting lists).TODO_STAFF_ONLY=True# If you use the "public" ticket filing option, to whom should these tickets be assigned?# Must be a valid username in your system. If unset, unassigned tickets go to "Anyone."TODO_DEFAULT_ASSIGNEE='johndoe'# If you use the "public" ticket filing option, to which list should these tickets be saved?# Defaults to first list found, which is probably not what you want!TODO_DEFAULT_LIST_SLUG='tickets'# If you use the "public" ticket filing option, to which *named URL* should the user be# redirected after submitting? (since they can't see the rest of the ticket system).# Defaults to "/"TODO_PUBLIC_SUBMIT_REDIRECT='dashboard'# Enable or disable file attachments on Tasks# Optionally limit list of allowed filetypesTODO_ALLOW_FILE_ATTACHMENTS=TrueTODO_ALLOWED_FILE_ATTACHMENTS=[".jpg",".gif",".csv",".pdf",".zip"]TODO_MAXIMUM_ATTACHMENT_SIZE=5000000# In bytes# additionnal classes the comment body should hold# adding "text-monospace" makes comment monospaceTODO_COMMENT_CLASSES=[]# The following two settings are relevant only if you want todo to track a support mailbox -# see Mail Tracking below.TODO_MAIL_BACKENDSTODO_MAIL_TRACKERS
当前的django todo版本号可从todo包中获得
python -c "import todo; print(todo.__version__)"
通过csv导入任务
django todo能够从特定格式的csv电子表格批量导入("upsert")任务。此功能通过管理命令和Web界面提供。
管理命令
/manage.py导入csv-f/path/to/file.csv
网络导入器
从导航链接到{url"todo:import_csv"}
。按照CSV Web上载视图的结果链接进行操作。
CSV格式
将todo/data/import_example.csv
复制到系统上的其他位置,并在电子表格中编辑或直接编辑。
不要编辑标题行!
前四列:'title'、'group'、'task list'、'created by'
是必需的--所有其他列都是可选的,它们的工作方式应该与通过Web UI手动输入任务的方式非常相似。
注意:在内部,任务被设置为任务列表,而不是组(任务列表在GROUPS中)。但是,我们请求csv中的组
因为在不同的组中可以有多个同名的任务列表;也就是说,我们需要它来进行命名空间和权限设置。
导入规则
由于通过csv输入的数据不会经过django todo其余部分中强制执行的相同视图权限,并且为了简化数据依赖性逻辑,并预先阻止django todo用户之间的分歧,导入程序将而不是创建新用户、组或任务列表。CSV中引用的所有用户、组和任务列表必须已存在,并且组成员身份必须正确。
任何验证错误(例如无法解析的日期、不正确的组成员身份)都将导致跳过该行。
在运行结束时,将提供一份报告,其中包含行的升序和跳过行(包括行号和原因)。
upsert逻辑
对于每个有效行,我们需要决定是创建新任务还是更新现有任务。django todo匹配四个必需列的唯一组合。如果我们找到一个匹配的任务,我们就更新e其他列。换言之,如果导入一次CSV,然后编辑任务的分配给并再次导入,则原始任务将使用新的分配者进行更新(其他列也是如此)。
否则,我们将创建一个新任务。
邮件跟踪
如果你能把django todo变成一个共享邮箱呢?django todo包含一个可选功能,允许发送电子邮件
作为新任务发送到专用邮箱以推送到TOdo,并作为对这些任务的评论添加响应。
这允许支持团队使用完全统一的电子邮件+错误跟踪系统,以避免混淆谁看到或
响应了什么。
要启用邮件跟踪,您需要:
- 为发送的电子邮件定义电子邮件后端
- 为收到的电子邮件定义电子邮件后端
- 启动一个员工,该员工将等待新的电子邮件
在"设置"中:
fromtodo.mail.producersimportimap_producerfromtodo.mail.consumersimporttracker_consumerfromtodo.mail.deliveryimportsmtp_backend,console_backend# email notifications configuration# each task list can get its own delivery methodTODO_MAIL_BACKENDS={# mail-queue is the name of the task list, not the worker name"mail-queue":smtp_backend(host="smtp.example.com",port=465,use_ssl=True,username="test@example.com",password="foobar",# used as the From field when sending notifications.# a username might be prepended later onfrom_address="test@example.com",# additionnal headersheaders={}),}# incoming mail worker configurationTODO_MAIL_TRACKERS={# configuration for worker "test_tracker""test_tracker":{"producer":imap_producer(host="imap.example.com",username="text@example.com",password="foobar",# process_all=False, # by default, only unseen emails are processed# preserve=False, # delete emails if False# nap_duration=1, # duration of the pause between polling rounds# input_folder="INBOX", # where to read emails from),"consumer":tracker_consumer(group="Mail Queuers",task_list_slug="mail-queue",priority=1,task_title_format="[TEST_MAIL] {subject}",)}}
可以使用以下命令启动邮件工作程序:
./manage.py mail_worker test_tracker
为了保持逻辑一致性,在2.0中重命名了一些视图和url。如果这影响到您,请参阅源代码和演示gtd站点,以获取有关新url名称的参考信息。
如果要记录邮件事件,请确保正确配置django日志:
LOGGING={'version':1,'disable_existing_loggers':False,'handlers':{'console':{'class':'logging.StreamHandler',},},'loggers':{'':{'handlers':['console'],'level':'DEBUG','propagate':True,},},}
运行测试
django todo只使用pytest进行测试。运行该套件的最佳方法是将django todo克隆到自己的目录中,安装pytest,然后:
{%blockextrahead%}{%endblockextrahead%}{%blockextra_js%}{%endblockextra_js%}
0
版本历史记录
2.4.8为未指定设置设置默认值时修复错误
2.4.7在"外部添加"中支持自定义用户模型
2.4.6使用默认设置、更新perms和测试的哈希值
2.4.5在任务编辑期间重新启用"通知"功能
2.4.4修复setup.py/installation的问题
2.4.0在任务中实现可选的文件附件
2.3.2更新setup.py元数据
2.3.1改进对格式错误或不存在的CSV上载的错误处理。
2.3.0实施邮件跟踪系统。增加了通过csv批量导入任务的能力。修复了在后台删除任务时重新排序的问题。
2.2.2更新依赖项
2.2.1转换任务删除并将"完成"视图切换为仅发布
2.2.0重新设置仅限TOdo_员工的强制执行设置
2.1.1将文档中的python版本要求更正为python 3.6
2.1.1将视图分割成不同的模块。
2.1.02018年12月:不再允许在任务或评论体中使用javascript。其他错误修复。
2.0.32018年4月:在setup.py中提升生产状态
2.0.22018年4月:改进通知电子邮件主题和正文
2.0.12018年4月:从列表视图重构"切换完成"和"删除"操作。
2.02018年4月:重大项目重构,几乎完全重写了视图、模板和Todo的第一个真正的测试套件。
1.6.2增加了对列表名/段塞中Unicode字符的支持。
1.6.1小错误修复。
1.6允许未分配("任何人")任务。清理/更新模板和视图。测试基础设施到位。
1.5支持flake8,项目注释不再是必需字段,修复django 1.8的警告,python 2/3兼容的unicode字符串,简单搜索任务,获取项目的绝对url()。
1.4-从默认模板中删除样式。添加从表单定义中排除字段以防止警告。已从模板中删除不推荐使用的"循环"标记。为提交公共票证添加了各种元素的设置。
1.3-删除杂散直接到模板引用。引用了的所有命名URL引用Django 1.5兼容性。
1.2-向所有样本模板添加CSRF保护。增加了综合搜索功能。现在显示每个项目的已完成项目/总项目的比率
名单。更好地分离媒体和模板。已清理项编辑窗体(已删除无关字段)。重新分配任务现在正确限制
受让人名单。已将项目移动到GitHub。
1.1-在从列表中检查项目时,完成日期设置正确,但在从项目详细信息页保存时设置不正确。在项上添加了保存方法
修理。修正了文档错误:上下文处理器。新添加的评论现在会通过电子邮件发送给参与某项任务的所有人。
1.0.1-查看要关闭的单个任务时,可以同时评论和关闭任务。我们在用
django评论说,这些是不同视图中的不同模型。解决方案是停止使用django注释并滚动我们自己的注释,然后重新连接
查看。抱歉,如果您使用的是以前的版本-您可能需要将您的评论移植到新系统。
1.0.0-升级到发行版。拖放任务优先级。电子邮件通知(现在更像一个票务系统)。更多
有魅力的约会对象。错误修复。
0.9.5-修复了编辑现有事件时的jquery错误-datepicker现在显示正确的日期。从基本模板中删除了那匹该死的django小马。
0.9.4-在型号中用Unicode替换了str。修复了"我的任务"视图中列表的链接。
0.9.3-缺少指向单个任务编辑视图的链接
0.9.2-现在尝试将第二个同名列表添加到同一组时失败。-任务的截止日期现在确实是可选的。-
更正了编辑任务时的日期时间编辑冲突-任务名称的最大长度已从60个字符提高到140个字符。如果升级,请
相应地修改数据库(字段todo_item.name=maxlength 140)。-安全性:提供直接任务URL的用户不能再查看/编辑
组范围之外的任务与列表视图相同-仅限授权视图。-在主页上更正项目和组计数(注意-管理员用户请参见
所有组,而不仅仅是它们"所属"的组)
0.9.1-删除上下文处理器.py-剩余垃圾
0.9-首次发布
TODO2.0升级说明
django todo 2.0几乎是从头开始重建的,其中包括一些根本性的更改,包括模型名更改。因此,它与django todo 1.x中的数据不兼容。如果要升级现有安装,请尝试以下操作:
- 使用
/manage.py dumpdata todo--indent 4>;todo.json
导出旧的todo数据 - 编辑转储文件,用新的模型名称(
任务
和任务列表
)替换旧的模型名称项
和列表
) - 删除现有的待办事项数据
- 卸载旧的todo应用程序并重新安装
- 迁移,然后使用
/manage.py loaddata todo.json
导入编辑的数据
为什么不提供迁移?
这是计划,但不幸的是,makemigrations
创建了新表并删除了旧表,使这成为一个破坏性的更新。不幸的是,重命名模型不是makemigrations
所能做到的,而且我真的不想保留名称不正确的原始模型。对不起的!
日期选择器
django todo不再引用jquery日期选择器,而是默认为本机html5浏览器日期选择器(safari不支持,不可原谅)。您可以自由选择一种方法。
网址
为了保持逻辑一致性,重命名了一些视图和url。如果这影响到您,请参阅源代码和演示gtd站点,以获取有关新url名称的参考信息。
欢迎加入QQ群-->: 979659372
推荐PyPI第三方库