FTP功能小改动,实现一些实用功能【修改】
-
当前使用FTP实现一些功能
1. 每一个产品都有一个对应的产品目录,所以我们可以将产品的 技术文档,生产文档, 销售文档 全部放在这个目录里面,这样可以做到文件集中管理。(权限简单测试没有问题,还需要再测试)
2.每一个定单都会有一个与之对应的销售单号目录,如SO001,这样我们就可以将客户的资料统一放到这个目录里,实现客户资料的统一管理。
当前遇到的问题
在产品A下创建目录A0,并将A0.txt放入A0目录中,在A0目录下查看文件显示正常,但在产品A的目录下会同时显示 A0及A0.TXT, 定单也是同样问题, 这样与普通的FTP不一样,造成显示的混乱。
解决方法已经找到,当前是直接修改源码,希望有哪位大神可以将之做成模块
修改: document.py 的def search(self, cr, uid, args, offset=0, limit=None, order=None, context=None, count=False):的第一行加入
if args[0][0]!='parent_id':
args.append(('parent_id','=',None))
思路:
刚开始以为是FTP模块的事,在里面LIST及列目录函数中转悠了好长时间,后来发现在产品的附件中也会把下级目录的内容显示出来,才知道不是FTP的事,是document的问题,由于是在搜索时出现,直接打开document.py找到search函数,分析数据库得出: 凡是parent_id有数字的,那么这个目录一定是用户自己创建的,并且在别一个数据表中有对应项, 凡是这个字段是NULL的,那么一定是虚拟目录。
分析虚拟目录和正常目录的区别
虚拟目录: [[u'res_model', u'=', u'product.product'], [u'res_id', u'=', 47],[u'type', u'in', [u'binary', u'url']]]
正常目录: [('parent_id', '=', 21), ('res_model', '=', u'product.product'), ('res_id', '=', 47)]