功能 #1126

为ezLibrarian插件增加1记录更新人2信息变化发送邮件通知功能3发送对账单邮件功能

Added by 邹 超群 about 1 year ago. Updated about 1 year ago.

Status:已关闭 Start:05/15/2009
Priority:普通 Due date:05/28/2009
Assigned to:吕 坤 % Done:

100%

Category:文档
Target version:1.0 Estimated time:12.00 hours

Description

先做一下这个简单的吧,用户评分的等我有空再细化一下功能

ezLibrarian插件见 http://github.com/zouchaoqun/ezlibrarian/tree/master

需求:

1、图书或者设备的持有人信息变化时,记录更新人
2、图书或者设备的持有人信息变化时,向旧持有人、新持有人、记录更新人发送通知邮件
3、发送对账单功能:向所有设备或图书的持有人发送一封对账单邮件,邮件内容是该用户持有的图书和设备的列表(含设备名称、编号、访问url、入手时间等)

temp.PNG (15.3 KB) 吕 坤, 05/19/2009 12:59 am

ezlibrarian-notify-mail-090601.PNG (9.5 KB) 邹 超群, 06/01/2009 11:17 am

temp.PNG (20.6 KB) 吕 坤, 06/03/2009 03:20 pm

temp.PNG (20.6 KB) 吕 坤, 06/03/2009 03:21 pm

ezlibrarian-mail-090603.PNG (16.1 KB) 邹 超群, 06/03/2009 04:24 pm

temp.PNG (19.6 KB) 吕 坤, 06/10/2009 05:34 pm

temp.PNG (16.6 KB) 吕 坤, 06/17/2009 10:07 pm

tests.png (13.4 KB) 吕 坤, 06/17/2009 10:10 pm

temp.PNG (52.7 KB) 吕 坤, 06/18/2009 09:43 pm

tests.png (52.9 KB) 吕 坤, 06/18/2009 10:07 pm

tests.png (57.5 KB) 吕 坤, 06/18/2009 10:10 pm

temp.PNG (51.1 KB) 吕 坤, 07/01/2009 04:03 pm

History

Updated by 吕 坤 about 1 year ago

translation missing: en, label_library
遇到问题,把Ezlibrarian放上去以后,提示上面的错误
为什么会找不到插件的中文翻译呢

Updated by 吕 坤 about 1 year ago

  • Due date set to 05/28/2009
  • Category set to 文档
  • Target version set to 1.0
  • Estimated time set to 12.00

今天,在production模式下使用,

就没有translate missing的错误了,我昨晚仔细看了代码
redmine-trunk\lib\redmine\plugin.rb

::I18n.load_path += Dir.glob(File.join(RAILS_ROOT, 'vendor', 'plugins', id.to_s, 'config', 'locales', '*.yml'))
是把每个插件的,多语言支持文件路径加载进去

无论如何,这个问题可以不管,可以先进行要求的任务研究

Updated by 邹 超群 about 1 year ago

你必须用rails2.2.2 + redmine trunk(at svn) + ezlibrarian at github
这样就不会出错了,development production都应该正常

Updated by 吕 坤 about 1 year ago

邹 超群 写到:

你必须用rails2.2.2 + redmine trunk(at svn) + ezlibrarian at github 这样就不会出错了,development production都应该正常

好的,谢谢你的回复

另外,对于
1、图书或者设备的持有人信息变化时,记录更新人
我打算
通过migrate增加add_column一个op_user_id字段,来记录记录更新人,到holder_change_histories
文件。
然后,在保存变更的时候,把当前用户的id存到这个字段。
2、图书或者设备的持有人信息变化时,向旧持有人、新持有人、记录更新人发送通知邮件
变更的时候,仿照邮件通知,发送记录变更的邮件

以上是我的理解,希望你确认一下,没有大问题,我就先这么弄出来 :)

Updated by 邹 超群 about 1 year ago

我觉得更新人的字段名叫做 updater_id 更清晰一点

关于邮件的地方可以多参考一下 ezFAQ,很多可以直接搬过来用

最后一句变更的时候没太理解是什么时候?

可以先这么做着,做好后再调整。或者也可以把设计描述的更细一些,我们再讨论。

Updated by 吕 坤 about 1 year ago

邹 超群 写到:

我觉得更新人的字段名叫做 updater_id 更清晰一点
好的,的确updater_id字段名,更容易理解

