def get_display(my): my.work_order_code = str(my.kwargs.get('work_order_code')) my.client_code = str(my.kwargs.get('client_code')) my.parent_pipe = str(my.kwargs.get('parent_pipe')) my.is_master = str(my.kwargs.get('is_master')) my.order_sk = str(my.kwargs.get('order_sk')) wo_search = Search("twog/work_order") wo_search.add_filter('code', my.work_order_code) work_order = wo_search.get_sobject() wo_sk = work_order.get_search_key() proj_code = work_order.get_value('proj_code') wo_templ_code = work_order.get_value('work_order_templ_code') ws_search = Search("twog/work_order_sources") ws_search.add_filter("work_order_code", my.work_order_code) work_order_sources = ws_search.get_sobjects() user_group_names = Environment.get_group_names() groups_str = '' for mg in user_group_names: if groups_str == '': groups_str = mg else: groups_str = '%s,%s' % (groups_str, mg) user_is_scheduler = False if 'scheduling' in groups_str: user_is_scheduler = True ignore_processes = work_order.get_value('process') other_search = Search("twog/work_order") other_search.add_filter('proj_code', work_order.get_value('proj_code')) other_search.add_filter('process', ignore_processes, op="!=") all_other_wos = other_search.get_sobjects() all_other_interms = {} for other in all_other_wos: or_search = Search("twog/work_order_intermediate") or_search.add_filter('work_order_code',other.get_value('code')) other_reals = or_search.get_sobjects() for otr in other_reals: intermediate_file_code = otr.get_value('intermediate_file_code') inter_search = Search("twog/intermediate_file") inter_search.add_filter('code', intermediate_file_code) intermediate_file = inter_search.get_sobject() inter_title = intermediate_file.get_value('inter_file') if other.get_value('code') not in all_other_interms.keys(): all_other_interms[other.get_value('code')] = [] all_other_interms[other.get_value('code')].append([inter_title, intermediate_file.get_value('code')]) order_code = my.order_sk.split('code=')[1] overhead = Table() overhead.add_attr('class','sp_overhead_%s' % my.work_order_code) overhead.add_attr('client_code', my.client_code) overhead.add_attr('is_master', my.is_master) overhead.add_attr('parent_pipe', my.parent_pipe) table = Table() src_tbl = Table() for sc in work_order_sources: src_search = Search("twog/source") src_search.add_filter('code', sc.get_value('source_code')) src = src_search.get_sobjects() if len(src) > 0: src = src[0] src_tbl.add_row() if user_is_scheduler: killer = src_tbl.add_cell(my.x_butt) killer.add_style('cursor: pointer;') killer.add_behavior(get_source_killer_behavior(sc.get_value('code'), my.work_order_code, my.parent_pipe, my.client_code, my.is_master, '%s: %s' % (src.get_value('title'), src.get_value('episode')), my.order_sk)) alabel = src_tbl.add_cell('Source: ') alabel.add_attr('align', 'center') popper = src_tbl.add_cell('<u>%s: %s</u>' % (src.get_value('title'), src.get_value('episode'))) popper.add_attr('nowrap', 'nowrap') popper.add_style('cursor: pointer;') popper.add_behavior(get_launch_wo_source_behavior(my.work_order_code, wo_sk, src.get_value('code'), my.order_sk)) table.add_row() table.add_cell(src_tbl) pass_search = Search("twog/work_order_passin") pass_search.add_filter('work_order_code', my.work_order_code) passins = pass_search.get_sobjects() table.add_row() table.add_cell(' ') table.add_cell(' ') add_deliv_passin_butt = table.add_cell('<input type="button" value="Add Permanent Element Pass-in"/>') add_deliv_passin_butt.add_attr('colspan', '2') add_deliv_passin_butt.add_behavior(get_add_deliverable_passin_behavior(my.work_order_code, wo_templ_code, proj_code, my.order_sk)) # Now do passed in permanent sources, which can be templated dsrc_tbl = Table() for p in passins: if p.get_value('deliverable_source_code') not in [None,'']: ds_search = Search("twog/source") ds_search.add_filter('code', p.get_value('deliverable_source_code')) d_source = ds_search.get_sobjects() if len(d_source) > 0: d_source = d_source[0] dsrc_tbl.add_row() if user_is_scheduler: killer = dsrc_tbl.add_cell(my.x_butt) killer.add_style('cursor: pointer;') killer.add_behavior(get_deliverable_passin_killer_behavior(p.get_value('code'), my.work_order_code, wo_templ_code, my.parent_pipe, my.client_code, my.is_master, '%s: %s' % (d_source.get_value('title'), d_source.get_value('episode')), my.order_sk)) alabel = dsrc_tbl.add_cell('Source: ') alabel.add_attr('align', 'center') popper = dsrc_tbl.add_cell('<u>%s: %s</u>' % (d_source.get_value('title'), d_source.get_value('episode'))) popper.add_attr('nowrap', 'nowrap') popper.add_style('cursor: pointer;') popper.add_behavior(get_launch_wo_source_behavior(my.work_order_code, wo_sk, d_source.get_value('code'), my.order_sk)) if my.is_master in [True,'true','True',1,'t']: if p.get_value('passin_templ_code') in [None,'']: template_button = ButtonSmallNewWdg(title="Template This Passed-in Source", icon=CustomIconWdg.icons.get('TEMPLATE')) if my.is_master == 'true': template_button.add_behavior(get_template_deliverable_passin_behavior(my.work_order_code, wo_templ_code, p.get_value('code'))) else: template_button = '<img border="0" style="vertical-align: middle" title="Templated" name="Templated" src="/context/icons/silk/tick.png">' tb = dsrc_tbl.add_cell(template_button) tb.add_attr('class', 'sp_templ_%s' % p.get_value('code')) if my.is_master in [True, 'true', 'True', 1, 't']: table.add_row() table.add_cell(dsrc_tbl) table.add_row() divider = table.add_cell('<hr/>') divider.add_attr('colspan', '4') table.add_row() table.add_cell(' ') table.add_cell(' ') adinter_fm_butt = table.add_cell('<input type="button" value="Add Intermediate Pass-in"/>') adinter_fm_butt.add_attr('colspan', '2') adinter_fm_butt.add_behavior(get_add_intermediate_passin_behavior(my.work_order_code, wo_templ_code, proj_code, my.order_sk)) inter_tbl = Table() for p in passins: if p.get_value('intermediate_file_code') not in [None,'']: in_search = Search("twog/intermediate_file") in_search.add_filter('code', p.get_value('intermediate_file_code')) inter_f = in_search.get_sobjects() if len(inter_f) > 0: inter_f = inter_f[0] inter_tbl.add_row() if user_is_scheduler: killer = inter_tbl.add_cell(my.x_butt) killer.add_style('cursor: pointer;') killer.add_behavior(get_intermediate_passin_killer_behavior(p.get_value('code'), my.work_order_code, wo_templ_code, my.parent_pipe, my.client_code, my.is_master, inter_f.get_value('title'), my.order_sk)) alabel = inter_tbl.add_cell('Intermediate: ') alabel.add_attr('align','center') popper = inter_tbl.add_cell('<u>%s</u>' % (inter_f.get_value('title'))) popper.add_attr('nowrap','nowrap') popper.add_style('cursor: pointer;') popper.add_behavior(get_open_intermediate_behavior(inter_f.get_value('code'),my.work_order_code, my.client_code, my.order_sk)) if my.is_master in [True,'true','True',1,'t']: if p.get_value('passin_templ_code') in [None,'']: template_button = ButtonSmallNewWdg(title="Template This Passed-in Intermediate File", icon=CustomIconWdg.icons.get('TEMPLATE')) if my.is_master == 'true': template_button.add_behavior(get_template_intermediate_passin_behavior(my.work_order_code, wo_templ_code, p.get_value('code'))) else: template_button = '<img border="0" style="vertical-align: middle" title="Templated" name="Templated" src="/context/icons/silk/tick.png">' tb = inter_tbl.add_cell(template_button) tb.add_attr('class', 'sp_templ_%s' % p.get_value('code')) table.add_row() table.add_cell(inter_tbl) overhead.add_row() oh_cell = overhead.add_cell(table) oh_cell.add_attr('class', 'sp_list_cell') return overhead
def get_display(my): my.work_order_sk = str(my.kwargs.get('work_order_sk')) my.work_order_code = str(my.kwargs.get('work_order_code')) my.client_code = str(my.kwargs.get('client_code')) my.order_sk = str(my.kwargs.get('order_sk')) order_code = my.order_sk.split('code=')[1] overhead = Table() overhead.add_attr('class', 'out_overhead_%s' % my.work_order_code) overhead.add_attr('client_code', my.client_code) wo_search = Search("twog/work_order") wo_search.add_filter('code', my.work_order_code) work_order = wo_search.get_sobject() delivs_search = Search("twog/work_order_deliverables") delivs_search.add_filter('work_order_code', my.work_order_code) delivs = delivs_search.get_sobjects() inter_search = Search("twog/work_order_intermediate") inter_search.add_filter('work_order_code', my.work_order_code) inters = inter_search.get_sobjects() user_group_names = Environment.get_group_names() groups_str = '' for mg in user_group_names: if groups_str == '': groups_str = mg else: groups_str = '%s,%s' % (groups_str, mg) user_is_scheduler = False if 'scheduling' in groups_str: user_is_scheduler = True if 'is_master' in my.kwargs.keys(): my.is_master_str = my.kwargs.get('is_master') if my.is_master_str == 'true': my.is_master = True else: order_search = Search("twog/order") order_search.add_filter('code',order_code) order = order_search.get_sobject() order_classification = order.get_value('classification') if order_classification in ['master','Master']: my.is_master = True my.is_master_str = 'true' table = Table() table.add_row() table.add_cell('<font size="4"><b><u>Intermediates</u></b></font>') add_inter = table.add_cell('<input type="button" value="Add Intermediate File"/>') add_inter.add_attr('nowrap','nowrap') add_inter.add_style('cursor: pointer;') add_inter.add_behavior(get_add_inter_behavior(my.work_order_code, my.client_code, my.is_master_str, my.order_sk)) inters_tbl = Table() for inter1 in inters: i_search = Search("twog/intermediate_file") i_search.add_filter('code',inter1.get_value('intermediate_file_code')) inter = i_search.get_sobject() inters_tbl.add_row() if user_is_scheduler: killer = inters_tbl.add_cell(my.x_butt) killer.add_style('cursor: pointer;') killer.add_behavior(get_intermediate_killer_behavior(inter1.get_value('code'), inter.get_value('title'), my.work_order_code, my.is_master_str, my.order_sk)) alabel = inters_tbl.add_cell('Intermediate: ') alabel.add_attr('align','center') popper = inters_tbl.add_cell('<u>%s</u>' % inter.get_value('title')) popper.add_attr('nowrap','nowrap') popper.add_style('cursor: pointer;') popper.add_behavior(get_open_intermediate_behavior(inter.get_value('code'), my.work_order_code, my.client_code, my.order_sk)) if str(inter1.get_value('satisfied')) == 'True': check_val = 'true' else: check_val = 'false' checkbox = CustomCheckboxWdg(name='satisfied_%s' % inter.get_value('code'), value_field=inter.get_value('code'), checked=check_val, dom_class='inter_selector', code=inter.get_value('code'), additional_js=get_change_inter_satisfied_behavior(inter1.get_value('code'), my.work_order_code, my.client_code, str(inter1.get_value('satisfied')), my.order_sk)) ck = inters_tbl.add_cell(checkbox) ck.add_attr('align','center') inters_tbl.add_cell(' ') if my.is_master: if inter.get_value('intermediate_file_templ_code') in [None,'']: template_button = ButtonSmallNewWdg(title="Template This Intermediate File", icon=CustomIconWdg.icons.get('TEMPLATE')) template_button.add_behavior(get_template_intermediate_behavior(inter.get_value('code'), my.work_order_code, my.order_sk)) else: template_button = '<img border="0" style="vertical-align: middle" title="Templated" name="Templated" src="/context/icons/silk/tick.png">' tb = inters_tbl.add_cell(template_button) tb.add_class('inter_templ_%s' % inter.get_value('code')) table.add_row() intr = table.add_cell(inters_tbl) intr.add_attr('colspan','2') table.add_row() table.add_cell('<hr/>') table.add_row() table.add_cell('<font size="4"><b><u>Permanents</u></b></font>') add_delv = table.add_cell('<input type="button" value="Add Permanent Element"/>') add_delv.add_style('cursor: pointer;') add_delv.add_behavior(get_add_deliverable_behavior(my.work_order_code, my.client_code, my.order_sk)) delv_tbl = Table() client_search = Search("twog/client") client_search.add_order_by('name desc') clients = client_search.get_sobjects() client_sel = '<select class="deliver_to_DELIV_CODE"><option value="">--Select--</option>' for client in clients: client_sel = '%s<option value="%s">%s</option>' % (client_sel, client.get_value('name'), client.get_value('name')) client_sel = '%s</select>' % client_sel for deliv1 in delivs: d_search = Search("twog/source") d_search.add_filter('code',deliv1.get_value('deliverable_source_code')) deliv = d_search.get_sobject() deliv_name = '%s, Episode: %s, Type: %s' % (deliv.get_value('title'), deliv.get_value('episode'), deliv.get_value('source_type')) delv_tbl.add_row() if user_is_scheduler: killer = delv_tbl.add_cell(my.x_butt) killer.add_style('cursor: pointer;') killer.add_behavior(get_deliverable_killer_behavior(deliv1.get_value('code'), my.work_order_code, deliv1.get_value('title_code'), deliv.get_value('code'), '%s (%s: %s)' % (deliv1.get_value('name'), deliv.get_value('title'), deliv.get_value('episode')), my.is_master_str, my.order_sk)) alabel = delv_tbl.add_cell('Permanent: ') alabel.add_attr('align','center') popper = delv_tbl.add_cell('<u>%s</u>' % deliv.get_value('title')) popper.add_attr('nowrap','nowrap') popper.add_style('cursor: pointer;') popper.add_behavior(get_open_deliverable_behavior(deliv.get_value('code'), my.work_order_code, deliv1.get_value('title_code'), my.client_code, my.order_sk)) if str(deliv1.get_value('satisfied')) == 'True': check_val = 'true' else: check_val = 'false' checkbox = CustomCheckboxWdg(name='satisfied_%s' % deliv.get_value('code'), value_field=deliv.get_value('code'), checked=check_val, dom_class='deliv_selector', code=deliv.get_value('code'), additional_js=get_change_deliverable_satisfied_behavior(deliv1.get_value('code'), my.work_order_code, deliv1.get_value('title_code'), str(deliv1.get_value('satisfied')), my.client_code, my.order_sk)) ck = delv_tbl.add_cell(checkbox) ck.add_attr('align','center') delv_tbl.add_cell(' ') if my.is_master: if deliv.get_value('templ_code') in [None,'']: template_button = ButtonSmallNewWdg(title="Template This Intermediate File", icon=CustomIconWdg.icons.get('TEMPLATE')) template_button.add_behavior(get_template_deliverable_behavior(deliv1.get_value('code'), work_order.get_value('work_order_templ_code'), deliv1.get_value('deliverable_source_code'), my.work_order_code)) else: template_button = '<img border="0" style="vertical-align: middle" title="Templated" name="Templated" src="/context/icons/silk/tick.png">' tb = delv_tbl.add_cell(template_button) tb.add_class('deliverable_templ_%s' % deliv1.get_value('code')) bot_delv = Table() bot_delv.add_row() bot_delv.add_cell('Name: ') bot_delv.add_cell('<input type="text" class="deliv_name_%s" value="%s"/>' % (deliv1.get_value('code'), deliv1.get_value('name'))) bot_delv.add_row() nw = bot_delv.add_cell('Deliver To: ') nw.add_attr('nowrap','nowrap') this_client_sel = client_sel.replace('DELIV_CODE',deliv1.get_value('code')) this_client_sel = this_client_sel.replace('value="%s"' % deliv1.get_value('deliver_to'), 'value="%s" selected="selected"' % deliv1.get_value('deliver_to')) bot_delv.add_cell(this_client_sel) bot_delv.add_row() bot_delv.add_cell('Attn: ') bot_delv.add_cell('<input type="text" class="deliv_attn_%s" value="%s"/>' % (deliv1.get_value('code'), deliv1.get_value('attn'))) bot_delv.add_row() save_cell = bot_delv.add_cell('<input type="button" value="Save Permanent Element Info"/>') save_cell.add_behavior(get_save_deliv_info_behavior(deliv1.get_value('code'), my.work_order_code, deliv1.get_value('title_code'), my.client_code, my.is_master_str, my.order_sk)) delv_tbl.add_row() bot = delv_tbl.add_cell(bot_delv) bot.add_attr('colspan','4') table.add_row() delv = table.add_cell(delv_tbl) delv.add_attr('colspan', '2') overhead.add_row() oh_cell = overhead.add_cell(table) oh_cell.add_attr('class','out_list_cell') return overhead