def render(self, **prop): self.dom_id = prop.get("id") # client dom id self.cols = prop.get("cols") # entity field list self.titles = prop.get("titles") # title list self.entity_full_name = prop.get("entity") # entity name autoform = prop.get("autoform") checkable = prop.get("checkable") search_fields = prop.get("search_fields") # default search field name,and text type, search_tip = prop.get("search_tip") point = EmptyClass() point.list = prop.get("point_list") point.view = prop.get("point_view") point.add = prop.get("point_add") point.update = prop.get("point_update") point.delete = prop.get("point_delete") if not self.entity_full_name: return "Require entity full name." self.datatable_key = Utils.md5(self.entity_full_name) DataTableModule.__security_points__[self.datatable_key] = point if search_fields: DataTableModule.__default_search_fields__[self.datatable_key] = search_fields else: DataTableModule.__default_search_fields__[self.datatable_key] = [] sub = dict() sub["name"] = self.entity_full_name sub["cols"] = self.cols DataTableModule.__entity_mapping__[self.datatable_key] = sub tag = "" if checkable: tag += ( "<th><input type='checkbox' style='width: 13px; height: 13px;' onclick='%s_.CheckAll(this);'/></th>" % self.dom_id ) for title in self.titles: tag += "<th>" + title + "</th>" tag += "<th>#</th>" opt = dict() opt["point"] = point opt["id"] = self.dom_id opt["autoform"] = autoform opt["checkable"] = checkable if not search_tip: search_tip = "" opt["search_tip"] = search_tip opt["thTags"] = tag opt["entity_name_md5"] = self.datatable_key if autoform: opt["cols"] = self.create_editform() html_col = list() index = 0 for col in self.cols: html_col.append( {"mData": col, "sTitle": self.titles[index], "sClass": "datatable_column_" + col, "sDefaultContent": ""} ) index += 1 opt["col_defs"] = json.dumps(html_col) self.create_editform() return self.render_string("widgets/datatable_html.html", opt=opt)