关于邮件的地方可以多参考一下 ezFAQ,很多可以直接搬过来用
我去看看 最后一句变更的时候没太理解是什么时候?
或者,我把基本代码贴上来,就好看懂点了。不合适的地方,再改也有个依据。 可以先这么做着,做好后再调整。或者也可以把设计描述的更细一些,我们再讨论。

另外,我看官网的安装说明
rake config/initializers/session_store.rb

rake redmine:load_default_data
都有什么作用啊,我简单看了lib task文件,不是太清楚

我是想确认,有一次我安装完的redmine中没有,问题的等级(优先级),而另一数据库里就有。

Updated by 邹 超群 about 1 year ago

网站上的安装说明基本正确,但是可能有一点点会落后于软件的更新

session store的应该写的很明白吧
4. Generate a session store secret (r2493 and higher only. 0.8.x users can skip this step)
Redmine stores session data in cookies by default, which requires a secret to be generated. This can be done by running:

关于load_default_data的就是来设置那些枚举值,但是我一般在管理员界面上来导入默认值,你刚装好redmine进管理界面会有提示。
我个人认为通过rake可能会有语言问题,但没仔细研究。

Updated by 吕 坤 about 1 year ago

ActionController::RoutingError (No route matches "/plugin_assets/redmine_ezlibrarian/stylesheets/ezlibrarian.css" with {:method=>:get}):
c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/routing/recognition_optimisation.rb:66:in `recognize_path'
...
Rendering c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/templates/rescues/layout.erb (not_found)
controller/templates/rescues/layout.erb (not_found)

出现这种错误是什么导致的呢?
就是默认的css没有,路径以为我们的插件名字是redmine_ezlibrarian

Updated by 吕 坤 about 1 year ago

  • File temp.PNG added
  • % Done changed from 0 to 10

1、图书或者设备的持有人信息变化时,记录更新人
这个部分完成了

示例
见附件的截图
代码,从 git://github.com/hlee/redmine_ezlibrarian.git 拿

改了几个部分吧

Updated by 邹 超群 about 1 year ago

把你redmine_polls的github项目还是打开一下吧,那个我还没看过呢..

另外我已经把你的github账号hlee加到我的ezlibrarian项目中了,你看看是否能够提交?

Updated by 邹 超群 about 1 year ago

吕 坤 写到:

ActionController::RoutingError (No route matches "/plugin_assets/redmine_ezlibrarian/stylesheets/ezlibrarian.css" with {:method=>:get}): c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/routing/recognition_optimisation.rb:66:in `recognize_path' ... Rendering c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/templates/rescues/layout.erb (not_found) controller/templates/rescues/layout.erb (not_found)

出现这种错误是什么导致的呢? 就是默认的css没有,路径以为我们的插件名字是redmine_ezlibrarian

关于route的问题是插件必须固定路径,这是engines的限制。这个在安装说明里面有提示

Updated by 吕 坤 about 1 year ago

邹 超群 写到:

把你redmine_polls的github项目还是打开一下吧,那个我还没看过呢..
这个没问题,我在传就行

另外我已经把你的github账号hlee加到我的ezlibrarian项目中了,你看看是否能够提交?

好的

有时间我就传上去看

Updated by 吕 坤 about 1 year ago

邹 超群 写到:

吕 坤 写到:

ActionController::RoutingError (No route matches "/plugin_assets/redmine_ezlibrarian/stylesheets/ezlibrarian.css" with {:method=>:get}): c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/routing/recognition_optimisation.rb:66:in `recognize_path' ... Rendering c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/templates/rescues/layout.erb (not_found) controller/templates/rescues/layout.erb (not_found)

出现这种错误是什么导致的呢? 就是默认的css没有,路径以为我们的插件名字是redmine_ezlibrarian

关于route的问题是插件必须固定路径,这是engines的限制。这个在安装说明里面有提示

好的,明白啦

Updated by 吕 坤 about 1 year ago

可以更新到github的ezlibrarian的项目里
我已经更新了,检查一下吧

Updated by 吕 坤 about 1 year ago

2、图书或者设备的持有人信息变化时,向旧持有人、新持有人、记录更新人发送通知邮件

我开始看这个功能的需求了,

按照之前我们的讨论,我参考了ezfaq,我的理解是:
是否,也在ezlibrarian的model下建立类似的lib_mailer.rb专门处理email和定制邮件内容

Updated by 邹 超群 about 1 year ago

吕 坤 写到:

2、图书或者设备的持有人信息变化时,向旧持有人、新持有人、记录更新人发送通知邮件

我开始看这个功能的需求了,

按照之前我们的讨论,我参考了ezfaq,我的理解是: 是否,也在ezlibrarian的model下建立类似的lib_mailer.rb专门处理email和定制邮件内容

是的,是应该这样做,基本上是从ezFAQ照搬就行

Updated by 吕 坤 about 1 year ago

邹 超群 写到:

吕 坤 写到:

2、图书或者设备的持有人信息变化时,向旧持有人、新持有人、记录更新人发送通知邮件

我开始看这个功能的需求了,

按照之前我们的讨论,我参考了ezfaq,我的理解是: 是否,也在ezlibrarian的model下建立类似的lib_mailer.rb专门处理email和定制邮件内容

是的,是应该这样做,基本上是从ezFAQ照搬就行

好的,那,我就学习一下:)

Updated by 吕 坤 about 1 year ago

吕 坤 写到:

邹 超群 写到:

把你redmine_polls的github项目还是打开一下吧,那个我还没看过呢..

这个没问题,我在传就行

另外我已经把你的github账号hlee加到我的ezlibrarian项目中了,你看看是否能够提交?

好的

有时间我就传上去看

我把我的工作传上去了,
怎么再下载下来,又没有了呢

Updated by 吕 坤 about 1 year ago

吕 坤 写到:

邹 超群 写到:

把你redmine_polls的github项目还是打开一下吧,那个我还没看过呢..

这个没问题,我在传就行

另外我已经把你的github账号hlee加到我的ezlibrarian项目中了,你看看是否能够提交?

好的

有时间我就传上去看

redmine_polls

git://github.com/hlee/redmine_polls.git

你可以通过上面的检查

Updated by 吕 坤 about 1 year ago

吕 坤 写到:

邹 超群 写到:

吕 坤 写到:

2、图书或者设备的持有人信息变化时,向旧持有人、新持有人、记录更新人发送通知邮件

我开始看这个功能的需求了,

按照之前我们的讨论,我参考了ezfaq,我的理解是: 是否,也在ezlibrarian的model下建立类似的lib_mailer.rb专门处理email和定制邮件内容

是的,是应该这样做,基本上是从ezFAQ照搬就行

好的,那,我就学习一下:)

我的进展受到很严重的阻碍,是因为,我没有办法测试邮件

开始的时候,我就直接在mail.yml里设置一个163或者gmail的smtp邮箱设置,发现一直没有邮件发出
后来,查了一些资料说Actionmails是不支持,非本地邮件配置的。。。

所以,我就认为,我必须要配置一个本地的邮件smtp服务
现在的情况的,我配置的smtp用的winwebmail不能正常工作,我不知道怎么在客户端配置smtp以便发出邮件

没有什么更好的办法,我只好,先研究能够在本地配置一个可以发送邮件的smtp

Updated by 邹 超群 about 1 year ago

可以用163、sina或者263的,google不行,google没有smtp服务

据我自己开发的经验,可能用这些邮件发送邮件会有些延迟,但是一般是能发出去的。具体原因没有分析过

不必自己设置smtp服务器,实在不行直接看日志也行。development的日志里面会有邮件的详细内容,看内容对了也可以。

Updated by 吕 坤 about 1 year ago

邹 超群 写到:

可以用163、sina或者263的,google不行,google没有smtp服务

据我自己开发的经验,可能用这些邮件发送邮件会有些延迟,但是一般是能发出去的。具体原因没有分析过

不必自己设置smtp服务器,实在不行直接看日志也行。development的日志里面会有邮件的详细内容,看内容对了也可以。

设备更新持有人时,发邮件的功能完成了
没有配置smtp,就是看development里日志确定的
已经提交到github
git://github.com/hlee/redmine_ezlibrarian.git

最后,一个部分关于发送对账单,是要在什么地方做个触发按钮吗?
我正在写,这个方法,我想核实的是,在什么地方,调用这个方法

Updated by 吕 坤 about 1 year ago

  • % Done changed from 10 to 70

功能三也完成了
我通过控制台下
LibMailer.deliver_send_statement()
调用就可以看到,后台的邮件都分别发送给了设备持有人了。
只是没有把这个方法调用,放到前台。

git://github.com/hlee/redmine_ezlibrarian.git

试试看吧,有什么问题,我再改

Updated by 邹 超群 about 1 year ago

对账单的发送要放在界面上,可以单独做一个页面,同时可以在页面上显示一些统计信息,例如有多少本书,会发送多少邮件等。
如果能做成带发送进度条的更好,不过没有的话也不影响。

Updated by 邹 超群 about 1 year ago

吕 坤 写到:

功能三也完成了 我通过控制台下 LibMailer.deliver_send_statement() 调用就可以看到,后台的邮件都分别发送给了设备持有人了。 只是没有把这个方法调用,放到前台。

git://github.com/hlee/redmine_ezlibrarian.git

试试看吧,有什么问题,我再改

另外,应该提交到我的 https://github.com/zouchaoqun/ezlibrarian/tree 这个库里面来啊,再研究一下看看如何提交吧。

Updated by 邹 超群 about 1 year ago

请发布前再仔细测试一下。不要着急。

1、新建图书时会报错,后面进行不下去...

NoMethodError (You have a nil object when you didn't expect it!
The error occurred while evaluating nil.holder_id):
/vendor/plugins/redmine_ezlibrarian/app/models/book.rb:21:in `after_save'

