def get_art_reference(self): widget = Widget() help = HelpItemWdg('References', 'References tab lets the user organize art references. Each reference can be [related] to one or more assets defined in TACTIC. It can be set up when you [Edit] the reference.') self.add(help) div = DivWdg(css="filter_box") widget.add(div) columns = ['description','keywords'] search_filter = SearchFilterWdg("art_ref_search", columns=columns,\ has_persistence=False) div.add(search_filter) select = FilterSelectWdg("art_ref_category", label='Category: ', css='snall') select.set_option("setting", "art_reference_category") select.add_empty_option('-- Any --') div.add( select ) table = TableWdg("prod/art_reference") search = Search("prod/art_reference") search_filter.alter_search(search) value = select.get_value() if value != "": search.add_filter("category", value) table.set_search(search) widget.add(table) return widget
def get_display(my): args = WebContainer.get_web().get_form_args() # get the args in the URL search_type = args['search_type'] search_id = args['search_id'] sobject = Search.get_by_search_key("%s|%s" % (search_type, search_id)) search = Search("prod/sequence_instance") search.add_filter(sobject.get_foreign_key(), sobject.get_code()) all_instances = search.get_sobjects() widget = DivWdg() widget.add_style("width: 95%") widget.add_style("margin-left: 20px") table = TableWdg("prod/sequence_instance", "layout", css="minimal") table.set_show_property(False) table.set_show_header(False) table.set_sobjects(all_instances) table.set_search(search) widget.add(table) aux_data = SequenceInstance.get_aux_data(all_instances) table.set_aux_data(aux_data) return widget
def get_camera_wdg(self): widget = Widget() div = DivWdg(css="filter_box") sequence_filter = SequenceFilterWdg() epi_code, sequence_code = sequence_filter.get_value() div.add(sequence_filter) search = Search("prod/camera") columns = ['shot_code', 'description'] search_filter = SearchFilterWdg("camera_search", columns=columns,\ has_persistence=False) search_filter.alter_search(search) div.add(search_filter) widget.add(div) if sequence_code: search.add_where("shot_code in (select code from shot where sequence_code = '%s')" % sequence_code) table = TableWdg("prod/camera") table.set_search(search) widget.add(table) return widget
def get_storyboard_wdg(my): widget = Widget() help = HelpItemWdg( 'Storyboards', 'Storyboards tab lets the user organize storyboards. You are only required to [Insert] once per shot. Subsequent versions of the storyboard should be published via the [Publish] button.' ) my.add(help) div = DivWdg(css="filter_box") sequence_filter = SequenceFilterWdg() epi_code, sequence_code = sequence_filter.get_value() div.add(sequence_filter) columns = ['code', 'shot_code'] search_filter = SearchFilterWdg("storyboard_search", columns=columns,\ has_persistence=False) div.add(search_filter) widget.add(div) # create a search search = Search("prod/storyboard") if sequence_code: search.add_where( "shot_code in (select code from shot where sequence_code = '%s')" % sequence_code) table = TableWdg("prod/storyboard") table.set_class("table") table.set_search_limit(25) table.set_search(search) widget.add(table) return widget
def get_display(my): args = WebContainer.get_web().get_form_args() # get the args in the URL search_type = args['search_type'] search_id = args['search_id'] sobject = Search.get_by_search_key("%s|%s" % (search_type,search_id) ) search = Search("prod/sequence_instance") search.add_filter(sobject.get_foreign_key(), sobject.get_code()) all_instances = search.get_sobjects() widget = DivWdg() widget.add_style("width: 95%") widget.add_style("margin-left: 20px") table = TableWdg("prod/sequence_instance", "layout", css="minimal") table.set_show_property(False) table.set_show_header(False) table.set_sobjects(all_instances) table.set_search(search) widget.add(table) aux_data = SequenceInstance.get_aux_data(all_instances) table.set_aux_data(aux_data) return widget
def get_camera_wdg(my): widget = Widget() div = DivWdg(css="filter_box") sequence_filter = SequenceFilterWdg() epi_code, sequence_code = sequence_filter.get_value() div.add(sequence_filter) search = Search("prod/camera") columns = ['shot_code', 'description'] search_filter = SearchFilterWdg("camera_search", columns=columns,\ has_persistence=False) search_filter.alter_search(search) div.add(search_filter) widget.add(div) if sequence_code: search.add_where( "shot_code in (select code from shot where sequence_code = '%s')" % sequence_code) table = TableWdg("prod/camera") table.set_search(search) widget.add(table) return widget
def get_notes_wdg(my): widget = Widget() div = DivWdg(css="filter_box") columns = ['code', 'description'] search_filter = SearchFilterWdg("note_search", columns=columns,\ has_persistence=False) div.add(search_filter) sequence_filter = SequenceFilterWdg() div.add(sequence_filter) context_select = FilterSelectWdg("discussion_context") context_select.set_option("setting", "notes_preprod_context") context_select.add_empty_option("-- Any Context --") span = SpanWdg(css="med") span.add("Notes Context: ") span.add(context_select) hint = HintWdg('Submission notes for each shot are also included here') span.add(hint) div.add(span) widget.add(div) # create a search search = Search("prod/shot") sequence_filter.alter_search(search) search_filter.alter_search(search) table = TableWdg("prod/shot", "preprod_notes") table.set_search(search) widget.add(table) return widget
def get_display(self): search_type = self.options.get("search_type") view = self.options.get("view") filter = self.options.get("filter") if type(filter) in types.StringTypes: filters = [filter] elif not filter: filters = [] else: filters = filter # create the search search = Search(search_type) widget = Widget() div = DivWdg(css="filter_box") widget.add(div) for i, filter in enumerate(filters): if filter.find("|") != -1: filter_name, expression = filter.split("|", 1) else: filter_name = filter expression = None span = SpanWdg(css="med") filter_wdg = Container.get_dict("widgets", filter_name) if not filter_wdg: filter_wdg = Common.create_from_class_path(filter_name) span.add(filter_wdg) div.add(span) else: span.add("%s: " % filter_wdg.get_name()) if expression: name = filter_wdg.get_name() value = filter_wdg.get_value() if value != "": expression = expression.replace("{name}", name) expression = expression.replace("{value}", value) search.add_where(expression) else: filter_wdg.alter_search(search) filter_wdg.set_name(filter_name) span = SpanWdg(css="med") span.add("%s: " % filter_name) span.add(filter_wdg) div.add(span) table = TableWdg(search_type, view) table.set_search(search) table.do_search() widget.add(table) return widget
def get_project_settings_wdg(my): widget = Widget() search = Search("prod/prod_setting") table = TableWdg("prod/prod_setting") table.set_search(search) widget.add(table) return widget
def get_milestone_wdg(my): widget = Widget() search = Search("sthpw/milestone") table = TableWdg("sthpw/milestone") table.set_search(search) widget.add(table) return widget
def get_milestone_wdg(self): widget = Widget() search = Search("sthpw/milestone") table = TableWdg("sthpw/milestone") table.set_search(search) widget.add(table) return widget
def get_display(self): if not self.is_refresh: widget = DivWdg() self.set_as_panel(widget) else: widget = Widget() sobject = Search.get_by_id(self.search_type, self.search_id) if sobject: search_type = sobject.get_base_search_type() else: widget.add('sobject not found with [%s,%s]' % (self.search_type, self.search_id)) return widget # the filter for searching assets div = DivWdg(css="filter_box") filter = ProcessSelectWdg(label = 'Process: ', search_type=search_type,\ css='med', has_empty=True) filter.set_persistence() filter.add_behavior({ 'type': 'change', 'cbjs_action': '%s;%s' % (filter.get_save_script(), filter.get_refresh_script()) }) div.add(filter) # note assuming process == context here contexts = filter.get_values() if contexts: contexts = contexts[0].split(",") else: contexts = None widget.add(div) snap_table = TableWdg(Snapshot.SEARCH_TYPE, "publish_browser") widget.add(snap_table) # add the search search = Search(Snapshot.SEARCH_TYPE) search.add_order_by("version desc") search.add_sobject_filter(sobject) if contexts: search.add_filters("context", contexts) snap_table.set_sobjects(search.get_sobjects()) snap_table.set_search(search) return widget
def get_display(my): web = WebContainer.get_web() args = web.get_form_args() # get the args in the URL search_type = args['search_type'] search_id = args['search_id'] sobject = Search.get_by_search_key("%s|%s" % (search_type,search_id) ) planner_search_type = my.get_search_type() # get parent instances first ''' all_instances = [] parent_code = "" if sobject.has_value("parent_code"): parent_code = sobject.get_value("parent_code") if parent_code != "": parent = sobject.get_by_code(parent_code) search = Search(planner_search_type) search.add_filter(sobject.get_foreign_key(), parent.get_code()) instances = search.get_sobjects() all_instances.extend(instances) ''' search = Search(planner_search_type) search.add_filter(sobject.get_foreign_key(), sobject.get_code()) instances = search.get_sobjects() #all_instances.extend(instances) widget = DivWdg() widget.add( HiddenWdg("planner_search_type", planner_search_type) ) widget.add_style("width: 95%") widget.add_style("float: right") table = TableWdg(search_type, "layout", css='minimal') table.table.set_max_width(use_css=True) #table.set_sobjects(all_instances) table.set_search(search) table.do_search() table.set_show_property(False) #aux_data = ShotInstance.get_aux_data(all_instances) #table.set_aux_data(aux_data) widget.add(table) return widget
def get_display(self): web = WebContainer.get_web() args = web.get_form_args() # get the args in the URL search_type = args['search_type'] search_id = args['search_id'] sobject = Search.get_by_search_key("%s|%s" % (search_type,search_id) ) planner_search_type = self.get_search_type() # get parent instances first ''' all_instances = [] parent_code = "" if sobject.has_value("parent_code"): parent_code = sobject.get_value("parent_code") if parent_code != "": parent = sobject.get_by_code(parent_code) search = Search(planner_search_type) search.add_filter(sobject.get_foreign_key(), parent.get_code()) instances = search.get_sobjects() all_instances.extend(instances) ''' search = Search(planner_search_type) search.add_filter(sobject.get_foreign_key(), sobject.get_code()) instances = search.get_sobjects() #all_instances.extend(instances) widget = DivWdg() widget.add( HiddenWdg("planner_search_type", planner_search_type) ) widget.add_style("width: 95%") widget.add_style("float: right") table = TableWdg(search_type, "layout", css='minimal') table.table.set_max_width(use_css=True) #table.set_sobjects(all_instances) table.set_search(search) table.do_search() table.set_show_property(False) #aux_data = ShotInstance.get_aux_data(all_instances) #table.set_aux_data(aux_data) widget.add(table) return widget
def get_display(self): if not self.is_refresh: widget = DivWdg() self.set_as_panel(widget) else: widget = Widget() sobject = Search.get_by_id(self.search_type, self.search_id) if sobject: search_type = sobject.get_base_search_type() else: widget.add('sobject not found with [%s,%s]' %(self.search_type, self.search_id)) return widget # the filter for searching assets div = DivWdg(css="filter_box") filter = ProcessSelectWdg(label = 'Process: ', search_type=search_type,\ css='med', has_empty=True) filter.set_persistence() filter.add_behavior({'type' : 'change', 'cbjs_action': '%s;%s'%(filter.get_save_script(), filter.get_refresh_script()) }) div.add(filter) # note assuming process == context here contexts = filter.get_values() if contexts: contexts = contexts[0].split(",") else: contexts = None widget.add(div) snap_table = TableWdg(Snapshot.SEARCH_TYPE, "publish_browser") widget.add(snap_table) # add the search search = Search(Snapshot.SEARCH_TYPE) search.add_order_by("version desc") search.add_sobject_filter(sobject) if contexts: search.add_filters("context", contexts) snap_table.set_sobjects(search.get_sobjects()) snap_table.set_search(search) return widget
def get_config_wdg(my): widget = Widget() search = Search("sthpw/widget_config") div = DivWdg(css="filter_box") span = SpanWdg(css="med") span.add("Search Type: ") select = FilterSelectWdg("config_search_type") select.add_empty_option("-- Select --") search_type_search = Search("sthpw/search_object") search_type_search.add_order_by("search_type") span.add(select) project = Project.get() project_type = project.get_base_type() filter = search.get_regex_filter("search_type", "login|task|note|timecard", "EQ") search_type_search.add_where( """ namespace = '%s' or namespace = '%s' or %s """ % (project_type, project.get_code(), filter) ) select.set_search_for_options(search_type_search, value_column="search_type") div.add(span) search_type_value = select.get_value() span = SpanWdg() view_text = TextWdg("view") view_text.set_persist_on_submit() span.add("View: ") span.add(view_text) div.add(span) widget.add(div) view = view_text.get_value() if view: search.add_filter("view", view) if search_type_value: search.add_filter("search_type", search_type_value) table = TableWdg("sthpw/widget_config") table.set_search(search) widget.add(table) return widget
def get_config_wdg(self): widget = Widget() search = Search("sthpw/widget_config") div = DivWdg(css="filter_box") span = SpanWdg(css="med") span.add("Search Type: ") select = FilterSelectWdg("config_search_type") select.add_empty_option("-- Select --") search_type_search = Search("sthpw/search_object") search_type_search.add_order_by("search_type") span.add(select) project = Project.get() project_type = project.get_base_type() filter = search.get_regex_filter("search_type", "login|task|note|timecard", "EQ") search_type_search.add_where(''' namespace = '%s' or namespace = '%s' or %s ''' % (project_type, project.get_code(), filter)) select.set_search_for_options(search_type_search, value_column='search_type') div.add(span) search_type_value = select.get_value() span = SpanWdg() view_text = TextWdg("view") view_text.set_persist_on_submit() span.add("View: ") span.add(view_text) div.add(span) widget.add(div) view = view_text.get_value() if view: search.add_filter("view", view) if search_type_value: search.add_filter("search_type", search_type_value) table = TableWdg("sthpw/widget_config") table.set_search(search) widget.add(table) return widget
def get_extend_wdg(self): widget = Widget() search = Search("sthpw/widget_extend") div = DivWdg(css="filter_box") # add key filter span = SpanWdg(css="med") key_select = FilterSelectWdg("key") key_select.add_empty_option("-- Any Key --") key_select.set_option("query", "sthpw/widget_extend|key|key") span.add("Key: ") span.add(key_select) div.add(span) # add type filter span = SpanWdg(css="med") select = FilterSelectWdg("extend_type") select.add_empty_option("-- Any Type --") select.set_option("values", "TabWdg|TableWdg") span.add("Widget Extend Type: ") span.add(select) div.add(span) widget.add(div) extend_type = select.get_value() if extend_type: search.add_filter("type", extend_type) key = key_select.get_value() if key: search.add_filter("key", key) # add project filter #search.add_where( Project.get_project_filter() ) table = TableWdg("sthpw/widget_extend") table.set_search( search ) widget.add(table) return widget
def get_extend_wdg(self): widget = Widget() search = Search("sthpw/widget_extend") div = DivWdg(css="filter_box") # add key filter span = SpanWdg(css="med") key_select = FilterSelectWdg("key") key_select.add_empty_option("-- Any Key --") key_select.set_option("query", "sthpw/widget_extend|key|key") span.add("Key: ") span.add(key_select) div.add(span) # add type filter span = SpanWdg(css="med") select = FilterSelectWdg("extend_type") select.add_empty_option("-- Any Type --") select.set_option("values", "TabWdg|TableWdg") span.add("Widget Extend Type: ") span.add(select) div.add(span) widget.add(div) extend_type = select.get_value() if extend_type: search.add_filter("type", extend_type) key = key_select.get_value() if key: search.add_filter("key", key) # add project filter #search.add_where( Project.get_project_filter() ) table = TableWdg("sthpw/widget_extend") table.set_search(search) widget.add(table) return widget
def _get_sobject_wdg(my): ''' this method is called thru ajax ''' args = WebContainer.get_web().get_form_args() # get the args in the URL search_type = args['search_type'] sobj_search_type = args['sobj_search_type'] search_id = args['search_id'] view = args['view'] sobject = Search.get_by_id(sobj_search_type, search_id) content = Widget() table = TableWdg(search_type, view, css='table') table.set_show_property(False) content.add(table) content.add(HtmlElement.br(2)) search = my._get_sobject_search(sobject, search_type) sobjects = search.get_sobjects() if search_type.startswith("sthpw/note"): # this assumes that a project has submission! from pyasm.prod.biz import Submission from pyasm.search import SqlException try: notes = Submission.get_all_notes(sobject) sobjects.extend( notes ) except SqlException: pass def compare(x,y): return cmp( y.get_value("timestamp"), x.get_value("timestamp") ) sobjects.sort(cmp=compare) table.set_search(search) table.set_sobjects(sobjects) return content
def get_notes_wdg(self): widget = Widget() div = DivWdg(css="filter_box") columns = ['code', 'description'] search_filter = SearchFilterWdg("note_search", columns=columns,\ has_persistence=False) div.add(search_filter) sequence_filter = SequenceFilterWdg() div.add(sequence_filter) context_select = FilterSelectWdg("discussion_context") context_select.set_option("setting", "notes_preprod_context") context_select.add_empty_option("-- Any Context --") span = SpanWdg(css="med") span.add("Notes Context: ") span.add(context_select) hint = HintWdg('Submission notes for each shot are also included here') span.add(hint) div.add(span) widget.add(div) # create a search search = Search("prod/shot") sequence_filter.alter_search(search) search_filter.alter_search(search) table = TableWdg("prod/shot", "preprod_notes") table.set_search(search) widget.add(table) return widget
def _get_sobject_wdg(self): ''' this method is called thru ajax ''' args = WebContainer.get_web().get_form_args() # get the args in the URL search_type = args['search_type'] sobj_search_type = args['sobj_search_type'] search_id = args['search_id'] view = args['view'] sobject = Search.get_by_id(sobj_search_type, search_id) content = Widget() table = TableWdg(search_type, view, css='table') table.set_show_property(False) content.add(table) content.add(HtmlElement.br(2)) search = self._get_sobject_search(sobject, search_type) sobjects = search.get_sobjects() if search_type.startswith("sthpw/note"): # this assumes that a project has submission! from pyasm.prod.biz import Submission from pyasm.search import SqlException try: notes = Submission.get_all_notes(sobject) sobjects.extend(notes) except SqlException: pass def compare(x, y): return cmp(y.get_value("timestamp"), x.get_value("timestamp")) sobjects.sort(cmp=compare) table.set_search(search) table.set_sobjects(sobjects) return content
def get_storyboard_wdg(self): widget = Widget() help = HelpItemWdg('Storyboards', 'Storyboards tab lets the user organize storyboards. You are only required to [Insert] once per shot. Subsequent versions of the storyboard should be published via the [Publish] button.') self.add(help) div = DivWdg(css="filter_box") sequence_filter = SequenceFilterWdg() epi_code, sequence_code = sequence_filter.get_value() div.add(sequence_filter) columns = ['code','shot_code'] search_filter = SearchFilterWdg("storyboard_search", columns=columns,\ has_persistence=False) div.add(search_filter) widget.add(div) # create a search search = Search("prod/storyboard") if sequence_code: search.add_where("shot_code in (select code from shot where sequence_code = '%s')" % sequence_code) table = TableWdg("prod/storyboard") table.set_class("table") table.set_search_limit(25) table.set_search(search) widget.add(table) return widget
def get_art_reference(my): widget = Widget() help = HelpItemWdg( 'References', 'References tab lets the user organize art references. Each reference can be [related] to one or more assets defined in TACTIC. It can be set up when you [Edit] the reference.' ) my.add(help) div = DivWdg(css="filter_box") widget.add(div) columns = ['description', 'keywords'] search_filter = SearchFilterWdg("art_ref_search", columns=columns,\ has_persistence=False) div.add(search_filter) select = FilterSelectWdg("art_ref_category", label='Category: ', css='snall') select.set_option("setting", "art_reference_category") select.add_empty_option('-- Any --') div.add(select) table = TableWdg("prod/art_reference") search = Search("prod/art_reference") search_filter.alter_search(search) value = select.get_value() if value != "": search.add_filter("category", value) table.set_search(search) widget.add(table) return widget
def init(my): # get the args in the URL args = WebContainer.get_web().get_form_args() search_type = args['search_type'] search_id = args['search_id'] sobject = Search.get_by_id(search_type, search_id) main_div = DivWdg() main_div.add_style("width: 95%") main_div.add_style("float: right") my.add(main_div) if isinstance(sobject, Shot): content_id ='summary_story_%s' %sobject.get_id() title_id = 'story_head_%s' %sobject.get_id() story_div = DivWdg(id=content_id) story_div.add_style('display','block') story_head = HtmlElement.h3("Storyboard") my.add_title_style(story_head, title_id, content_id) main_div.add(story_head) main_div.add(story_div) storyboard_table = TableWdg("prod/storyboard", "summary", css='minimal') search = Search("prod/storyboard") search.add_filter( sobject.get_foreign_key(), sobject.get_code() ) sobjects = search.get_sobjects() storyboard_table.set_sobjects(sobjects) story_div.add(storyboard_table) # add reference material search = Search("sthpw/connection") search.add_filter("src_search_type", search_type) search.add_filter("src_search_id", search_id) connections = search.get_sobjects() if connections: content_id ='summary_ref_%s' %sobject.get_id() title_id = 'ref_head_%s' %sobject.get_id() ref_head = HtmlElement.h3("Reference") my.add_title_style(ref_head, title_id, content_id) ref_div = DivWdg(id = content_id) ref_div.add_style('display','block') for connection in connections: thumb = ThumbWdg() thumb.set_name("snapshot") dst_search_type = connection.get_value("dst_search_type") dst_search_id = connection.get_value("dst_search_id") dst = Search.get_by_id(dst_search_type, dst_search_id) thumb.set_sobject(dst) ref_div.add(thumb) main_div.add(ref_head) main_div.add(ref_div) task_head = HtmlElement.h3("Tasks") content_id ='summary_task_%s' %sobject.get_id() title_id = 'task_head_%s' %sobject.get_id() my.add_title_style(task_head, title_id, content_id) main_div.add(task_head) task_div = DivWdg(id=content_id) task_div.add_style('display','block') main_div.add(task_div) search = Search("sthpw/task") #if process != "": # search.add_filter("process", process) search.add_filter("search_type", search_type) search.add_filter("search_id", search_id) #search.set_limit(4) task_table = TableWdg("sthpw/task", "summary", css='minimal') task_table.set_id('sthpw/task%s' % search_id) task_table.set_search(search) task_div.add(task_table) content_id ='summary_hist_%s' %sobject.get_id() title_id = 'hist_head_%s' %sobject.get_id() hist_head = HtmlElement.h3("Checkin History") my.add_title_style(hist_head, title_id, content_id) hist_div = DivWdg(id=content_id) hist_div.add_style('display','block') main_div.add(hist_head) main_div.add(hist_div) from flash_asset_history_wdg import FlashAssetHistoryWdg history = FlashAssetHistoryWdg() hist_div.add(history) main_div.add(HtmlElement.br())
def get_display(my): search_type = my.options.get("search_type") view = my.options.get("view") filter = my.options.get("filter") if type(filter) in types.StringTypes: filters = [filter] elif not filter: filters = [] else: filters = filter # create the search search = Search(search_type) widget = Widget() div = DivWdg(css="filter_box") widget.add(div) for i, filter in enumerate(filters): if filter.find("|") != -1: filter_name, expression = filter.split("|", 1) else: filter_name = filter expression = None span = SpanWdg(css="med") filter_wdg = Container.get_dict("widgets", filter_name) if not filter_wdg: filter_wdg = Common.create_from_class_path(filter_name) span.add(filter_wdg) div.add(span) else: span.add("%s: " % filter_wdg.get_name()) if expression: name = filter_wdg.get_name() value = filter_wdg.get_value() if value != "": expression = expression.replace("{name}", name) expression = expression.replace("{value}", value) search.add_where(expression) else: filter_wdg.alter_search(search) filter_wdg.set_name(filter_name) span = SpanWdg(css="med") span.add("%s: " % filter_name) span.add(filter_wdg) div.add(span) table = TableWdg(search_type, view) table.set_search(search) table.do_search() widget.add(table) return widget
def get_time_card_wdg(my): table = TableWdg('sthpw/timecard') search = Search('sthpw/timecard') table.set_search(search) return table
def get_script_wdg(self): table = TableWdg("prod/script") table.set_class("table") search = Search("prod/script") table.set_search(search) return table
def get_script_wdg(my): table = TableWdg("prod/script") table.set_class("table") search = Search("prod/script") table.set_search(search) return table