Skip to content

Commit 387fa4f

Browse files
authored
Merge branch 'zhangchunlin:master' into master
2 parents 4ab96bb + 10961f8 commit 387fa4f

File tree

6 files changed

+53
-42
lines changed

6 files changed

+53
-42
lines changed

uliweb_apijson/apijson/__init__.py

+9-25
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,11 @@
99

1010

1111
class ApijsonTable(object):
12-
def __init__(self, model_name, request_tag=None, role=None, tableui_name=None, table_name=None):
12+
def __init__(self, model_name, request_tag=None, role=None, tableui_name=None):
1313
self.model_name = model_name
1414
self.request_tag = request_tag or self.model_name
1515
self.role = role
1616
self.tableui_name = tableui_name or self.model_name
17-
self.table_name = table_name
1817
self._get_tableui()
1918
self._apply_auto()
2019

@@ -39,34 +38,19 @@ def to_dict(self):
3938
request_tag=self.request_tag,
4039
role=self.role,
4140
tableui_name=self.tableui_name,
42-
table_name=self.table_name,
4341
tableui=self.tableui)
4442

4543

4644
def get_apijson_tables():
4745
def iter_table():
48-
s = settings.APIJSON_TABLES
49-
apijson_tables = dict(s.iteritems()) if s else {}
50-
if apijson_tables:
51-
for k in apijson_tables:
52-
v = apijson_tables[k]
53-
model_name = v.get("model_name") or k
54-
tableui_name = v.get("tableui_name") or model_name
55-
if not model_name:
56-
model_name = tableui_name
57-
if model_name and tableui_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-
for tableui_name in apison_table_ui:
65-
tableui = apison_table_ui[tableui_name]
66-
model_name = tableui.get("@model_name") or tableui_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))
46+
apison_table_ui = dict(
47+
settings.APIJSON_TABLE_UI.iteritems())
48+
for tableui_name in apison_table_ui:
49+
tableui = apison_table_ui[tableui_name]
50+
model_name = tableui.get("@model_name") or tableui_name
51+
request_tag = model_name
52+
role = None
53+
yield(ApijsonTable(model_name=model_name, request_tag=request_tag, role=role, tableui_name=tableui_name))
7054
return list(iter_table())
7155

7256

uliweb_apijson/apijson/templates/vue/inc_apijson_table.html

+6
Original file line numberDiff line numberDiff line change
@@ -504,6 +504,12 @@
504504
}
505505
this.config_delete_set_deleted = this.table.tableui.delete_set_deleted || false
506506
this.config_deleted_field_name = this.table.tableui.deleted_field_name || "deleted"
507+
if (this.table.tableui.sort_key!=null) {
508+
this.sort_key = this.table.tableui.sort_key
509+
}
510+
if (this.table.tableui.sort_order!=null) {
511+
this.sort_order = this.table.tableui.sort_order
512+
}
507513
}
508514
//if not do this, the first notice will hide behind the navigation bar in uliweb apps
509515
this.$Notice.config({top: 100,duration: 8});

uliweb_apijson/apijson/templates/vue/inc_apijson_viewedit.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@
6767
}
6868
else {
6969
thisp.$Notice.error({
70-
title: 'error when get table '+thisp.table_name,
70+
title: 'error when get table '+thisp.tableui_name,
7171
desc: data.msg
7272
})
7373
}

uliweb_apijson/tables/templates/Tables/inc/table_config.html

