本文整理汇总了Python中crits.dashboards.dashboard.SavedSearch.top方法的典型用法代码示例。如果您正苦于以下问题:Python SavedSearch.top方法的具体用法?Python SavedSearch.top怎么用?Python SavedSearch.top使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类crits.dashboards.dashboard.SavedSearch
的用法示例。
在下文中一共展示了SavedSearch.top方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: save_data
# 需要导入模块: from crits.dashboards.dashboard import SavedSearch [as 别名]
# 或者: from crits.dashboards.dashboard.SavedSearch import top [as 别名]
def save_data(userId, columns, tableName, searchTerm="", objType="", sortBy=None,
tableId=None, top=None, left=None, width=0,
isDefaultOnDashboard=False, maxRows=0, dashboardWidth=0,
dashboard=None, clone=False):
"""
Saves the customized table in the dashboard. Called by save_search and
save_new_dashboard via ajax in views.py.
width - css style used on dashboard
tableWidth - width of table on edit page in order to calculate percentage width of columns
"""
try:
if searchTerm:
searchTerm = HTMLParser.HTMLParser().unescape(searchTerm)
#if user is editing a table
if tableId :
newSavedSearch = SavedSearch.objects(id=tableId).first()
if not newSavedSearch:
raise Exception("Cannot find Table")
elif clone:
clonedSavedSearch = cloneSavedSearch(newSavedSearch, dashboard.id)
else:
newSavedSearch = SavedSearch()
cols = []
for col in columns:
if "field" not in col or "caption" not in col:
continue
cols.append(col)
if not cols:
raise("There are no columns to save")
newSavedSearch.tableColumns = cols
newSavedSearch.name = tableName
oldDashId = None
if dashboard:
if newSavedSearch.dashboard != dashboard.id:
newSavedSearch.left = -1
newSavedSearch.top = -1
newSavedSearch.dashboard= dashboard.id
#if it is not a deault dashboard table, it must have a searchterm and objtype
if searchTerm:
newSavedSearch.searchTerm = searchTerm
if objType:
newSavedSearch.objType = objType
#this is to identify the default tables on every user dashboard
newSavedSearch.isDefaultOnDashboard = isDefaultOnDashboard
if sortBy:
newSavedSearch.sortBy = sortBy
if (top or left) and dashboardWidth:
newSavedSearch.top = top
leftAsPercent = float(left)/float(dashboardWidth)*100
#if the new left value is within 2 of previous, dont change.
#This is because rounding issues in the HTML were constantly
#shifting the tables over by 1% every save
if newSavedSearch.left==-1 or not (leftAsPercent >= newSavedSearch.left-2 and leftAsPercent <= newSavedSearch.left+2):
newSavedSearch.left = leftAsPercent
if maxRows:
#if the table is growing in height, reset it's position so it doesnt
#overlap with other tables
if int(maxRows) > newSavedSearch.maxRows:
newSavedSearch.top=-1
newSavedSearch.maxRows = maxRows;
if width:
width = float(width)
if not dashboardWidth and newSavedSearch.width and (width > newSavedSearch.width+2 or width < newSavedSearch.width-2):
newSavedSearch.top=-1
newSavedSearch.width = float(width)
newSavedSearch.save()
#if the old dashboard is empty, delete it
if oldDashId:
deleteDashboardIfEmpty(oldDashId)
except Exception as e:
print e
return {'success': False,
'message': "An unexpected error occurred while saving table. Please refresh and try again"}
return {'success': True,'message': tableName+" Saved Successfully!"}