Skip to content

Commit 3defc6b

Browse files
committed
apijsontable: remove table_name; add sort_key/sort_order in tableui;
1 parent e539fed commit 3defc6b

File tree

6 files changed

+35
-39
lines changed

6 files changed

+35
-39
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

+12-7
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,15 +11,14 @@
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'">
2422
<pre>
2523
{table_json}
2624
</pre>
@@ -38,7 +36,7 @@ <h3>settings.APIJSON_MODELS.{table.model_name}</h3>
3836
</pre>
3937
</div>
4038
<div v-if="current_menu_item=='request_config'">
41-
<h3>settings.APIJSON_TABLE_CONFIG.{table.request_tag||table.model_name}</h3>
39+
<h3>settings.APIJSON_REQUESTS.{table.request_tag||table.model_name}</h3>
4240
<pre style="height: 25pc; overflow-y: scroll;">
4341
{request_json}
4442
</pre>
@@ -48,12 +46,14 @@ <h3>settings.APIJSON_TABLE_CONFIG.{table.request_tag||table.model_name}</h3>
4846
</div>`,
4947
data: function(){
5048
return {
51-
current_menu_item: "table_config"
49+
current_menu_item: "table_param",
50+
table_param: {},
51+
tableui: {}
5252
}
5353
},
5454
computed: {
5555
table_json: function(){
56-
return JSON.stringify(this.table, null, 2)
56+
return JSON.stringify(this.table_param, null, 2)
5757
},
5858
tableui_json: function(){
5959
return JSON.stringify(this.tableui, null, 2)
@@ -69,6 +69,11 @@ <h3>settings.APIJSON_TABLE_CONFIG.{table.request_tag||table.model_name}</h3>
6969
on_select: function(data){
7070
this.current_menu_item = data
7171
}
72+
},
73+
mounted: function(){
74+
this.table_param = JSON.parse(JSON.stringify(this.table))
75+
delete this.table_param.tableui
76+
this.tableui = this.table.tableui
7277
}
7378
})
7479
</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)