Updated by 邹 超群 about 1 year ago

另外,由于你这个属于升级操作,可能很多记录根本没有updater,应该考虑在updater是空的时候显示没有人的图像。

其它部分也希望能再细致一点,我们不是在做测试软件或者练手程序,而是立即要投入使用的系统。

Updated by 吕 坤 about 1 year ago

邹 超群 写到:

另外,由于你这个属于升级操作,可能很多记录根本没有updater,应该考虑在updater是空的时候显示没有人的图像。

其它部分也希望能再细致一点,我们不是在做测试软件或者练手程序,而是立即要投入使用的系统。

完成如下部分:
1. 关于第一次创建设备时,发送不同于设备更新的邮件
2. Updater为空时,显示没有人的图像
3. 国际化i18n
4. 消除tab用空格代替的检查
还是在这,git://github.com/hlee/redmine_ezlibrarian.git

没有完成的部分:
1. 对账单发送页面
2. 提交到原来的git仓库

希望,能稍微试试,看看有什么问题,我再改,
添麻烦了

Updated by 邹 超群 about 1 year ago

  • 邮件可以发了,不过国际化还不完全,字体也不太正常(太小),如下图
  • Book、Device等这些都要国际化
  • 邮件里面把图书或者设备的属性都加上吧
  • 最好用ul来列表,而不是通过一堆<br />来换行
  • 主题好像丢字了,也不像一句通顺的中文,需要再仔细设计一下
  • 历史记录页面的表格宽度要设置一下,现在都挤在一起了,应该不允许换行
  • 有些没用的文件例如 _faq****、***.bak的可以去掉了

Updated by 吕 坤 about 1 year ago

邹 超群 写到:

  • 邮件可以发了,不过国际化还不完全,字体也不太正常(太小),如下图
  • Book、Device等这些都要国际化
  • 邮件里面把图书或者设备的属性都加上吧
  • 最好用ul来列表,而不是通过一堆<br />来换行
  • 主题好像丢字了,也不像一句通顺的中文,需要再仔细设计一下
  • 历史记录页面的表格宽度要设置一下,现在都挤在一起了,应该不允许换行
  • 有些没用的文件例如 _faq****、***.bak的可以去掉了


这次提交修改的如下:
1.完整了国际化信息,请检查
2.Book、Device,修改了
3.增加了图书和设备的属性,按照,原来的book_show和device_show改的
4.主题修改了
没有做的
1. 删除备份信息
2. 发送对帐单界面
3. 提交到原来的library插件目录
4. 不太明白“历史记录页面的表格宽度要设置一下”,请参考截图

请检查

Updated by 邹 超群 about 1 year ago

字体仍不太正常,下图蓝框里的我觉得可以,红框的字体设置有些问题

这个是更新操作,但仍显示的是:

设备成功创建,相关信息如下
设备间 : 签字笔

其它的未发现问题,不过部分文字可能需要调整一下。下一步,请尽快提交到我的版本库里面来,这样我就可以开始修改一些文字上的小问题了。

列表宽度的问题确实好了... 暂时不要管那个了

Updated by 吕 坤 about 1 year ago

邹 超群 写到:

字体仍不太正常,下图蓝框里的我觉得可以,红框的字体设置有些问题

