-
Notifications
You must be signed in to change notification settings - Fork 0
model details
这部分描述了数据库实现细节,主要是给文档菌 @misaki @zhang_sh11 和 @TaccoRaw 看的 Borrowing那块还没写好,逻辑有点混乱 有什么的地方或需要的接口函数写在Issue里吧
目前分组与权限:(参见需求文档)
group_list = ['NormalUser', 'AdvancedUser', 'Blacklist', 'Admin'] # guest
permission_list = ['can_search', 'can_comment', 'can_manage']
permission_num_list = ['borrowing_num', 'borrowing_coefficient', 'queue_book_num']
其中'can_manage'为权限'can_midify_book','can_change_perm','can_generate_tempuser','can_manage_blacklist', 'can_delete_user'的集合
域
- user, OneToOneField 一对一表关系到django自带的User模型。这个模型包含:
- username 用户名
- password 密码(加密后
- email 邮箱
- groups 分组('NormalUser', 'AdvancedUser', 'Blacklist', 'Admin' 之一, 默认为NormalUser)
- perssions 权限(由分组决定其权限,目前没有为每个用户单独设置权限), 目前只有三种权限('can_search', 'can_comment', 'can_manage')
- name, 真实姓名(昵称)
接口函数
- register(username, password, email, name, group='NormalUser'), 注册, 必须保证传入数据合法 #282
- set_group(group) 更改分组,用于拉黑,提权等
- get_group_name() 得到当前分组名
- get_group() 得到所有分组类的数组(应该用不到)
- has_perm(string) 判断是否有某种权限, 传入string, 返回bool值
- get_perm(string) 返回数字权限的对应值
域(这么多!!!吐槽一下需求文档。。。。, 具体见需求文档)
- duartion 借书期限,为0, 7, 14
- name_cn 中文名,若为中文书、中译本或影印本则直接为书名,若对于外文原本则赋空值。
- author 作者名:中英文名称皆支持。多个,“,”分割
- press 中英文名称皆支持。
- pub_year 出版年份:代表公元纪年4位数字。
- revision 版次:一个阿拉伯数字。
- ISBN 根据国际标准,每本书都有一个对应的ISBN码。
- name_origin 写不动了,见需求文档。。。。。。。。。。。。
- translator 多个,“,”分割
- pub_year_origin
- revision_origin
- type 分类:对于图书的类型定义,如文学,数学,计算机等。(发现忘写了,等下加上)
接口函数
- simple_name() 返回简单书名
- simple_version() 返回简单版本信息
- search(string) staticmethod, 返回搜索结果的qureyset
域
- book ForeignKey连接其对应的book类
- location 馆藏位置
接口函数
get_status 返回一个dict类型的值status。status['text']为'borrowing'、'arranging'、'disappear'、'on shelf',分别对应出借中、(归还后)整理中、已丢失、在架上。当status['text']为‘borrowing’时,另有status['expire']、status['reborrow_count']、status['queue']分别表示到期时间、已续借次数、当前预约人数。注意,到期时间可能已经超过today(),即应为“已超期”。
域
- title 标题
- content 内容
- date 时间(自动存入创立时的时间)
- species 种类,整数域, 存入
species_choice=((0, 'news'),(1, guide))
接口函数
- local_time() 返回本地时间, 一个类
- get_all(sp=None) 返回sp为某种类的所有Info(sp传入news或guide), 默认返回所有
- get_species_display 状态(str),即上一条的对应关系
域
-
status 状态(需传入int,如下)
status_choice = ((0, 'borrowing'),(1, 'reborrowing 1'),(2, 'reborrowing 2'),(3, 'arranging'),(4, 'queue'), (5, 'disappear'))
-
datetime 发生时间
-
book_copy 对应的书的副本
-
myuser 对应的用户
-
is_active bool值,记录是否已经失效 接口函数
-
borrow(myuser, book_copy) staticmethod, 用户myuser去借book_copy
-
reborrow(myuser, book_copy) staticmethod 用户续借
-
return_book(myuser, book_copy) staticmethod 用户归还
-
queue_next(book_copy) staticmethod 管理员把归还的书给最先预约的人
-
readify(book_copy) staticmethod 管理员把归还的书上架
-
disappear(myuser, book_copy) staticmethod 用户将图书丢失