1. 程式人生 > 實用技巧 >2-crm專案-kingadmin

2-crm專案-kingadmin

###############展示左側選單 ###############

"""
django自帶後臺admin的使用:
1,註冊每個表,
2,建立超級管理員,用來登陸
3,登陸進去裡面有user和group,這是django自帶的,
4,你可以在user中,建立一個使用者,然後登陸,是沒有任何的許可權的,
5,可以給新建的使用者,新增許可權,但是這個許可權級別只能到表,不能到更具體的了,
6,對於表名,是顯示的英文,但是你可以配置表的元資訊來改變成為漢字,
7,我們可以使用django自帶的認證系統,來建立自己的使用者表,

##########################

我們要一個自己的系統,
需求:
1,每一個角色進去之後顯示不一樣的頁面,
比如銷售看到的學生表,是一個表格,
比如講師看到的學員表,也是一個表格,

應該實現每一個人進去看到的是不一樣的?
1,笨辦法就是每一個表對應的頁面都寫一遍,但是這樣會導致大量的程式碼冗餘,
2,頁面應該都是一個頁面,只是說展示的資料不一樣,然後不一樣的部分進行定製化,
3,每一個人進去的選單,都是動態的,這個選單也可以使用一個頁面,只是展示的選單資料不同而已,
4,現在來實現前端的展示,前端可以使用bootstrap,可以使用他們提供的頁面模板,

步驟:
1,建立一個base ,只儲存css,js,等,可以把出去body的部分都放到base,
2,建立一個index,然後繼承base,body放到這個index
3,建立static資料夾,放js,css等靜態檔案,


需求:
一個角色要顯示哪些選單,不同的角色進去,要顯示不一樣的選單,要怎麼做?
1,他能看到那些選單,需要定義一下,而且這個資料需要在資料庫存放,
2,url和角色怎麼關聯,肯定是資料庫裡面關聯,crm_roles_menu,crm_roles,crm_menu這個角色和選單是多對多的,
就是一個角色可以有多個選單,選單也可以有屬於多個角色,url可以給url起一個別名,然後儲存這個別名,
3,建立學生主頁面,和銷售人員主頁面,然後繼承index.html,
4,注意,user表中和role表是多對多的,

對於django自帶的認證系統還是理解的不夠深刻, """

###############展示所有註冊的表 ###############

"""

實現學生庫-----學生列表頁面
1,有列表
2,搜尋
3,有過濾
4,有分頁
5,有批量操作,

要做成一個通用的頁面,每個頁面不配置都一樣,然後特殊的部分通過 配置來實現,
你把這個搞出來了,就相當於自己寫了一個admin了,
我們可以做成一個模組,可以應用到別的專案,單獨做成一個app,

分析url,就是admin/appname/tablename
通過url找到這個表名,這個可以使用反射來找到,就可以把表裡面的資料取出來,
然後把資料放到頁面,頁面上就可以傳什麼表就展示什麼表了,
這是基本的思路

程式碼怎麼寫?
首先第一步,先實現一個所有表的列表頁面,
1,建立頁面,table_index.html
2,繼承base,把選單的部分刪除掉,保留單行條,
3,使用bootstrap的面板,上面是appname,下面是tablename,

現在最重要的是解決為什麼一註冊就展示了這個表,
思路就是建立了一個字典:
{appname:{tablename: tableadminclass,
            tablename: tableadminclass,
            },
appname:{tablename: tableadminclass,
            tablename: tableadminclass,
            },
}

怎麼通過表名獲取到modelclass,和app的名字呢?
1,model_class._meta.app_label
2,model_class._meta.model_name

怎麼把admin_class 和model_class 進行關聯呢?
admin_class.model = model_class 加了一個屬性,利於前端呼叫,



"""

###############展示學生列表頁面 ###############

角色和需求
1,銷售人員,
1.1,要對學生進行維護,可以對學生進行檢視,新增,刪除,修改,跟進等操作
程式碼上的要求:
增刪查改各使用一個頁面,然後根據每一個表的配置來控制,展示的欄位,篩選字典,查詢欄位,批量操作,要求是可配置的,
1.2,最複雜的是學生檢視頁面,有查詢,有篩選,有批量,有表頭,有列表,有分頁,
1.3,要有學生報名的業務,
1.4,學生池的概念,可以把沒有成交可能的放入學生池,也可以把你認為有可能成交的學生拉入自己的名下,
2,講師
1.1,要批量生成上課記錄,對學生考勤
1.2,每天的作業成績需要錄入
3,學生
1.1,要交作業,
4,老闆
要看報表,
5,登陸,註冊,選單展示,許可權控制,

 

###############展示學生列表頁面 ###############

############### crm需求分析 ###############

講師和學生:
1,批量生成上課記錄,
2,考勤點名,
3,錄入成績,
4,顯示成績
5,上傳作業,os模組,
6,下載成績,

############### crm需求分析 ###############

銷售和學生
1,公共學生,
2,根據學生
3,繫結學生
4,取消繫結

###############展示學生列表頁面 ###############