这个是更新操作,但仍显示的是: [...]

其它的未发现问题,不过部分文字可能需要调整一下。下一步,请尽快提交到我的版本库里面来,这样我就可以开始修改一些文字上的小问题了。

列表宽度的问题确实好了... 暂时不要管那个了

好的,我会先解决,提交的问题

Updated by 吕 坤 about 1 year ago

吕 坤 写到:

邹 超群 写到:

字体仍不太正常,下图蓝框里的我觉得可以,红框的字体设置有些问题

这个是更新操作,但仍显示的是: [...]

其它的未发现问题,不过部分文字可能需要调整一下。下一步,请尽快提交到我的版本库里面来,这样我就可以开始修改一些文字上的小问题了。

列表宽度的问题确实好了... 暂时不要管那个了

好的,我会先解决,提交的问题

1. 删除了.bak文件
2. 上传到了原来的ezlibrarian
3. 修改关于更新是,提示创建成功

Updated by 吕 坤 about 1 year ago

添加了对账单发送界面,如附件所示

提交到ezlibrarian

存在问题:
1. 邮件格式,由于无法验证所以,还是有问题
2. 发送对账单后,变英文了。

所以,可能还是需要配置邮件服务器,才能检查效果

Updated by 吕 坤 about 1 year ago

吕 坤 写到:

添加了对账单发送界面,如附件所示

提交到ezlibrarian

存在问题: 1. 邮件格式,由于无法验证所以,还是有问题 2. 发送对账单后,变英文了。

所以,可能还是需要配置邮件服务器,才能检查效果

Updated by 吕 坤 about 1 year ago

1. 解决了发送邮件后,提示信息是英文的问题,是我的设置问题。
2. 解决了邮件服务器问题。我终于可以看到邮件的内容了。
主要的问题是,553 You are not authorized to send mail, authentication is required
这个问题是,我设置的邮件地址和我配置的发送邮件的smtp不一致导致的。

那么,下面唯一剩的问题,就是,调整邮件的显示问题。
因为,终于可以发送邮件了。这个问题我也就可以调整了。

Updated by 吕 坤 about 1 year ago

上传,邮件成功提示

Updated by 吕 坤 about 1 year ago

调整了,邮件的显示
设备持有人变更的邮件的大小

Updated by 吕 坤 about 1 year ago

第一次创建

Updated by 吕 坤 about 1 year ago

  • File tests.png added
  • % Done changed from 70 to 90

设备持有情况报告
对帐单,内容和格式也调整完了

那么,到现在为止,就全部结束了

Updated by 吕 坤 about 1 year ago

代码已经提交到
原来的ezlibrarian

Updated by 邹 超群 about 1 year ago

请提交到我的github库里: http://github.com/zouchaoqun/ezlibrarian/tree/master

现在你有2个ezlibrarian,不过看起来似乎都不对,至少都没有这个 show_statement.html.erb
你都统一提交到我的库里,就不会有这些问题了

另外,邮件的主题需要再改一改,至少要把图书名或者设备名称加上

Updated by 吕 坤 about 1 year ago

邹 超群 写到:

请提交到我的github库里: http://github.com/zouchaoqun/ezlibrarian/tree/master

现在你有2个ezlibrarian,不过看起来似乎都不对,至少都没有这个 show_statement.html.erb 你都统一提交到我的库里,就不会有这些问题了

另外,邮件的主题需要再改一改,至少要把图书名或者设备名称加上

这次应该,可以确认提交到你的github库了
我也把我的fork的那连个ezlibrarian删除了
然后,我再改邮件主题。

Updated by 吕 坤 about 1 year ago

邹 超群 写到:

请提交到我的github库里: http://github.com/zouchaoqun/ezlibrarian/tree/master

现在你有2个ezlibrarian,不过看起来似乎都不对,至少都没有这个 show_statement.html.erb 你都统一提交到我的库里,就不会有这些问题了

另外,邮件的主题需要再改一改,至少要把图书名或者设备名称加上

邮件的主题也加了图书名和设备名了

Updated by 吕 坤 about 1 year ago

然后下面,能不能
一方面,如果这个问题还有什么要改的,我再改
另外一方面,你看看下一步的,评分或者其它的工作,我也先看看

Updated by 邹 超群 about 1 year ago

  • Status changed from 新建 to 已关闭
  • % Done changed from 90 to 100

已修改并提交为0.1.5

Also available in: Atom PDF