Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit4ab96bb

Browse files
authored
Merge branch 'zhangchunlin:master' into master
2 parents0325de5 +e539fed commit4ab96bb

File tree

19 files changed

+306
-188
lines changed

19 files changed

+306
-188
lines changed

‎demo/apps/apijson_demo/dbinit.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,11 @@
7575
"date" :"2018-11-6",
7676
"content" :"test moment from c",
7777
},
78+
{
79+
"username" :"admin",
80+
"date" :"2018-11-7",
81+
"content" :"test moment from admin",
82+
},
7883
]
7984

8085
comment_list= [
@@ -99,6 +104,13 @@
99104
"date" :"2018-12-9",
100105
"content" :"comment hoho",
101106
},
107+
{
108+
"username" :"admin",
109+
"to_username" :"usera",
110+
"moment_id" :4,
111+
"date" :"2018-12-10",
112+
"content" :"comment kaka",
113+
},
102114
]
103115

104116
fordinuser_list:

‎demo/apps/settings.ini

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ INSTALLED_APPS = [
1717
'uliweb_comui',
1818
'uliweb_comapps.auth.login',
1919
'uliweb_comapps.auth.user_admin',
20+
'uliweb_comapps.auth.rbac_admin',
2021
'uliweb_apijson.apijson',
2122
'apijson_demo',
2223
'tables',

‎demo/apps/tables/config.ini

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
[DEPENDS]
2+
REQUIRED_APPS = [
3+
'uliweb_apijson.tables',
4+
]

‎demo/apps/tables/settings.ini

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
[APIJSON_TABLES]
2-
user = {
3-
"editable" :"auto",
4-
}
2+
user = {"model_name":"user","tableui_name":"users"}
3+
role = {"model_name":"role","tableui_name":"roles","role":"ADMIN"}
4+
permission = {"model_name":"permission","tableui_name":"permissions","role":"ADMIN"}
5+
moment = {"role":"OWNER"}
6+
comment = {"role":"OWNER"}
7+
8+
[APIJSON_TABLE_UI]
59
moment = {
610
"editable" :"auto",
711
"table_fields" : [
@@ -20,7 +24,6 @@ moment = {
2024
{"title":"Content","key":"content","type":"textarea"},
2125
],
2226
}
23-
2427
comment = {
2528
"editable" :"auto",
2629
"table_fields" : [

‎demo/apps/tables/templates/Tables/list.html

Lines changed: 0 additions & 37 deletions
This file was deleted.

‎demo/apps/tables/views.py

Lines changed: 0 additions & 21 deletions
This file was deleted.

‎uliweb_apijson/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
__version__='0.2.2'
1+
__version__='0.3.0'
22
__url__='https://github.com/zhangchunlin/uliweb-apijson'
33
__author__='Chunlin Zhang'
44
__email__='zhangchunlin@gmail.com'

‎uliweb_apijson/apijson/__init__.py

Lines changed: 61 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -2,57 +2,76 @@
22

33
fromuliwebimportsettings,models,request,functions,UliwebError
44
fromuliweb.ormimportModelNotFound
5+
fromjsonimportdumpsasjson_dumps
56
importlogging
67

78
log=logging.getLogger('apijson')
89

9-
defget_apijson_tables(role="UNKNOWN"):
10-
fromuliwebimportsettings
1110

12-
s=settings.APIJSON_TABLES
13-
ifs:
14-
apijson_tables=dict(s.iteritems())
15-
else:
16-
return {}
17-
forninapijson_tables:
18-
c=apijson_tables[n]
19-
editable=c.get("editable",False)
20-
_model_name=c.get("@model_name")orn
21-
ifeditable=="auto":
11+
classApijsonTable(object):
12+
def__init__(self,model_name,request_tag=None,role=None,tableui_name=None,table_name=None):
13+
self.model_name=model_name
14+
self.request_tag=request_tagorself.model_name
15+
self.role=role
16+
self.tableui_name=tableui_nameorself.model_name
17+
self.table_name=table_name
18+
self._get_tableui()
19+
self._apply_auto()
20+
21+
def_get_tableui(self):
22+
self.tableui=settings.APIJSON_TABLE_UI.get(self.tableui_name, {})
23+
ifnotself.tableui:
24+
log.warn("cannot find setting for {} in settings.APIJSON_TABLE_UI".format(self.tableui_name))
25+
26+
def_apply_auto(self):
27+
editable=self.tableui.get("editable",False)
28+
ifeditable=="auto":
2229
editable=False
23-
POST=settings.APIJSON_MODELS.get(_model_name,{}).get("POST")
30+
POST=settings.APIJSON_MODELS.get(self.model_name,{}).get("POST")
2431
ifPOST:
2532
roles=POST["roles"]
2633
ifroles:
27-
editable=roleinroles
28-
c["editable"]=editable
29-
returnapijson_tables
30-
31-
defget_apijson_table(role="UNKNOWN",name=None):
32-
fromuliwebimportsettings
33-
34-
ifnotname:
35-
return {}
36-
s=settings.APIJSON_TABLES
37-
ifs:
38-
apijson_tables=dict(s.iteritems())
39-
else:
40-
return {}
41-
42-
c=apijson_tables.get(name)
43-
ifnotc:
44-
return {}
45-
editable=c.get("editable",False)
46-
_model_name=c.get("@model_name")orn
47-
ifeditable=="auto":
48-
editable=False
49-
POST=settings.APIJSON_MODELS.get(_model_name,{}).get("POST")
50-
ifPOST:
51-
roles=POST["roles"]
52-
ifroles:
53-
editable=roleinroles
54-
c["editable"]=editable
55-
returnc
34+
editable=self.roleinroles
35+
self.tableui["editable"]=editable
36+
37+
defto_dict(self):
38+
returndict(model_name=self.model_name,
39+
request_tag=self.request_tag,
40+
role=self.role,
41+
tableui_name=self.tableui_name,
42+
table_name=self.table_name,
43+
tableui=self.tableui)
44+
45+
46+
defget_apijson_tables():
47+
defiter_table():
48+
s=settings.APIJSON_TABLES
49+
apijson_tables=dict(s.iteritems())ifselse {}
50+
ifapijson_tables:
51+
forkinapijson_tables:
52+
v=apijson_tables[k]
53+
model_name=v.get("model_name")ork
54+
tableui_name=v.get("tableui_name")ormodel_name
55+
ifnotmodel_name:
56+
model_name=tableui_name
57+
ifmodel_nameandtableui_name:
58+
request_tag=v.get("request_tag")
59+
role=v.get("role")
60+
yield(ApijsonTable(model_name=model_name,request_tag=request_tag,role=role,tableui_name=tableui_name,table_name=k))
61+
else:
62+
apison_table_ui=dict(
63+
settings.APIJSON_TABLE_UI.iteritems())
64+
fortableui_nameinapison_table_ui:
65+
tableui=apison_table_ui[tableui_name]
66+
model_name=tableui.get("@model_name")ortableui_name
67+
request_tag=model_name
68+
role=None
69+
yield(ApijsonTable(model_name=model_name,request_tag=request_tag,role=role,tableui_name=tableui_name))
70+
returnlist(iter_table())
71+
72+
73+
defget_apijson_table(*args,**kwargs):
74+
returnApijsonTable(*args,**kwargs)
5675

5776
classApiJsonModelQuery(object):
5877
def__init__(self,name,params,parent,key):

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp