def get_namespace(self, resource, context): # Build namespace proxy = super(Mission_EditForm, self) namespace = proxy.get_namespace(resource, context) monolingual_widgets(namespace) reset_comment(namespace, is_edit=self.is_edit(context)) try: alert = resource.get_property('crm_m_alert') except ValueError: # New mission alert = context.timestamp namespace['icon_alert'] = get_alert_icon(alert, context) try: status = resource.get_property('crm_m_status') except ValueError: # New mission status = 'opportunity' namespace['icon_status'] = StatusIcon(status, css="nofloat") return namespace
def get_item_value(self, resource, context, item, column, cache={}): item_brain, item_resource = item if column == 'checkbox': parent = item_resource.parent if parent is None: return None if item_resource.name in parent.__fixed_handlers__: return None id = resource.get_canonical_path().get_pathto(item_brain.abspath) id = str(id) return id, False elif column == 'alert': return get_alert_icon(item_brain.crm_m_alert, context) elif column == 'crm_m_alert': alert = item_brain.crm_m_alert if alert: return alert.date() return None elif column == 'status': # Status return ShortStatusIcon(item_brain.crm_m_status) elif column in ('contacts', 'contacts_csv'): m_contacts = item_brain.crm_m_contact query = [PhraseQuery('name', name) for name in m_contacts] if len(query) == 1: query = query[0] else: query = OrQuery(*query) crm = get_crm(resource) query = AndQuery(get_crm_path_query(crm), query) query = AndQuery(PhraseQuery('format', 'contact'), query) results = context.root.search(query) if column == 'contacts': pattern = u'<a href="{link}">{lastname}<br/>{firstname}</a>' else: pattern = u"{lastname} {firstname}" names = [] for brain in results.get_documents(sort_by='crm_p_lastname'): link = context.get_link(brain) lastname = brain.crm_p_lastname.upper() firstname = brain.crm_p_firstname names.append(pattern.format(link=link, lastname=lastname, firstname=firstname)) if column == 'contacts': return MSG(u"<br/>".join(names), format='html') return u"\n".join(names) elif column == 'company': contact_id = item_brain.crm_m_contact[0] contact = resource.get_resource('contacts/' + contact_id) p_company = contact.get_property('crm_p_company') if not p_company: return u"" company = resource.get_resource('companies/' + p_company) title = company.get_title() href = context.get_link(company) return title, href elif column == 'assigned': user_id = item_brain.crm_m_assigned return context.root.get_user_title(user_id) return super(CRM_SearchMissions, self).get_item_value(resource, context, item, column, cache=cache)