def init(self): self.add("Process: ") checkbox = CheckboxWdg("process") checkbox.set_option("value", "on") checkbox.set_persistence() checkbox.add_event("onclick", "document.form.submit()") self.add(checkbox)
def get_instantiation_wdg(my): setting = my.get_default_setting() default_instantiation = setting.get('instantiation') div = DivWdg() is_unchecked = True default_cb = None for value in my.get_instantiation_options(): name = my.get_element_name("instantiation") checkbox = CheckboxWdg(name) if value == default_instantiation: default_cb = checkbox checkbox.set_option("value", value) checkbox.set_persistence() if checkbox.is_checked(): is_unchecked = False checkbox.add_behavior({ 'type': 'click_up', 'propagate_evt': True, "cbjs_action": "spt.toggle_checkbox(bvr, '.spt_ui_options', '%s')" % name }) span = SpanWdg(checkbox, css='small') span.add(value) div.add(span) if is_unchecked: default_cb.set_checked() return div
def get_instantiation_wdg(self): setting = self.get_default_setting() default_instantiation = setting.get('instantiation') div = DivWdg() is_unchecked = True default_cb = None for value in self.get_instantiation_options(): name = self.get_element_name("instantiation") checkbox = CheckboxWdg( name ) if value == default_instantiation: default_cb = checkbox checkbox.set_option("value", value) checkbox.set_persistence() if checkbox.is_checked(): is_unchecked = False checkbox.add_behavior({'type': 'click_up', 'propagate_evt': True, "cbjs_action": "spt.toggle_checkbox(bvr, '.spt_ui_options', '%s')" %name}) span = SpanWdg(checkbox, css='small') span.add(value) div.add(span) if is_unchecked: default_cb.set_checked() return div
def get_render_icon_wdg(my): '''Checkbox determines whether to create icon''' div = DivWdg() div.add("Create Icon: ") checkbox = CheckboxWdg("render") checkbox.set_persistence() div.add(checkbox) return div
def get_display(self): div = DivWdg() div.add_style("padding: 10px 0px 10px 0px") behavior = { 'type': 'keyboard', 'kbd_handler_name': 'DgTableMultiLineTextEdit' } div.add_behavior(behavior) project_code = None sobject = self.get_current_sobject() if sobject: project_code = sobject.get_project_code() project_filter = Project.get_project_filter(project_code) query_filter = self.get_option("query_filter") if not query_filter: # try getting it from the search_type web = WebContainer.get_web() search_type = web.get_form_value("search_type") if search_type: search_type_obj = SearchType.get(search_type) base_search_type = search_type_obj.get_base_search_type() query_filter = "search_type = '%s'" % base_search_type # add the project filter if query_filter: query_filter = "%s and %s" % (query_filter, project_filter) else: query_filter = project_filter self.set_option("query_filter", query_filter) select = SelectWdg() select.add_empty_option("-- Select --") select.copy(self) select.add_event("onchange", "alert('cow')") div.add(select) span = SpanWdg(css="med") span.add("Add Initial Tasks: ") checkbox = CheckboxWdg("add_initial_tasks") checkbox.set_persistence() if checkbox.is_checked(False): checkbox.set_checked() span.add(checkbox) div.add(span) # list all of the processes with checkboxes pipeline_code = select.get_value() if pipeline_code: pipeline = Pipeline.get_by_code(pipeline_code) if not pipeline: print "WARNING: pipeline '%s' does not exist" % pipeline_code return process_names = pipeline.get_process_names(recurse=True) process_div = DivWdg() for process in process_names: checkbox = CheckboxWdg("add_initial_tasks") process_div.add(checkbox) process_div.add(" ") process_div.add(process) process_div.add(HtmlElement.br()) div.add(process_div) return div
class ArtistViewWdg(SpanWdg): def init(self): self.add("Show assigned only: ") self.checkbox = CheckboxWdg("show_assigned_only") self.checkbox.set_option("value", "on") self.checkbox.set_persistence() self.checkbox.add_event("onclick", "document.form.submit()") self.add(self.checkbox) self.add_class("med") def is_supervisor(self): # if the user is a supervisor, look at all of the assets project = Project.get_project_name() security = Environment.get_security() return security.check_access("prod/%s" % project, "model/supervisor", "true") def is_artist(self): # if the user is a artist, look at all of the assets project = Project.get_project_name() security = Environment.get_security() return security.check_access("prod/%s" % project, "model/artist", "true") def alter_search(self, search): # get all of the relevant tasks to the user task_search = Search("sthpw/task") task_search.add_column("search_id") # only look at this project project = Project.get_project_name() task_search.add_filter("search_type", search.get_search_type()) # figure out who the user is security = Environment.get_security() login = security.get_login() user = login.get_value("login") print "is_artist: ", self.is_artist() print "is_supervisor: ", self.is_supervisor() # do some filtering web = WebContainer.get_web() show_assigned_only = self.checkbox.get_value() show_process = web.get_form_values("process") if not show_process or show_process[0] == '': show_process = [] show_task_status = web.get_form_values("task_status") if not show_task_status or show_task_status[0] == '': show_task_status = [] if show_assigned_only == "on": task_search.add_filter("assigned", user) if show_process: where = "process in (%s)" % ", ".join( ["'%s'" % x for x in show_process]) task_search.add_where(where) if show_task_status: where = "status in (%s)" % ", ".join( ["'%s'" % x for x in show_task_status]) task_search.add_where(where) else: task_search.add_where("NULL") # record the tasks self.tasks = task_search.get_sobjects() # get all of the sobject ids sobject_ids = ["'%s'" % x.get_value("search_id") for x in self.tasks] # get all of the sobjects related to this task if sobject_ids: search.add_where("id in (%s)" % ", ".join(sobject_ids))
def get_display(my): widget = Widget() div = DivWdg(css='spt_ui_options') div.set_unique_id() table = Table() div.add(table) table.add_style("margin: 5px 15px") table.add_color('color', 'color') swap = SwapDisplayWdg() #swap.set_off() app = WebContainer.get_web().get_selected_app() outer_span = SpanWdg() outer_span.add_style('float: right') span = SpanWdg(app, css='small') icon = IconWdg(icon=eval("IconWdg.%s" % app.upper()), width='13px') outer_span.add(span) outer_span.add(icon) title = SpanWdg("Loading Options") title.add(outer_span) SwapDisplayWdg.create_swap_title(title, swap, div, is_open=False) widget.add(swap) widget.add(title) widget.add(div) if not my.hide_instantiation: table.add_row() table.add_blank_cell() div = DivWdg(HtmlElement.b("Instantiation: ")) table.add_cell(div) div = my.get_instantiation_wdg() table.add_cell(div) setting = my.get_default_setting() default_instantiation = setting.get('instantiation') default_connection = setting.get('connection') default_dependency = setting.get('texture_dependency') if not my.hide_connection: table.add_row() table.add_blank_cell() con_div = DivWdg(HtmlElement.b("Connection: ")) table.add_cell(con_div) td = table.add_cell() is_unchecked = True default_cb = None for value in ['http', 'file system']: name = my.get_element_name("connection") checkbox = CheckboxWdg(name) checkbox.set_option("value", value) checkbox.set_persistence() if value == default_connection: default_cb = checkbox if checkbox.is_checked(): is_unchecked = False checkbox.add_behavior({ 'type': 'click_up', 'propagate_evt': True, "cbjs_action": "spt.toggle_checkbox(bvr, '.spt_ui_options', '%s')" % name }) span = SpanWdg(checkbox, css='small') span.add(value) td.add(span) if is_unchecked: default_cb.set_checked() if not my.hide_dependencies: table.add_row() table.add_blank_cell() div = DivWdg(HtmlElement.b("Texture Dependencies: ")) table.add_cell(div) td = table.add_cell() is_unchecked = True default_cb = None for value in ['as checked in', 'latest', 'current']: name = my.get_element_name("dependency") checkbox = CheckboxWdg(name) checkbox.set_option("value", value) checkbox.set_persistence() checkbox.add_behavior({ 'type': 'click_up', 'propagate_evt': True, "cbjs_action": "spt.toggle_checkbox(bvr, '.spt_ui_options', '%s')" % name }) if value == default_dependency: default_cb = checkbox if checkbox.is_checked(): is_unchecked = False span = SpanWdg(checkbox, css='small') span.add(value) td.add(span) if is_unchecked: default_cb.set_checked() from connection_select_wdg import ConnectionSelectWdg table.add_row() table.add_blank_cell() div = DivWdg(HtmlElement.b("Connection Type: ")) table.add_cell(div) table.add_cell(ConnectionSelectWdg()) table.add_row() table.add_blank_cell() div = DivWdg(HtmlElement.b("Connection Port: ")) table.add_cell(div) port_div = DivWdg() port_text = TextWdg("port") port_text.set_option('size', '6') port_div.add(port_text) port_div.add_style("padding-left: 7px") port_div.add_style("width: 40px") table.add_cell(port_div) from pyasm.prod.web import WidgetSettings value = WidgetSettings.get_value_by_key("CGApp:connection_port") if value: port_text.set_value(value) elif WebContainer.get_web().get_selected_app() == 'Houdini': port_text.set_value("13000") else: port_text.set_value("4444") port_text.add_behavior({ 'type': 'change', 'cbjs_action': ''' var value = bvr.src_el.value; value = parseInt(value); var kwargs = { 'data': value, 'key': 'CGApp:connection_port' } var cmd = "pyasm.web.WidgetSettingSaveCbk" var server = TacticServerStub.get(); server.execute_cmd(cmd, kwargs); // FIXME: this is dangerous use of a global var app.port = value; ''' }) return widget
def get_display(self): widget = Widget() div = DivWdg(css='spt_ui_options') div.set_unique_id() table = Table() div.add(table) table.add_style("margin: 5px 15px") table.add_color('color','color') swap = SwapDisplayWdg() #swap.set_off() app = WebContainer.get_web().get_selected_app() outer_span = SpanWdg() outer_span.add_style('float: right') span = SpanWdg(app, css='small') icon = IconWdg(icon=eval("IconWdg.%s"%app.upper()), width='13px') outer_span.add(span) outer_span.add(icon) title = SpanWdg("Loading Options") title.add(outer_span) SwapDisplayWdg.create_swap_title(title, swap, div, is_open=False) widget.add(swap) widget.add(title) widget.add(div) if not self.hide_instantiation: table.add_row() table.add_blank_cell() div = DivWdg(HtmlElement.b("Instantiation: ")) table.add_cell(div) div = self.get_instantiation_wdg() table.add_cell(div) setting = self.get_default_setting() default_instantiation = setting.get('instantiation') default_connection = setting.get('connection') default_dependency = setting.get('texture_dependency') if not self.hide_connection: table.add_row() table.add_blank_cell() con_div = DivWdg(HtmlElement.b("Connection: ")) table.add_cell(con_div) td = table.add_cell() is_unchecked = True default_cb = None for value in ['http', 'file system']: name = self.get_element_name("connection") checkbox = CheckboxWdg( name ) checkbox.set_option("value", value) checkbox.set_persistence() if value == default_connection: default_cb = checkbox if checkbox.is_checked(): is_unchecked = False checkbox.add_behavior({'type': 'click_up', 'propagate_evt': True, "cbjs_action": "spt.toggle_checkbox(bvr, '.spt_ui_options', '%s')" %name}) span = SpanWdg(checkbox, css='small') span.add(value) td.add(span) if is_unchecked: default_cb.set_checked() if not self.hide_dependencies: table.add_row() table.add_blank_cell() div = DivWdg(HtmlElement.b("Texture Dependencies: ")) table.add_cell(div) td = table.add_cell() is_unchecked = True default_cb = None for value in ['as checked in', 'latest', 'current']: name = self.get_element_name("dependency") checkbox = CheckboxWdg( name ) checkbox.set_option("value", value) checkbox.set_persistence() checkbox.add_behavior({'type': 'click_up', 'propagate_evt': True, "cbjs_action": "spt.toggle_checkbox(bvr, '.spt_ui_options', '%s')" %name}) if value == default_dependency: default_cb = checkbox if checkbox.is_checked(): is_unchecked = False span = SpanWdg(checkbox, css='small') span.add(value) td.add(span) if is_unchecked: default_cb.set_checked() from connection_select_wdg import ConnectionSelectWdg table.add_row() table.add_blank_cell() div = DivWdg(HtmlElement.b("Connection Type: ")) table.add_cell(div) table.add_cell( ConnectionSelectWdg() ) table.add_row() table.add_blank_cell() div = DivWdg(HtmlElement.b("Connection Port: ")) table.add_cell(div) port_div = DivWdg() port_text = TextWdg("port") port_text.set_option('size','6') port_div.add(port_text) port_div.add_style("padding-left: 7px") port_div.add_style("width: 40px") table.add_cell( port_div ) from pyasm.prod.web import WidgetSettings value = WidgetSettings.get_value_by_key("CGApp:connection_port") if value: port_text.set_value(value) elif WebContainer.get_web().get_selected_app() == 'Houdini': port_text.set_value("13000") else: port_text.set_value("4444") port_text.add_behavior( { 'type': 'change', 'cbjs_action': ''' var value = bvr.src_el.value; value = parseInt(value); var kwargs = { 'data': value, 'key': 'CGApp:connection_port' } var cmd = "pyasm.web.WidgetSettingSaveCbk" var server = TacticServerStub.get(); server.execute_cmd(cmd, kwargs); // FIXME: this is dangerous use of a global var app.port = value; ''' } ) return widget
def get_display(my): div = DivWdg() div.add_style("padding: 10px 0px 10px 0px") behavior = {"type": "keyboard", "kbd_handler_name": "DgTableMultiLineTextEdit"} div.add_behavior(behavior) project_code = None sobject = my.get_current_sobject() if sobject: project_code = sobject.get_project_code() project_filter = Project.get_project_filter(project_code) query_filter = my.get_option("query_filter") if not query_filter: # try getting it from the search_type web = WebContainer.get_web() search_type = web.get_form_value("search_type") if search_type: search_type_obj = SearchType.get(search_type) base_search_type = search_type_obj.get_base_search_type() query_filter = "search_type = '%s'" % base_search_type # add the project filter if query_filter: query_filter = "%s and %s" % (query_filter, project_filter) else: query_filter = project_filter my.set_option("query_filter", query_filter) select = SelectWdg() select.add_empty_option("-- Select --") select.copy(my) select.add_event("onchange", "alert('cow')") div.add(select) span = SpanWdg(css="med") span.add("Add Initial Tasks: ") checkbox = CheckboxWdg("add_initial_tasks") checkbox.set_persistence() if checkbox.is_checked(False): checkbox.set_checked() span.add(checkbox) div.add(span) # list all of the processes with checkboxes pipeline_code = select.get_value() if pipeline_code: pipeline = Pipeline.get_by_code(pipeline_code) if not pipeline: print "WARNING: pipeline '%s' does not exist" % pipeline_code return process_names = pipeline.get_process_names(recurse=True) process_div = DivWdg() for process in process_names: checkbox = CheckboxWdg("add_initial_tasks") process_div.add(checkbox) process_div.add(" ") process_div.add(process) process_div.add(HtmlElement.br()) div.add(process_div) return div
class ArtistViewWdg(SpanWdg): def init(self): self.add("Show assigned only: ") self.checkbox = CheckboxWdg("show_assigned_only") self.checkbox.set_option("value", "on") self.checkbox.set_persistence() self.checkbox.add_event("onclick", "document.form.submit()") self.add(self.checkbox) self.add_class("med") def is_supervisor(self): # if the user is a supervisor, look at all of the assets project = Project.get_project_name() security = Environment.get_security() return security.check_access("prod/%s" % project, "model/supervisor", "true") def is_artist(self): # if the user is a artist, look at all of the assets project = Project.get_project_name() security = Environment.get_security() return security.check_access("prod/%s" % project, "model/artist", "true") def alter_search(self, search): # get all of the relevant tasks to the user task_search = Search("sthpw/task") task_search.add_column("search_id") # only look at this project project = Project.get_project_name() task_search.add_filter("search_type", search.get_search_type()) # figure out who the user is security = Environment.get_security() login = security.get_login() user = login.get_value("login") print "is_artist: ", self.is_artist() print "is_supervisor: ", self.is_supervisor() # do some filtering web = WebContainer.get_web() show_assigned_only = self.checkbox.get_value() show_process = web.get_form_values("process") if not show_process or show_process[0] == '': show_process = [] show_task_status = web.get_form_values("task_status") if not show_task_status or show_task_status[0] == '': show_task_status = [] if show_assigned_only == "on": task_search.add_filter("assigned", user) if show_process: where = "process in (%s)" % ", ".join( ["'%s'" % x for x in show_process] ) task_search.add_where(where) if show_task_status: where = "status in (%s)" % ", ".join( ["'%s'" % x for x in show_task_status] ) task_search.add_where(where) else: task_search.add_where("NULL") # record the tasks self.tasks = task_search.get_sobjects() # get all of the sobject ids sobject_ids = ["'%s'" % x.get_value("search_id") for x in self.tasks] # get all of the sobjects related to this task if sobject_ids: search.add_where( "id in (%s)" % ", ".join(sobject_ids) )