+30-10
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
delimiters: ['{', '}'],
44
props: [
55
"table",
6-
"tableui",
76
"model",
87
"request"
98
],
@@ -12,18 +11,26 @@
1211
<row>
1312
<i-col span="4">
1413
<i-menu :active-name="current_menu_item" @on-select="on_select">
15-
<menu-item name="table_config" @on-select="current_menu_item='table_config'">table config</menu-item>
14+
<menu-item name="table_param" @on-select="current_menu_item='table_param'">table param</menu-item>
1615
<menu-item name="tableui_config" @on-select="current_menu_item='tableui_config'">table ui config</menu-item>
1716
<menu-item name="model_config" @on-select="current_menu_item='model_config'">model config</menu-item>
1817
<menu-item name="request_config" @on-select="current_menu_item='request_config'">request config</menu-item>
1918
</i-menu>
2019
</i-col>
2120
<i-col span="8">
22-
<div v-if="current_menu_item=='table_config'">
23-
<h3>settings.APIJSON_TABLES.{table.table_name}</h3>
21+
<div v-if="current_menu_item=='table_param'">
22+
<h3>table parameter</h3>
2423
<pre>
2524
{table_json}
2625
</pre>
26+
<h3>example backend code</h3>
27+
<pre>
28+
table = functions.get_apijson_table("{table.model_name}", role="{table.role}", request_tag="{table.request_tag}", tableui_name="{table.tableui_name}")
29+
</pre>
30+
<h3>example frontend code</h3>
31+
<pre>
32+
&lt;apijson-table :table=&quot;table&quot;&gt;&lt;/apijson-table&gt;
33+
</pre>
2734
</div>
2835
<div v-if="current_menu_item=='tableui_config'">
2936
<h3>settings.APIJSON_TABLE_UI.{table.tableui_name}</h3>
@@ -38,7 +45,7 @@ <h3>settings.APIJSON_MODELS.{table.model_name}</h3>
3845
</pre>
3946
</div>
4047
<div v-if="current_menu_item=='request_config'">
41-
<h3>settings.APIJSON_TABLE_CONFIG.{table.request_tag||table.model_name}</h3>
48+
<h3>settings.APIJSON_REQUESTS.{table.request_tag||table.model_name}</h3>
4249
<pre style="height: 25pc; overflow-y: scroll;">
4350
{request_json}
4451
</pre>
@@ -48,15 +55,15 @@ <h3>settings.APIJSON_TABLE_CONFIG.{table.request_tag||table.model_name}</h3>
4855
</div>`,
4956
data: function(){
5057
return {
51-
current_menu_item: "table_config"
58+
current_menu_item: "table_param",
59+
table_param: {},
60+
tableui: {},
61+
tableui_json: ""
5262
}
5363
},
5464
computed: {
5565
table_json: function(){
56-
return JSON.stringify(this.table, null, 2)
57-
},
58-
tableui_json: function(){
59-
return JSON.stringify(this.tableui, null, 2)
66+
return JSON.stringify(this.table_param, null, 2)
6067
},
6168
model_json: function(){
6269
return JSON.stringify(this.model, null, 2)
@@ -69,6 +76,19 @@ <h3>settings.APIJSON_TABLE_CONFIG.{table.request_tag||table.model_name}</h3>
6976
on_select: function(data){
7077
this.current_menu_item = data
7178
}
79+
},
80+
mounted: function(){
81+
this.table_param = JSON.parse(JSON.stringify(this.table))
82+
delete this.table_param.tableui
83+
//remove __id field, look like vuejs add this
84+
var tableui = JSON.parse(JSON.stringify(this.table.tableui))
85+
if (tableui.table_fields!=null) {
86+
for (let index = 0; index < tableui.table_fields.length; index++) {
87+
if (tableui.table_fields[index].__id!=null)
88+
delete tableui.table_fields[index].__id
89+
}
90+
this.tableui_json = JSON.stringify(tableui, null, 2)
91+
}
7292
}
7393
})
7494
</script>

uliweb_apijson/tables/templates/Tables/list.html

+2-5
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,8 @@
4343
tabs: function(){
4444
var l = []
4545
for (var i = 0; i < this.apijson_tables.length; i++) {
46-
var t = this.apijson_tables[i]
47-
var tableui = t.tableui
48-
var table = JSON.parse(JSON.stringify(t))
49-
delete table.tableui
50-
l.push({index:i, name:t.config_name||t.model_name, table: table, tableui: tableui, model: this.models[i], request: this.requests[i]})
46+
var table = this.apijson_tables[i]
47+
l.push({index: i, name: table.tableui_name, table: table, model: this.models[i], request: this.requests[i]})
5148
}
5249
return l
5350
}

uliweb_apijson/tables/views.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,11 @@ def list(self):
1212
apijson_tables = functions.get_apijson_tables()
1313
def _get_model(i):
1414
model_name = i.model_name
15-
return settings.APIJSON_MODELS.get(model_name,{})
15+
model = settings.APIJSON_MODELS.get(model_name,{})
16+
if not i.role:
17+
roles = model.get("GET",{}).get("roles")
18+
i.role = roles[0] if isinstance(roles, list) else roles
19+
return model
1620
models = [_get_model(i) for i in apijson_tables]
1721
def _get_request(i):
1822
request_tag = i.request_tag or i.model_name

0 commit comments

Comments
 (0)