本文整理汇总了Python中pyasm.web.Table.add_tbody方法的典型用法代码示例。如果您正苦于以下问题:Python Table.add_tbody方法的具体用法?Python Table.add_tbody怎么用?Python Table.add_tbody使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pyasm.web.Table
的用法示例。
在下文中一共展示了Table.add_tbody方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: get_display
# 需要导入模块: from pyasm.web import Table [as 别名]
# 或者: from pyasm.web.Table import add_tbody [as 别名]
def get_display(my):
smenu_div = DivWdg()
smenu_div.add_class( "SPT_SMENU" )
smenu_div.add_class( "SPT_SMENU_%s" % my.menu_tag_suffix )
smenu_div.set_box_shadow()
smenu_div.add_border()
smenu_div.add_color("background", "background")
smenu_div.add_color("color", "color")
smenu_div.add_behavior( {
'type': 'load',
'cbjs_action': '''
spt.dom.load_js( ["ctx_menu.js"], function() {
spt.dom.load_js( ["smart_menu.js"], function() {
} )
} );
'''
} )
if my.setup_cbfn:
smenu_div.set_attr( "SPT_SMENU_SETUP_CBFN", my.setup_cbfn )
smenu_div.set_z_start( 300 )
#smenu_div.add_looks( "smenu border curs_default" )
# smenu_div.add_styles( "padding-top: 3px; padding-bottom: 5px;" )
m_width = my.width - 2
smenu_div.add_style( ("width: %spx" % m_width) )
smenu_div.add_style("overflow-x: hidden")
icon_width = 16
icon_col_width = 0
if my.allow_icons:
icon_col_width = icon_width + 2
label_width = m_width - icon_col_width - icon_width
menu_table = Table()
menu_table.add_styles( "text-align: left; text-indent: 3px; border-collapse: collapse;" )
#menu_table.add_color("background", "background")
menu_table.add_color("color", "color")
options = my.opt_spec_list
opt_count = 0
if options[0].get('type') != 'title':
my._add_spacer_row(menu_table, 3, icon_width, icon_col_width, label_width)
"""
menu_table.add_relay_behavior( {
'type': 'mouseenter',
'bvr_match_class': 'SPT_SMENU_ENTRY',
'bgcolor': menu_table.get_color("side_bar_title", -15, default="background3"),
'cbjs_action': '''
bvr.src_el.setStyle("background-color", bvr.bgcolor);
bvr.src_el.setStyle("color", bvr.bgcolor);
spt.smenu.entry_over( evt, bvr );
'''
} )
menu_table.add_relay_behavior( {
'type': 'mouseleave',
'bvr_match_class': 'SPT_SMENU_ENTRY',
'cbjs_action': '''
bvr.src_el.setStyle("background-color", "");
spt.smenu.entry_out( evt, bvr );
'''
} )
"""
for opt in options:
# if entry is a title, then add a spacer before
if opt.get('type') == 'title' and opt_count:
my._add_spacer_row(menu_table, 6, icon_width, icon_col_width, label_width)
tbody = menu_table.add_tbody()
tbody.add_style("display","table-row-group")
tr = menu_table.add_row()
#tr.add_looks( "smenu" )
tr.add_class( "SPT_SMENU_ENTRY" )
tr.add_class( "SPT_SMENU_ENTRY_%s" % opt['type'].upper() )
if opt.has_key('enabled_check_setup_key'):
tr.set_attr( "SPT_ENABLED_CHECK_SETUP_KEY", opt.get('enabled_check_setup_key') )
if opt.has_key('hide_when_disabled') and opt.get('hide_when_disabled'):
tr.set_attr( "SPT_HIDE_WHEN_DISABLED", "true" )
if opt['type'] in [ 'action', 'toggle' ]:
hover_bvr = {'type':'hover', 'add_looks': 'smenu_hilite',
'cbjs_action_over': 'spt.smenu.entry_over( evt, bvr );',
'cbjs_action_out': 'spt.smenu.entry_out( evt, bvr );' }
if opt.has_key('hover_bvr_cb'):
#.........这里部分代码省略.........
示例2: get_display
# 需要导入模块: from pyasm.web import Table [as 别名]
# 或者: from pyasm.web.Table import add_tbody [as 别名]
#.........这里部分代码省略.........
select.add_behavior( {
'type': 'change',
'cbjs_action': '''
var top = bvr.src_el.getParent(".spt_ingestion_top");
value = bvr.src_el.value;
var elements = top.getElements(".spt_scan_list");
for (var i = 0; i < elements.length; i++) {
if (value == 'list')
spt.show(elements[i]);
else
spt.hide(elements[i]);
}
var elements = top.getElements(".spt_scan_rule");
for (var i = 0; i < elements.length; i++) {
if (value == 'rule')
spt.show(elements[i]);
else
spt.hide(elements[i]);
}
var elements = top.getElements(".spt_scan_script");
for (var i = 0; i < elements.length; i++) {
if (value == 'script')
spt.show(elements[i]);
else
spt.hide(elements[i]);
}
'''
} )
# add in a list of stuff
tbody = table.add_tbody()
tbody.add_class("spt_scan_list")
if scan_type != 'list':
tbody.add_style("display: none")
tr = table.add_row()
td = table.add_cell()
td.add("List of files: ")
td = table.add_cell()
text = TextAreaWdg(name="file_list")
td.add(text)
text.add_style("width: 400px")
#text.set_readonly()
#text.add_color("background", "background", -10)
text.set_value(file_list)
table.close_tbody()
# add rule scan mode
tbody = table.add_tbody()
tbody.add_class("spt_scan_rule")
if scan_type != 'rule':
tbody.add_style("display: none")
# add the path
tr = table.add_row()
td = table.add_cell()
td.add("Starting Path: ")
示例3: get_display
# 需要导入模块: from pyasm.web import Table [as 别名]
# 或者: from pyasm.web.Table import add_tbody [as 别名]
#.........这里部分代码省略.........
width = my.kwargs.get('width')
height = my.kwargs.get('height')
if not height:
height = 20
if not width:
width = 35
font_size = my.kwargs.get('font_size')
if not font_size:
font_size = 'smaller'
force = my.kwargs.get("force")
if my.mode == 'horizontal':
div = DivWdg(css='spt_finger_menu')
if force:
div.add_attr("spt_finger_force", force)
div.add_style("border-color: #aaa")
div.add_style("border-style: solid")
if force == "left":
div.add_style("border-width: 1px 0px 1px 1px")
div.add_style("border-radius: 12px 0px 0px 12px")
else:
div.add_style("border-width: 1px 1px 1px 0px")
div.add_style("border-radius: 0px 12px 12px 0px")
div.set_box_shadow(value="0px 0px 2px 1px")
#div.add_style("z-index: 1000")
total_width = width * len(my.items) + 15
div.add_style('width', total_width)
div.add_styles('height: %spx; padding: 2px;' %height)
context_menu.add(div)
div.add_color('background','background', -10)
palette = div.get_palette()
sb_title_bg = palette.color('side_bar_title')
bg_color = div.get_color('background', -10)
color = div.get_color('color')
for item in my.items:
mouse_enter_bvr = {'type':'mouseenter', 'cbjs_action': '''
bvr.src_el.setStyles({'background': '%s', 'color': 'white'})''' %sb_title_bg}
mouse_leave_bvr = {'type':'mouseleave', 'cbjs_action': '''
bvr.src_el.setStyles({'background': '%s', 'color': '%s'})''' %(bg_color, color)}
menu_item = FloatDivWdg(css='unselectable hand')
menu_item.add_color('background','background', -10)
menu_item.add(item.get_option('label'))
menu_item.add_behavior( mouse_enter_bvr )
menu_item.add_behavior( mouse_leave_bvr )
# add the passed-in bvr
bvr = item.get_option('bvr_cb')
menu_item.add_behavior(bvr )
menu_item.add_styles('margin: 0px 0 0 0; padding: 2px 0 2px 0; text-align: center; font-size: %s; width: %s; height: %spx'%(font_size, width, height-4))
menu_item.add_behavior({'type': 'click_up',
'cbjs_action': '''var menu = bvr.src_el.getParent('.spt_menu_top'); spt.hide(menu);'''})
div.add(menu_item)
else:
# this width only matters in vertical mode
context_menu.add_style("width: %s" %width)
menu_table = Table()
menu_table.add_styles( "text-align: left; text-indent: 4px; border-collapse: collapse; cell-padding: 8px; border-radius: 32px;" )
context_menu.add(menu_table)
my._add_spacer_row(menu_table, 3, width)
for widget in my.widgets:
tbody = menu_table.add_tbody()
tbody.add_style("display","table-row-group")
tr = menu_table.add_row()
tr.add_looks( "smenu" )
#tr.add_class( "SPT_SMENU_ENTRY" )
hover_bvr = {'type':'hover', 'add_looks': 'smenu_hilite'}
#'cbjs_action_over': 'spt.smenu.entry_over( evt, bvr );',
#'cbjs_action_out': 'spt.smenu.entry_out( evt, bvr );' }
tr.add_behavior( hover_bvr )
menu_item = menu_table.add_cell()
font_size = '4px'
menu_item.add_styles('padding: 0px 0 0 6px; font-size: %s; width: %s; height: 16px'%(font_size, width))
menu_item.add_behavior({'type': 'click_up',
'cbjs_action': '''var menu = bvr.src_el.getParent('.spt_menu_top'); spt.hide(menu);'''})
menu_item.add(widget)
my._add_spacer_row(menu_table, 3, width)
return context_menu
示例4: get_display
# 需要导入模块: from pyasm.web import Table [as 别名]
# 或者: from pyasm.web.Table import add_tbody [as 别名]
def get_display(self):
table = Table()
table.add_attr('id', 'hot_today')
table.add_style('width', '100%')
table.add_style('background-color', '#FCFCFC')
table.add_style('font-size', '12px')
table.add_style('font-family', 'Helvetica')
table.add_border(style='solid', color='#F2F2F2', size='1px')
# Because Tactic doesn't allow for the <thead> element (that I know of), the table header has to be split
# into it's own <tbody>. Highly inelegant, but I don't have a choice.
header_body = table.add_tbody()
header_body.add_attr('id', 'thead-section')
# Initialize the Tactic server
server = TacticServerStub.get()
# Get today's date as a string
todays_date = datetime.datetime.today()
due_date_string = todays_date.strftime('%Y-%m-%d')
# Search for orders that are either due today or are past due.
orders_due_today_or_earlier_list = server.eval(
"@SOBJECT(twog/order['due_date', 'is before', '{0}']['@ORDER_BY', 'due_date asc'])".format(
due_date_string))
orders_due_today_or_earlier_not_complete_list = [
order for order in orders_due_today_or_earlier_list if order.get('status') != 'complete'
]
components_list = self.get_component_or_package_list(orders_due_today_or_earlier_not_complete_list,
'twog/component')
packages_list = self.get_component_or_package_list(orders_due_today_or_earlier_not_complete_list,
'twog/package')
task_list = self.get_tasks_for_search_type(components_list, 'twog/component?project=twog')
task_list.extend(self.get_tasks_for_search_type(packages_list, 'twog/package?project=twog'))
header_groups = self.get_header_groups(task_list)
# Get the header groups as a sorted set
header_groups = self.sort_header_groups(header_groups)
self.set_header(table, header_groups)
hotlist_body = table.add_tbody()
hotlist_body.add_style('display', 'table')
hotlist_body.add_style('overflow-x', 'hidden')
hotlist_body.add_style('overflow-y', 'scroll')
hotlist_body.add_style('height', '850px')
hotlist_body.add_style('width', '100%')
hotlist_body.add_attr('id', 'hotlist-body')
dictionary_of_tasks = {}
for task in task_list:
order_sobject = get_order_sobject_from_task_sobject(task)
order_code = order_sobject.get_code()
process_name = task.get('process')
if len(process_name.split(':')) > 1:
task_header = process_name.split(':')[0]
if order_code not in dictionary_of_tasks.keys():
dictionary_of_tasks[order_code] = {task_header: None}
if not dictionary_of_tasks[order_code].get(task_header):
dictionary_of_tasks[order_code][task_header] = [task]
else:
dictionary_of_tasks[order_code][task_header].append(task)
counter = 1
for hot_item in orders_due_today_or_earlier_not_complete_list:
# Get the tasks that correspond to a title by comparing the task's title_code to the title's code
item_tasks = dictionary_of_tasks.get(hot_item.get('code'))
if item_tasks:
self.set_row(hot_item, table, counter, header_groups, item_tasks)
counter += 1
# Put the table in a DivWdg, makes it fit better with the Tactic side bar
hotlist_div = DivWdg()
hotlist_div.add_attr('id', 'hotlist_div')
hotlist_div.add_attr('overflow', 'hidden')
hotlist_div.add(table)
# Add an 'outer' div that holds the hotlist div, with the buttons below.
outer_div = DivWdg()
outer_div.add(hotlist_div)
outer_div.add_behavior(get_scrollbar_width())
return outer_div
示例5: get_display
# 需要导入模块: from pyasm.web import Table [as 别名]
# 或者: from pyasm.web.Table import add_tbody [as 别名]
def get_display(self):
table = Table()
table.add_attr('id', 'bigboard')
table.add_style('width', '100%')
table.add_style('background-color', '#FCFCFC')
table.add_style('font-size', '12px')
table.add_style('font-family', 'Helvetica')
table.add_border(style='solid', color='#F2F2F2', size='1px')
# Because Tactic doesn't allow for the <thead> element (that I know of), the table header has to be split
# into it's own <tbody>. Highly inelegant, but I don't have a choice.
header_body = table.add_tbody()
header_body.add_style('display', 'block')
header_body.add_attr('id', 'thead-section')
# Get the titles that fall under 'external rejection' (they need to be on the top of the board)
search_for_external_rejections = Search('twog/title')
search_for_external_rejections.add_filter('is_external_rejection', 'true')
external_rejections_sobjects = search_for_external_rejections.get_sobjects()
external_rejections = [hot_item for hot_item in external_rejections_sobjects if hot_item.get_value('status') != 'Completed']
search_in_external_rejection_database = Search('twog/external_rejection')
search_in_external_rejection_database.add_filter('status', 'Open')
external_rejection_title_codes = [item.get_value('title_code') for item in search_in_external_rejection_database.get_sobjects()]
external_rejection_title_codes = [code for code in external_rejection_title_codes if code not in [item.get_value('code') for item in external_rejections]]
search_for_external_rejection_extra_titles = Search('twog/title')
search_for_external_rejection_extra_titles.add_filters('code', external_rejection_title_codes)
external_rejections.extend([item for item in search_for_external_rejection_extra_titles.get_sobjects()])
# Search for titles that are marked as 'hot'
search_for_hot_items = Search('twog/title')
search_for_hot_items.add_filter('bigboard', True)
search_for_hot_items.add_filter('is_external_rejection', 'false')
search_for_hot_items.add_order_by('priority')
search_for_hot_items.add_order_by('expected_delivery_date')
hot_items_sobjects = search_for_hot_items.get_sobjects()
hot_items = [hot_item for hot_item in hot_items_sobjects if hot_item.get_value('status') != 'Completed']
# The database query for tasks will fail if there are no external rejections being passed in, causing the
# whole hotlist to crash. This if/else prevents that.
if external_rejections:
external_rejection_tasks = self.get_tasks(external_rejections)
else:
external_rejection_tasks = []
tasks = self.get_tasks(hot_items)
# Current priority will be updated each time a title has a different priority from the last value
current_priority = 0
title_counter = 1
# Get a list of all the users allowed to change priorities on the list. Only they will be able to see
# the input box to change priority.
is_admin_user = False
admin_search = Search("twog/global_resource")
admin_search.add_filter('name', 'Usernames Allowed Hot Today Changes')
admin_search_object = admin_search.get_sobject()
if admin_search_object:
# The users allowed to make priority changes are stored in the 'description' section of this sobject,
# in a comma separated list
admin_users = admin_search_object.get_value('description').split(',')
# Check if current user is in the list (no idea why you need get_login twice, but it doesn't work otherwise)
if Environment.get_login().get_login() in admin_users:
is_admin_user = True
# 'title' is also in the headers, but since that always displays we'll leave it out here
header_groups = self.get_header_groups(tasks)
self.set_header(table, header_groups)
hotlist_body = table.add_tbody()
hotlist_body.add_style('display', 'block')
hotlist_body.add_style('overflow-x', 'hidden')
hotlist_body.add_style('overflow-y', 'scroll')
hotlist_body.add_style('height', '850px')
hotlist_body.add_style('width', '100%')
hotlist_body.add_attr('id', 'hotlist-body')
dictionary_of_tasks = {}
dictionary_of_external_rejection_tasks = {}
for task in external_rejection_tasks:
task_title_code = task.get_value('title_code')
task_header = task.get_value('assigned_login_group')
if task_title_code not in dictionary_of_external_rejection_tasks.keys():
dictionary_of_external_rejection_tasks[task_title_code] = {task_header: None}
if not dictionary_of_external_rejection_tasks[task_title_code].get(task_header):
dictionary_of_external_rejection_tasks[task_title_code][task_header] = [task]
else:
dictionary_of_external_rejection_tasks[task_title_code][task_header].append(task)
for task in tasks:
task_title_code = task.get_value('title_code')
#.........这里部分代码省略.........