def __init__(self, context, request, uids): super(ProjectBiospecView, self).__init__(context, request) self.uids = uids self.show_sort_column = False self.show_select_row = False self.show_select_column = False self.show_column_toggles = False self.context_actions = {} self.allow_edit = False self.pagesize = 999999 self.contentFilter['UID'] = self.uids self.columns = { 'Title': { 'title': _('Name'), 'index': 'sortable_title' }, 'Description': { 'title': _('Description'), 'index': 'description', 'toggle': True }, } self.review_states = [ { 'id': 'default', 'title': _('All'), 'contentFilter': {}, 'columns': ['Title', 'Description'] }, ]
def __init__(self, context, request, uids): self.uids = uids AnalysisServicesView.__init__(self, context, request) self.show_sort_column = False self.show_select_row = False self.show_select_column = False self.show_column_toggles = False self.context_actions = {} self.allow_edit = False self.pagesize = 999999 self.contentFilter['UID'] = self.uids self.show_categories = True self.expand_all_categories = True self.ajax_categories = False self.columns = { 'Title': { 'title': _('Service'), 'index': 'sortable_title' }, 'Price': { 'title': _('Price') }, } self.review_states = [{ 'id': 'default', 'title': _('All'), 'contentFilter': {}, 'columns': ['Title', 'Price'] }]
class SampleTypeSchemaExtender(object): adapts(ISampleType) implements(IOrderableSchemaExtender) fields = [ ExtReferenceField( 'Service', schemata='Analyses', multiValued=1, allowed_types=('AnalysisService', ), relationship='SampleTypeAnalysisService', widget=ProjectAnalysesWidget( label=_("Sample Analyses"), description= _("The analyses included in this sample type, grouped per category" ), )), ] def __init__(self, context): self.context = context def getFields(self): return self.fields def getOrder(self, schematas): return schematas
def __call__(self, *args, **kwargs): """ """ mtool = getToolByName(self.context, 'portal_membership') if mtool.checkPermission("Modify portal content", self.context): self.context_actions[_('Add')] = { 'url': 'createObject?type_name=KitTemplate', 'icon': '++resource++bika.lims.images/add.png' } self.review_states.append( {'id':'inactive', 'title': _('Dormant'), 'contentFilter': {'inactive_state': 'inactive'}, 'transitions': [{'id':'activate'}, ], 'columns': ['Title',]}) self.review_states.append( {'id': 'All', 'title': _('All'), 'contentFilter': {}, 'transitions':[{'id':'empty'}], 'columns': [ 'Title', ]}) stat = self.request.get("%s_review_state"%self.form_id, 'default') self.show_select_column = stat != 'all' return super(KitTemplatesView, self).__call__()
def __init__(self, context, request): super(KitTemplatesView, self).__init__(context, request) request.set('disable_plone.rightcolumn', 1) self.catalog = "bika_setup_catalog" self.contentFilter = { 'portal_type': 'KitTemplate', 'sort_on': 'created', 'sort_order': 'reverse', #'path': {"query": "/", "level": 0}, 'inactive_state': 'active', } self.context_actions = {} if self.context.portal_type == "KitTemplates": self.request.set('disable_border', 1) if self.view_url.find("kittemplates") == -1: self.view_url = self.view_url + "/kittemplates" self.show_sort_column = False self.show_select_row = False self.show_select_column = False self.form_id = "kittemplates" self.icon = self.portal_url + "/++resource++bika.lims.images/samplepartition_big.png" self.title = self.context.translate(_("Kit Templates")) self.description = "" mtool = getToolByName(self.context, 'portal_membership') member = mtool.getAuthenticatedMember() self.columns = { 'Title': { 'title': _('Title') }, 'Description': { 'title': _('Description'), 'index': 'description', 'toggle': True } } self.review_states = [ { 'id': 'default', 'title': _('Active'), #'contentFilter': {'sort_on':'created', 'sort_order': 'reverse'}, 'contentFilter': { 'inactive_state': 'active' }, 'transitions': [ { 'id': 'deactivate' }, ], 'columns': ['Title', 'Description'] }, ]
def folderitems(self): mtool = getToolByName(self.context, 'portal_membership') member = mtool.getAuthenticatedMember() roles = member.getRoles() self.allow_edit = 'LabManager' in roles or 'Manager' in roles items = BikaListingView.folderitems(self) for x in range(len(items)): if not items[x].has_key('obj'): continue obj = items[x]['obj'] cat = obj.getCategoryTitle() # Category (upper C) is for display column value items[x]['Category'] = cat if self.do_cats: # category is for bika_listing to groups entries items[x]['category'] = cat if cat not in self.categories: self.categories.append(cat) analyses = [a.UID() for a in self.field_value] items[x]['selected'] = items[x]['uid'] in analyses items[x]['class']['Title'] = 'service_title' calculation = obj.getCalculation() items[x]['Calculation'] = calculation and calculation.Title() locale = locales.getLocale('en') currency = self.context.bika_setup.getCurrency() symbol = locale.numbers.currencies[currency].symbol items[x]['Price'] = "%s %s" % (symbol, obj.getPrice()) items[x]['class']['Price'] = 'nowrap' after_icons = '' if obj.getAccredited(): after_icons += "<img\ src='%s/++resource++bika.lims.images/accredited.png'\ title='%s'>" % (self.context.absolute_url(), _("Accredited")) if obj.getReportDryMatter(): after_icons += "<img\ src='%s/++resource++bika.lims.images/dry.png'\ title='%s'>" % (self.context.absolute_url(), _("Can be reported as dry matter")) if obj.getAttachmentOption() == 'r': after_icons += "<img\ src='%s/++resource++bika.lims.images/attach_reqd.png'\ title='%s'>" % (self.context.absolute_url(), _("Attachment required")) if obj.getAttachmentOption() == 'n': after_icons += "<img\ src='%s/++resource++bika.lims.images/attach_no.png'\ title='%s'>" % (self.context.absolute_url(), _('Attachment not permitted')) if after_icons: items[x]['after']['Title'] = after_icons return items
def __init__(self, context, request): BikaListingView.__init__(self, context, request) self.context = context self.catalog = 'bika_catalog' request.set('disable_plone.rightcolumn', 1) self.contentFilter = { 'portal_type': 'CollectionDevice', } self.context_actions = { _('Add'): { 'url': 'createObject?type_name=CollectionDevice', 'icon': '++resource++bika.lims.images/add.png' } } self.title = self.context.translate(_("Collection Devices")) self.icon = self.portal_url + \ "/++resource++baobab.lims.images/patient_big.png" self.description = '' self.show_sort_column = False self.show_select_row = False self.show_select_column = False self.pagesize = 25 self.allow_edit = True if self.context.portal_type == 'CollectionDevices': self.request.set('disable_border', 1) self.columns = { 'Title': { 'title': _('Collection Device'), 'index': 'sortable_title' }, 'Description': { 'title': _('Description'), 'index': 'sortable_title' }, } self.review_states = [{ 'id': 'default', 'title': _('Active'), 'contentFilter': { 'inactive_state': 'active', 'sort_on': 'sortable_title', 'sort_order': 'ascending' }, 'transitions': [ { 'id': 'deactivate' }, ], 'columns': [ 'Title', 'Description', ] }]
def __init__(self, context, request): BikaListingView.__init__(self, context, request) self.context = context self.catalog = 'bika_catalog' request.set('disable_plone.rightcolumn', 1) self.contentFilter = { 'portal_type': 'SampleBatch', 'sort_on': 'sortable_title', 'sort_order': 'ascending' } self.context_actions = {} self.title = self.context.translate(_("Biospecimen Batches")) self.icon = self.portal_url + \ "/++resource++baobab.lims.images/biospectype_big.png" self.description = '' self.show_sort_column = False self.show_select_row = False self.show_select_column = False self.pagesize = 25 self.allow_edit = True self.columns = { 'Title': { 'title': _('Title'), 'index': 'sortable_title' }, 'BatchId': { 'title': _('Batch ID'), 'toggle': True, } } self.review_states = [ { 'id': 'default', 'title': _('Active'), 'contentFilter': {'inactive_state': 'active'}, 'transitions': [], 'columns': [ 'Title', 'BatchId' ] }, { 'id': 'all', 'title': _('All'), 'contentFilter': { 'sort_on': 'created', 'sort_order': 'ascending' }, 'columns': [ 'Title', 'BatchId' ] }, ]
def __init__(self, context, request, field_value=[], allow_edit=False): super(ProjectAnalysesView, self).__init__(context, request) self.catalog = "bika_setup_catalog" self.contentFilter = {'portal_type': 'AnalysisService', 'sort_on': 'sortable_title', 'inactive_state': 'active'} self.context_actions = {} self.base_url = self.context.absolute_url() self.view_url = self.base_url self.show_sort_column = False self.show_select_row = False self.show_select_all_checkbox = False self.show_column_toggles = False self.show_select_column = True self.allow_edit = allow_edit self.form_id = "analyses" self.profile = None self.categories = [] self.do_cats = self.context.bika_setup.getCategoriseAnalysisServices() if self.do_cats: self.pagesize = 999999 # hide batching controls self.show_categories = True self.expand_all_categories = False self.ajax_categories = True self.ajax_categories_url = self.context.absolute_url() + \ "/sampletype_analysesview" self.category_index = 'getCategoryTitle' self.columns = { 'Title': {'title': _('Service'), 'index': 'sortable_title', 'sortable': False,}, 'Price': {'title': _('Price'), 'sortable': False,}, } self.review_states = [ {'id': 'default', 'title': _('All'), 'contentFilter': {}, 'columns': ['Title', 'Price', ], 'transitions': [{'id': 'empty'}, ], # none }, ] if not context.bika_setup.getShowPrices(): self.review_states[0]['columns'].remove('Price') self.field_value = field_value self.selected = [x.UID() for x in field_value]
def __call__(self): mtool = getToolByName(self.context, 'portal_membership') addPortalMessage = self.context.plone_utils.addPortalMessage w_tool = getToolByName(self.context, 'portal_workflow') active_contacts = [ c for c in self.context.objectValues('Contact') if w_tool.getInfoFor(c, 'inactive_state', '') == 'active' ] if isActive(self.context): if self.context.portal_type == "Client": if not active_contacts: msg = _( "Client contact required before request may be submitted" ) addPortalMessage(msg) else: if mtool.checkPermission(AddProject, self.context): self.context_actions[_('Add')] = { 'url': 'createObject?type_name=Project', 'icon': '++resource++bika.lims.images/add.png' } if mtool.checkPermission(ManageProjects, self.context): self.review_states[0]['transitions'].append({'id': 'deactivate'}) self.review_states.append({ 'id': 'inactive', 'title': _('Dormant'), 'contentFilter': { 'inactive_state': 'inactive' }, 'transitions': [ { 'id': 'activate' }, ], 'columns': ['Title', 'getClient', 'getStudyType'] }) self.review_states.append({ 'id': 'all', 'title': _('All'), 'contentFilter': {}, 'transitions': [{ 'id': 'empty' }], 'columns': ['Title', 'getClient', 'getStudyType'] }) stat = self.request.get("%s_review_state" % self.form_id, 'default') self.show_select_column = stat != 'all' return BikaListingView.__call__(self)
def __call__(self): if getSecurityManager().checkPermission(AddPortalContent, self.context): self.show_select_row = True self.show_select_column = True self.context_actions = { _('Add Human Sample'): {'url': 'createObject?type_name=Sample', 'icon': '++resource++bika.lims.images/add.png'}, _('Add Virus Sample'): {'url': 'createObject?type_name=VirusSample', 'icon': '++resource++bika.lims.images/add.png'}, } return BikaListingView.__call__(self)
class InstrumentSchemaExtender(object): adapts(IInstrument) implements(IOrderableSchemaExtender) fields = [ ExtReferenceField( 'Manufacturer', vocabulary='getManufacturers', allowed_types=('Manufacturer', ), relationship='InstrumentManufacturer', required=0, widget=SelectionWidget(format='select', label=_("Manufacturer"), visible={ 'view': 'invisible', 'edit': 'invisible' }), ) ] def __init__(self, context): self.context = context def getFields(self): return self.fields def getOrder(self, schematas): return schematas
class ProjectView(BrowserView): """ """ template = ViewPageTemplateFile("templates/project_view.pt") title = _("Project Registration") def __call__(self): context = self.context request = self.request portal = self.portal self.absolute_url = context.absolute_url() setup = portal.bika_setup # __Disable the add new menu item__ # context.setLocallyAllowedTypes(()) # __Collect general data__ # self.id = context.getId() self.title = context.Title() self.client = "<a href='%s'>%s</a>" % ( context.aq_parent.absolute_url(), context.aq_parent.Title()) self.study_type = context.getStudyType() self.participants = context.getNumParticipants() self.age_interval = str(context.getAgeLow()) + ' - ' + str( context.getAgeHigh()) biospecimen_types = ProjectBiospecView(context, request, context.getSampleType()) self.bio_table = biospecimen_types.contents_table() uids = [o.UID() for o in context.getService()] view = ProjectAnalysisServicesView(context, request, uids) self.analyses_table = view.contents_table() return self.template()
def __init__(self, context, request, kit_uids): super(ShipmentKitsView, self).__init__(context, request) self.context = context self.request = request self.uids = kit_uids self.catalog = 'bika_catalog' path = path = '/'.join(context.aq_parent.getPhysicalPath()) self.contentFilter = { 'portal_type': 'Kit', 'UID': self.uids, 'sort_on': 'sortable_title', 'path': {'query': path, 'depth': 1, 'level': 0} } self.context_actions = {} self.title = '' self.description = '' self.icon = '' self.show_sort_column = False self.show_select_row = False self.show_select_column = False self.show_column_toggles = False self.context_actions = {} self.allow_edit = False self.pagesize = 999999 self.columns = { 'Title': {'title': _('Kit Name'), 'index': 'sortable_title'}, 'kitTemplate': {'title': _('Kit template'), 'toggle': True}, 'state_title': {'title': _('State'), 'index': 'review_state'}, } self.review_states = [ { 'id': 'default', 'title': _('All'), 'contentFilter': {'sort_on': 'created', 'sort_order': 'ascending'}, 'transitions': [], 'columns': [ 'Title', 'kitTemplate', 'state_title' ] } ]
def __init__(self, context, request): super(InvoiceCreate, self).__init__(context, request) self.context = context self.columns['service'] = {'title': _('Service')} # Add column 'service' to the lising table columns for state in self.review_states: state['columns'].insert(state['columns'].index('start'), 'service')
def _getBiospecimensDisplayList(self): bsc = getToolByName(self, 'bika_setup_catalog') items = [(i.UID, i.Title) \ for i in bsc(portal_type='SampleType', inactive_state='active')] items.sort(lambda x, y: cmp(x[1], y[1])) items.insert(0, ('', _("None"))) return DisplayList(list(items))
def __init__(self, context, request): super(BiospecimenMultimageView, self).__init__(context, request) self.context = context self.request = request self.show_workflow_action_buttons = False self.title = self.context.translate(_("Biospecimen Files")) self.description = "Different interesting documents, files and " \ "images to be attached to the biospecimen."
class SampleView(BrowserView): """The view of a single sample """ template = ViewPageTemplateFile("templates/sample_view.pt") title = _("Biospecimen View") def __call__(self): context = self.context self.absolute_url = context.absolute_url() # __Disable the add new menu item__ # context.setLocallyAllowedTypes(()) # __Collect general data__ # self.id = context.getId() self.title = context.Title() self.icon = self.portal_url + "/++resource++baobab.lims.images/" \ + "biospecimen_big.png" parent = context.getField('LinkedSample').get(context) self.parent_aliquot = parent and "<a href='%s'>%s</a>" % ( parent.absolute_url(), parent.Title()) or None self.project = "<a href='%s'>%s</a>" % ( context.aq_parent.absolute_url(), context.aq_parent.Title() ) kit = context.getField('Kit').get(context) self.kit = kit and "<a href='%s'>%s</a>" % ( kit.absolute_url(), kit.Title()) or None disease_ontology = context.getField('DiseaseOntology').get(context) self.disease_ontology = disease_ontology and "<a href='%s'>%s</a>" % ( disease_ontology.absolute_url(), disease_ontology.Title()) or None donor = context.getField('Donor').get(context) self.donor = donor and "<a href='%s'>%s</a>" % ( donor.absolute_url(), donor.getSampleDonorID()) or None location = context.getField('StorageLocation').get(context) self.location = location and "<a href='%s'>%s</a>" % ( location.absolute_url(), location.Title()) or None self.sampling_date = context.getSamplingDate() sharing = context.getField('AllowSharing').get(context) self.sharing = sharing and "Yes" or "No" self.subjectID = context.getField('SubjectID').get(context) self.barcode = context.getField('Barcode').get(context) self.volume = context.getField('Volume').get(context) + " " + context.getField('Unit').get(context) return self.template()
def __init__(self, context, request): BikaListingView.__init__(self, context, request) self.contentFilter = { 'portal_type': 'Project', 'sort_on': 'sortable_title' } self.context_actions = {} self.title = self.context.translate(_("Projects")) self.icon = self.portal_url + \ "/++resource++baobab.lims.images/project_big.png" self.description = "" self.show_sort_column = False self.show_select_row = False self.show_select_column = False self.pagesize = 50 if self.context.portal_type == 'Projects': self.request.set('disable_border', 1) self.columns = { 'Title': { 'title': _('Project'), 'index': 'sortable_title' }, 'getClient': { 'title': _('Client'), 'toggle': True }, 'getStudyType': { 'title': _('Study Type'), 'toggle': True }, } self.review_states = [ { 'id': 'default', 'title': _('Active'), 'contentFilter': { 'inactive_state': 'active' }, 'transitions': [], 'columns': ['Title', 'getClient', 'getStudyType'] }, ]
def __init__(self, context, request): super(AliquotsView, self).__init__(context, request) self.contentFilter = { 'portal_type': 'Sample', 'sort_on': 'sortKey', } self.context_actions = {} self.title = self.context.translate(_("Aliquots")) self.icon = self.portal_url + \ "/++resource++baobab.lims.images/aliquot_big.png"
class SampleView(BrowserView): """The view of a single sample """ template = ViewPageTemplateFile("templates/sample_view.pt") title = _("Biospecimen View") def __call__(self): context = self.context self.absolute_url = context.absolute_url() # __Disable the add new menu item__ # context.setLocallyAllowedTypes(()) # __Collect general data__ # self.id = context.getId() self.title = context.Title() self.icon = self.portal_url + "/++resource++baobab.lims.images/" \ + "biospecimen_big.png" parent = context.getField('LinkedSample').get(context) self.parent_aliquot = parent and "<a href='%s'>%s</a>" % ( parent.absolute_url(), parent.Title()) or None self.project = "<a href='%s'>%s</a>" % ( context.aq_parent.absolute_url(), context.aq_parent.Title()) kit = context.getField('Kit').get(context) self.kit = kit and "<a href='%s'>%s</a>" % (kit.absolute_url(), kit.Title()) or None sample_batch = context.getField('Batch').get(context) self.sample_batch = sample_batch and "<a href='%s'>%s</a>" % ( sample_batch.absolute_url(), sample_batch.Title()) or None self.sample_type = context.getSampleType() and context.getSampleType( ).Title() or '' location = context.getField('StorageLocation').get(context) self.location = location and "<a href='%s'>%s</a>" % ( location.absolute_url(), location.Title()) or None self.sampling_date = context.getSamplingDate() # self.frozen_time = context.getFrozenTime() self.frozen_time = context.getField('FrozenTime').get(context) self.subjectID = context.getField('SubjectID').get(context) self.barcode = context.getField('Barcode').get(context) self.volume = context.getField('Volume').get( context) + " " + context.getField('Unit').get(context) self.babyNumber = context.getField('BabyNumber').get(context) if self.babyNumber == '0': self.babyNumber = None return self.template()
def __init__(self, context, request, field_value=[], allow_edit=False): super(ProductSuppliersView, self).__init__(context, request) self.catalog = "bika_setup_catalog" self.contentFilter = {'portal_type': 'Supplier', 'sort_on': 'sortable_title', 'inactive_state': 'active'} self.context_actions = {} self.base_url = context.absolute_url() self.view_url = self.base_url self.show_sort_column = False self.show_select_row = False self.show_select_all_checkbox = False self.show_column_toggles = False self.show_select_column = True self.allow_edit = allow_edit self.form_id = "suppliers" self.profile = None self.do_cats = False self.columns = { 'Name': {'title': _('Name'), 'index': 'sortable_title', 'sortable': False,}, 'Website': {'title': _('Website'), 'sortable': False,}, } self.review_states = [ {'id': 'default', 'title': _('All'), 'contentFilter': {}, 'columns': ['Name', 'Website', ], 'transitions': [{'id': 'empty'}, ], }, ] self.field_value = field_value self.selected = [x.UID() for x in field_value]
def __call__(self): mtool = getToolByName(self.context, 'portal_membership') if mtool.checkPermission(ManageKits, self.context) and \ self.context.portal_type == 'Project': self.context_actions[_('Add')] = { 'url': 'createObject?type_name=Shipment', 'icon': '++resource++bika.lims.images/add.png' } return super(ShipmentsView, self).__call__()
def __init__(self, context, request): # StoredItemsView.__init__(self, context, request) ProductsView.__init__(self, context, request) self.context = context self.request = request self.context_actions = {} self.show_sort_column = False self.show_select_row = False self.show_select_column = True self.pagesize = 25 self.columns = { 'Title': { 'title': _('Title'), 'index': 'sortable_title' }, 'Quantity': { 'title': _('Quantity') }, } self.review_states = [ { 'id': 'default', 'title': _('Active'), 'contentFilter': { 'inactive_state': 'active' }, 'transitions': [], 'columns': ['Title', 'Quantity'] }, { 'id': 'all', 'title': _('All'), 'contentFilter': { 'inactive_state': 'active' }, 'transitions': [], 'columns': ['Title', 'Quantity'] }, ]
def __init__(self, context, request): super(StoragePositionsView, self).__init__(context, request) self.context = context self.request = request self.catalog = 'bika_setup_catalog' path = '/'.join(context.getPhysicalPath()) self.contentFilter = {'portal_type': 'StoragePosition', 'sort_on': 'sortable_title', 'path': {'query': path, 'depth': 1, 'level': 0} } self.context_actions = {} self.title = '' self.description = '' self.icon = '' self.show_sort_column = False self.show_select_row = False self.show_select_column = True self.pagesize = 25 self.columns = { 'id': {'title': _('ID'), 'index': 'id'}, 'StorageTypes': {'title': _('Storage Types'), 'toggle': True}, 'StoredItem': {'title': _('Stored Item'), 'toggle': True}, 'review_state': {'title': _('State'), 'toggle': True}, } self.review_states = [ {'id': 'default', 'title': _('Active'), 'contentFilter': {'inactive_state': 'active'}, 'transitions': [{'id': 'deactivate'}, {'id': 'reserve'},], 'columns': ['id', 'StorageTypes', 'StoredItem', 'review_state']}, {'id': 'available', 'title': _('Reserved'), 'contentFilter': { 'review_state': 'reserved' }, 'transitions': [{'id': 'liberate'}, ], 'columns': ['id', 'StorageTypes', 'StoredItem', 'review_state']}, {'id': 'all', 'title': _('All'), 'contentFilter': {}, 'columns': ['id', 'StorageTypes', 'StoredItem', 'review_state']}, ]
def __init__(self, context, request): super(MultimagesView, self).__init__(context, request) self.catalog = "bika_setup_catalog" self.contentFilter = { 'portal_type': 'Multimage', } self.context_actions = { _('Add'): { 'url': 'createObject?type_name=Multimage', 'icon': '++resource++bika.lims.images/add.png' } } self.show_table_only = False self.show_sort_column = False self.show_select_row = False self.show_select_column = True self.pagesize = 25 self.form_id = "multimage" self.icon = self.portal_url + \ "/++resource++bika.lims.images" \ "/instrumentcertification_big.png" self.title = self.context.translate(_("Images")) self.description = "" self.columns = { "DocumentID": { 'title': _("Document ID"), 'index': 'sortable_title' }, "SmallDesc": { 'title': _("Description"), 'index': 'sortable_title' }, "DatetimeCreated": { 'title': _("Date Creation"), 'toggle': False }, 'FileDownload': { 'title': _('File') } } self.review_states = [ { 'id': 'default', 'title': _("All"), 'contentFilter': {}, 'columns': ['DocumentID', 'SmallDesc', 'FileDownload', 'DatetimeCreated'] }, ]
class StorageGraphView(BrowserView): """Show graphic layout of available and occupied positions. """ template = ViewPageTemplateFile("templates/managedstorage_graph.pt") title = _("Managed storage positions") def __init__(self, context, request): BrowserView.__init__(self, context, request) self.context = context self.request = request self.request.set('disable_plone.rightcolumn', 1) def __call__(self): return self.template()
def __init__(self, context, request): super(StoredItemsView, self).__init__(context, request) self.context = context self.request = request self.catalog = 'bika_setup_catalog' path = '/'.join(context.getPhysicalPath()) self.contentFilter = {} self.context_actions = {} self.title = '' self.description = '' self.icon = '' self.show_sort_column = False self.show_select_row = False self.show_select_column = True self.pagesize = 25 self.columns = { 'ItemID': { 'title': _('Item ID'), 'index': 'id' }, 'ItemTitle': { 'title': _('Item Title'), 'index': 'sortable_title' }, 'ItemType': { 'title': _('Item Type'), 'index': 'Type' }, 'review_state': { 'title': _('State'), 'toggle': True }, } self.review_states = [ { 'id': 'default', 'title': _('Active'), 'contentFilter': { 'review_state': 'available' }, 'transitions': [ { 'id': 'deactivate' }, ], 'columns': ['ItemID', 'ItemTitle', 'ItemType', 'review_state'] }, { 'id': 'all', 'title': _('All'), 'contentFilter': {}, 'columns': ['ItemID', 'ItemTitle', 'ItemType', 'review_state'] }, ]
def renderSTemplate(self): templates_dir = self._TEMPLATES_DIR template_name = 'sticker_kit.pt' embed = ViewPageTemplateFile(os.path.join(templates_dir, template_name)) reptemplate = "" try: reptemplate = embed(self) except: tbex = traceback.format_exc() ktid = self.context.id reptemplate = "<div class='error-print'>%s - %s '%s':<pre>%s</pre></div>" % ( ktid, _("Unable to load the template"), template_name, tbex) return reptemplate
class BatchView(BrowserView): """The view of a single sample """ template = ViewPageTemplateFile("templates/batch_view.pt") title = _("Biospecimen Batch View") def __call__(self): context = self.context self.absolute_url = context.absolute_url() # __Disable the add new menu item__ # context.setLocallyAllowedTypes(()) # __Collect general data__ # self.id = context.getId() self.title = context.Title() self.icon = self.portal_url + "/++resource++baobab.lims.images/" \ + "biospecimen_big.png" # self.batchID = context.getBatchId() self.batchType = context.getField('BatchType').get(context) self.subjectID = context.getField('SubjectID').get(context) self.project = "<a href='%s'>%s</a>" % ( context.getProject().absolute_url(), context.getProject().Title()) self.numberOfBiospecimen = context.getQuantity() locations = context.getField('StorageLocation').get(context) location_paths = [ location and "<a href='%s'>%s</a>" % (location.absolute_url(), location.getHierarchy()) or None for location in locations ] self.location = ','.join(location_paths) self.creation_date = context.getDateCreated( ) # .strftime("%Y/%m/%d %H:%M") self.serumColour = context.getField('SerumColour').get(context) try: self.contrifugation_date = context.getCfgDateTime( ) # .strftime("%Y/%m/%d %H:%M") except: self.contrifugation_date = '' return self.template()