def get_instructions_select_wdg(): """ Get a Select Widget with all the instructions options :return: SelectWdg """ instructions_search = Search('twog/instructions') instructions_select_wdg = SelectWdg('instructions_select') instructions_select_wdg.set_id('instructions_select') instructions_select_wdg.add_empty_option() instructions_select_wdg.set_search_for_options(instructions_search, 'code', 'name') return instructions_select_wdg
def get_instructions_select_wdg(division_code, platform_code): """ Get a Select Widget with all the package instructions options :return: SelectWdg """ package_instructions_search = Search('twog/package_instructions') package_instructions_search.add_filter('division_code', division_code) package_instructions_search.add_filter('platform_code', platform_code) instructions_select_wdg = SelectWdg('package_instructions_select') instructions_select_wdg.set_id('package_instructions_select') instructions_select_wdg.add_empty_option() instructions_select_wdg.set_search_for_options(package_instructions_search, 'code', 'name') return instructions_select_wdg
def get_select_widget_from_search_type(search_type, label, label_column, value_column, search_filters=None, search_order_bys=None): """ Given a search_type, create a SelectWdg. Provide label, label_column, and value_column to set the SearchWdg attributes. If filters are given, apply those to the search as well. :param search_type: s_type ('twog/title' for example) :param label: String, set as 'label' on the select html element :param label_column: String, the database column to use for the option labels :param value_column: String, the database column to use for the option values :param search_filters: A list of tuples containing search filters (optional) :param search_order_bys: A list of strings corresponding to database columns to sort by (optional) :return: SelectWdg """ search = Search(search_type) if search_filters: for search_filter in search_filters: filter_name = search_filter[0] filter_value = search_filter[1] try: filter_operator = search_filter[2] except IndexError: filter_operator = None if filter_operator: search.add_filter(filter_name, filter_value, filter_operator) else: search.add_filter(filter_name, filter_value) if search_order_bys: for search_order_by in search_order_bys: search.add_order_by(search_order_by) search_wdg = SelectWdg(label) search_wdg.add_empty_option('----') search_wdg.set_search_for_options(search, label_column=label_column, value_column=value_column) return search_wdg
def init(my): search = Search("sthpw/queue") search.add_order_by("priority desc") search.add_order_by("timestamp desc") widget = Widget() div = DivWdg(css="filter_box") span = SpanWdg(css="med") from pyasm.prod.web import SearchFilterWdg search_filter = SearchFilterWdg(columns=Queue.get_search_columns()) search_filter.alter_search(search) span.add(search_filter) div.add(span) span = SpanWdg(css="med") priority_wdg = TextWdg("priority_search") priority_wdg.set_persistence() priority = priority_wdg.get_value() if priority: search.add_filter("priority", priority) span.add("Priority: ") span.add(priority_wdg) div.add(span) select = SelectWdg("queue_state") select.set_option("values", "|pending|locked|error|done") select.set_option("labels", "All|pending|locked|error|done") select.add_event("onchange", "document.form.submit()") select.set_persistence() span = SpanWdg(css="med") span.add("State: ") span.add(select) div.add(span) queue_state = select.get_value() if queue_state != "": search.add_filter("state", queue_state) user_select = SelectWdg("user_select") user_select.add_empty_option() user_search = Search("sthpw/login") user_select.set_search_for_options(user_search, "login", "login") user_select.add_event("onchange", "document.form.submit()") user_select.set_persistence() div.add("User: "******"": search.add_filter("login", queue_user) search_limit = SearchLimitWdg() search_limit.set_limit(10) div.add(search_limit) search_limit.alter_search(search) widget.add(div) sobjects = search.get_sobjects() table = TableWdg("sthpw/queue") table.set_sobjects(sobjects) widget.add(table) my.add(widget)