def convert_to_js(my, sobject, expression): # HACK!!: to very robust implementation pattern = re.compile("@(\w+)\((.*?)\)") matches = pattern.findall(expression) if not matches: return "", expression js_expression = expression columns = [] for match in matches: method = match[0] item = match[1] if method == "GET": search_key = SearchKey.build_by_sobject(sobject) parts = item.split(".") column = parts[-1] replace = '"%s","%s"' % (search_key, parts[-1]) columns.append(column) else: parts = item.split(".") column = parts[-1] replace = '"%s"' % column columns.append(column) js_expression = js_expression.replace(item, replace) return js_expression, columns
def convert_to_js(self, sobject, expression): # HACK!!: to very robust implementation pattern = re.compile('@(\w+)\((.*?)\)') matches = pattern.findall(expression) if not matches: return '', expression js_expression = expression columns = [] for match in matches: method = match[0] item = match[1] if method == 'GET': search_key = SearchKey.build_by_sobject(sobject) parts = item.split(".") column = parts[-1] replace = '"%s","%s"' % (search_key, parts[-1]) columns.append(column) else: parts = item.split(".") column = parts[-1] replace = '"%s"' % column columns.append(column) js_expression = js_expression.replace(item, replace) return js_expression, columns
def execute(my): #my.snapshot_dict = {} web = WebContainer.get_web() shot_code = web.get_form_value("shot_code") search = Search(my.search_type) search.add_filter('code', shot_code) shot = search.get_sobject() #shot = Shot.get_by_code(shot_code) is_current = web.get_form_value("currency") if is_current in ['True', 'on']: is_current = True else: is_current = False is_revision = web.get_form_value("checkin_as") if is_revision == "Version": is_revision = False else: is_revision = True checkin_status = web.get_form_value("checkin_status") checkin = ShotCheckin(shot) checkin.set_option("unknown_ref", web.get_form_value("unknown_ref")) checkin.set_process(my.process) description = web.get_form_value("%s_description" % shot.get_code() ) checkin.set_context(my.context) checkin.set_description(description) checkin.set_current(is_current) checkin.set_revision(is_revision) use_handoff_dir = web.get_form_value("use_handoff_dir") if use_handoff_dir in ['true','on']: checkin.set_use_handoff(True) checkin.execute() snapshot = checkin.snapshot version = snapshot.get_version() my.sobjects = [shot] #my.snapshot_dict['%s' %shot.get_code()] = snapshot my.add_description("%s checkin '%s': v%0.3d, %s" % (my.context, shot.get_code(), version, description)) web.set_form_value('publish_search_type','prod/shot') TabWdg.set_redirect('Log') my.info['context'] = my.context my.info['revision'] = str(is_revision) my.info['checkin_status'] = checkin_status output = {'context': my.context} output['search_key'] = SearchKey.build_by_sobject(shot) output['checkin_status'] = checkin_status Trigger.call(my, 'app_checkin', output)
def execute(my): #my.snapshot_dict = {} # get all of the selected instances web = WebContainer.get_web() instances = web.get_form_values("asset_instances") set_instances = web.get_form_values("set_instances") is_current = web.get_form_value("currency") checkin_status = web.get_form_value("checkin_status") if is_current in ['True', 'on']: is_current = True else: is_current = False is_revision = web.get_form_value("checkin_as") if is_revision == "Version": is_revision = False else: is_revision = True snapshot_type = web.get_form_value("snapshot_type") if not instances and not set_instances: raise CommandExitException("No instances selected") # go through the asset instances and set instances and check them in for instance in instances: if instance: my._checkin(instance, my.context, is_current=is_current, \ is_revision=is_revision, snapshot_type=snapshot_type, \ texture_search_type=my.texture_search_type) for set_instance in set_instances: if set_instance: my._checkin(set_instance, my.context, asset_type='set', \ is_current=is_current, is_revision=is_revision, \ snapshot_type=snapshot_type) web.set_form_value('publish_search_type', 'prod/asset') #TabWdg.set_redirect('Log') my.info['context'] = my.context my.info['revision'] = str(is_revision) my.info['checkin_status'] = checkin_status output = {'context': my.context} output['search_key'] = SearchKey.build_by_sobject(my.sobject) output['checkin_status'] = checkin_status Trigger.call(my, 'app_checkin', output)
def execute(my): #my.snapshot_dict = {} # get all of the selected instances web = WebContainer.get_web() instances = web.get_form_values("asset_instances") set_instances = web.get_form_values("set_instances") is_current = web.get_form_value("currency") checkin_status = web.get_form_value("checkin_status") if is_current in ['True', 'on']: is_current = True else: is_current = False is_revision = web.get_form_value("checkin_as") if is_revision == "Version": is_revision = False else: is_revision = True snapshot_type = web.get_form_value("snapshot_type") if not instances and not set_instances: raise CommandExitException("No instances selected") # go through the asset instances and set instances and check them in for instance in instances: if instance: my._checkin(instance, my.context, is_current=is_current, \ is_revision=is_revision, snapshot_type=snapshot_type, \ texture_search_type=my.texture_search_type) for set_instance in set_instances: if set_instance: my._checkin(set_instance, my.context, asset_type='set', \ is_current=is_current, is_revision=is_revision, \ snapshot_type=snapshot_type) web.set_form_value('publish_search_type','prod/asset') #TabWdg.set_redirect('Log') my.info['context'] = my.context my.info['revision'] = str(is_revision) my.info['checkin_status'] = checkin_status output = {'context': my.context} output['search_key'] = SearchKey.build_by_sobject(my.sobject) output['checkin_status'] = checkin_status Trigger.call(my, 'app_checkin', output)
def get_input_value(my, sobject, snapshot): from pyasm.search import SearchKey value = SearchKey.build_by_sobject(snapshot) return value
def get_display(my): sobject = my.get_current_sobject() search_key = SearchKey.build_by_sobject(sobject) display = DivWdg() display.add_style("position: relative") display.add_class("spt_button_top") BASE = '/context/themes2/default/' over_div = DivWdg() display.add(over_div) over_div.add_class("spt_button_over") over_img = "<img src='%s/MainButton_over.png'/>" % BASE over_div.add(over_img) over_div.add_style("position: absolute") over_div.add_style("top: -9px") over_div.add_style("left: 0px") over_div.add_style("display: none") click_div = DivWdg() display.add(click_div) click_div.add_class("spt_button_click") click_img = "<img src='%s/MainButton_click.png'/>" % BASE click_div.add(click_img) click_div.add_style("position: absolute") click_div.add_style("top: -9px") click_div.add_style("left: 0px") click_div.add_style("display: none") if my.get_option('align') == 'left': display.add_style("text-align: left") else: display.add_style("text-align: center") icon = my.get_option("icon") if not icon: icon = "create" icon_tip = my.get_option("icon_tip") if not icon_tip: icon_tip = my.get_option("hint") if not icon_tip: icon_tip = "" enable = my.get_option("enable") if enable: result = ExpressionParser().eval(enable, sobject) if not result: return " " if not my.script_obj and not my.script: icon_wdg = IconButtonWdg("No Script Found", IconWdg.ERROR) else: try: icon_link = eval("IconWdg.%s" % icon.upper()) except Exception, e: print "WARNING: ", str(e) icon_link = IconWdg.ERROR icon_wdg = IconButtonWdg(icon_tip, icon_link) if not sobject.is_insert(): icon_wdg.add_class("hand") #icon_wdg.add_behavior(my.behavior) icon_wdg.add_class("spt_button_%s" % my.name)
def handle_td(my, td): sobject = my.get_current_sobject() search_key = SearchKey.build_by_sobject(sobject) td.set_attr('search_key', search_key)
def get_display(self): sobject = self.get_current_sobject() search_key = SearchKey.build_by_sobject(sobject) display = DivWdg() display.add_style("position: relative") display.add_class("spt_button_top") display.add_style("width: 26px") display.add_style("margin-left: auto") display.add_style("margin-right: auto") BASE = '/context/themes2/default/' over_div = DivWdg() display.add(over_div) over_div.add_class("spt_button_over") over_img = "<img src='%s/MainButton_over.png'/>" % BASE over_div.add(over_img) over_div.add_style("position: absolute") over_div.add_style("top: -9px") over_div.add_style("left: 0px") over_div.add_style("display: none") click_div = DivWdg() display.add(click_div) click_div.add_class("spt_button_click") click_img = "<img src='%s/MainButton_click.png'/>" % BASE click_div.add(click_img) click_div.add_style("position: absolute") click_div.add_style("top: -9px") click_div.add_style("left: 0px") click_div.add_style("display: none") if self.get_option('align') =='left': display.add_style("text-align: left") else: display.add_style("text-align: center") icon = self.get_option("icon") if not icon: icon = "create" icon_tip = self.get_option("icon_tip") if not icon_tip: icon_tip = self.get_option("hint") if not icon_tip: icon_tip = "" enable = self.get_option("enable") if enable: result = ExpressionParser().eval(enable, sobject) if not result: return " " if not self.script_obj and not self.script: icon_wdg = IconButtonWdg("No Script Found", IconWdg.ERROR) else: icon_link = icon.upper() icon_wdg = IconButtonWdg(icon_tip, icon=icon_link) if not sobject.is_insert(): icon_wdg.add_class("hand") #icon_wdg.add_behavior(self.behavior) icon_wdg.add_class("spt_button_%s" % self.name) icon_div = DivWdg() icon_div.add(icon_wdg) icon_div.add_style("position: absolute") icon_div.add_style("top: 2px") icon_div.add_style("left: 5px") display.add(icon_div) hit_wdg = icon_div hit_wdg.add_class("spt_button_hit") if sobject.is_insert(): hit_wdg.add_style("opacity: 0.4") else: hit_wdg.add_class("spt_button_hit_wdg") display.add_style("height: 18px") display.add_style("min-width: 21px") #display.add_style("overflow: hidden") display.add_style("margin-top: 0px") expression = self.kwargs.get('expression') if expression: value = Search.eval(expression, sobject, single=True) if value: badge = DivWdg() badge.add_style("position: absolute") badge.add_style("right: -30px") badge.add_style("top: -2px") badge.add_style("margin: 4px 3px 3px 6px") badge.add_style("opacity: 0.5") badge.add_style("font-size: 0.7em") badge.add_class("badge") badge.add(value) display.add(badge) display.add_style("position: relative") #return top return display
def handle_td(self, td): sobject = self.get_current_sobject() search_key = SearchKey.build_by_sobject(sobject) td.set_attr('search_key', search_key)
def get_display(my): sobject = my.get_current_sobject() search_key = SearchKey.build_by_sobject(sobject) display = DivWdg() display.add_style("position: relative") display.add_class("spt_button_top") BASE = "/context/themes2/default/" over_div = DivWdg() display.add(over_div) over_div.add_class("spt_button_over") over_img = "<img src='%s/MainButton_over.png'/>" % BASE over_div.add(over_img) over_div.add_style("position: absolute") over_div.add_style("top: -9px") over_div.add_style("left: 0px") over_div.add_style("display: none") click_div = DivWdg() display.add(click_div) click_div.add_class("spt_button_click") click_img = "<img src='%s/MainButton_click.png'/>" % BASE click_div.add(click_img) click_div.add_style("position: absolute") click_div.add_style("top: -9px") click_div.add_style("left: 0px") click_div.add_style("display: none") if my.get_option("align") == "left": display.add_style("text-align: left") else: display.add_style("text-align: center") icon = my.get_option("icon") if not icon: icon = "create" icon_tip = my.get_option("icon_tip") if not icon_tip: icon_tip = my.get_option("hint") if not icon_tip: icon_tip = "" enable = my.get_option("enable") if enable: result = ExpressionParser().eval(enable, sobject) if not result: return " " if not my.script_obj and not my.script: icon_wdg = IconButtonWdg("No Script Found", IconWdg.ERROR) else: try: icon_link = eval("IconWdg.%s" % icon.upper()) except Exception, e: print "WARNING: ", str(e) icon_link = IconWdg.ERROR icon_wdg = IconButtonWdg(icon_tip, icon_link) if not sobject.is_insert(): icon_wdg.add_class("hand") # icon_wdg.add_behavior(my.behavior) icon_wdg.add_class("spt_button_%s" % my.name)
def handle_td(my, td): sobject = my.get_current_sobject() search_key = SearchKey.build_by_sobject(sobject) td.set_attr("search_key", search_key)
def execute(my): #my.snapshot_dict = {} web = WebContainer.get_web() shot_code = web.get_form_value("shot_code") search = Search(my.search_type) search.add_filter('code', shot_code) shot = search.get_sobject() #shot = Shot.get_by_code(shot_code) is_current = web.get_form_value("currency") if is_current in ['True', 'on']: is_current = True else: is_current = False is_revision = web.get_form_value("checkin_as") if is_revision == "Version": is_revision = False else: is_revision = True checkin_status = web.get_form_value("checkin_status") checkin = ShotCheckin(shot) checkin.set_option("unknown_ref", web.get_form_value("unknown_ref")) checkin.set_process(my.process) description = web.get_form_value("%s_description" % shot.get_code()) checkin.set_context(my.context) checkin.set_description(description) checkin.set_current(is_current) checkin.set_revision(is_revision) use_handoff_dir = web.get_form_value("use_handoff_dir") if use_handoff_dir in ['true', 'on']: checkin.set_use_handoff(True) checkin.execute() snapshot = checkin.snapshot version = snapshot.get_version() my.sobjects = [shot] #my.snapshot_dict['%s' %shot.get_code()] = snapshot my.add_description("%s checkin '%s': v%0.3d, %s" % (my.context, shot.get_code(), version, description)) web.set_form_value('publish_search_type', 'prod/shot') TabWdg.set_redirect('Log') my.info['context'] = my.context my.info['revision'] = str(is_revision) my.info['checkin_status'] = checkin_status output = {'context': my.context} output['search_key'] = SearchKey.build_by_sobject(shot) output['checkin_status'] = checkin_status Trigger.call(my, 'app_checkin', output)
def get_display(self): sobject = self.get_current_sobject() search_key = SearchKey.build_by_sobject(sobject) display = DivWdg() display.add_style("position: relative") display.add_class("spt_button_top") display.add_style("width: 26px") display.add_style("margin-left: auto") display.add_style("margin-right: auto") BASE = '/context/themes2/default/' over_div = DivWdg() display.add(over_div) over_div.add_class("spt_button_over") over_img = "<img src='%s/MainButton_over.png'/>" % BASE over_div.add(over_img) over_div.add_style("position: absolute") over_div.add_style("top: -9px") over_div.add_style("left: 0px") over_div.add_style("display: none") click_div = DivWdg() display.add(click_div) click_div.add_class("spt_button_click") click_img = "<img src='%s/MainButton_click.png'/>" % BASE click_div.add(click_img) click_div.add_style("position: absolute") click_div.add_style("top: -9px") click_div.add_style("left: 0px") click_div.add_style("display: none") if self.get_option('align') == 'left': display.add_style("text-align: left") else: display.add_style("text-align: center") icon = self.get_option("icon") if not icon: icon = "create" icon_tip = self.get_option("icon_tip") if not icon_tip: icon_tip = self.get_option("hint") if not icon_tip: icon_tip = "" enable = self.get_option("enable") if enable: result = ExpressionParser().eval(enable, sobject) if not result: return " " if not self.script_obj and not self.script: icon_wdg = IconButtonWdg("No Script Found", IconWdg.ERROR) else: icon_link = icon.upper() icon_wdg = IconButtonWdg(icon_tip, icon=icon_link) if not sobject.is_insert(): icon_wdg.add_class("hand") #icon_wdg.add_behavior(self.behavior) icon_wdg.add_class("spt_button_%s" % self.name) icon_div = DivWdg() icon_div.add(icon_wdg) icon_div.add_style("position: absolute") icon_div.add_style("top: 2px") icon_div.add_style("left: 5px") display.add(icon_div) hit_wdg = icon_div hit_wdg.add_class("spt_button_hit") if sobject.is_insert(): hit_wdg.add_style("opacity: 0.4") else: hit_wdg.add_class("spt_button_hit_wdg") display.add_style("height: 18px") display.add_style("min-width: 21px") #display.add_style("overflow: hidden") display.add_style("margin-top: 0px") expression = self.kwargs.get('expression') if expression: value = Search.eval(expression, sobject, single=True) if value: badge = DivWdg() badge.add_style("position: absolute") badge.add_style("right: -30px") badge.add_style("top: -2px") badge.add_style("margin: 4px 3px 3px 6px") badge.add_style("opacity: 0.5") badge.add_style("font-size: 0.7em") badge.add_class("badge") badge.add(value) display.add(badge) display.add_style("position: relative") #return top return display