Exemplo n.º 1
0
    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']
            },
        ]
Exemplo n.º 2
0
    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']
        }]
Exemplo n.º 3
0
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
Exemplo n.º 4
0
    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__()
Exemplo n.º 5
0
    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']
            },
        ]
Exemplo n.º 6
0
    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
Exemplo n.º 7
0
    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',
            ]
        }]
Exemplo n.º 8
0
    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'
                ]
            },
        ]
Exemplo n.º 9
0
    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]
Exemplo n.º 10
0
 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)
Exemplo n.º 11
0
    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)
Exemplo n.º 12
0
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
Exemplo n.º 13
0
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()
Exemplo n.º 14
0
    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'
                ]
            }
        ]
Exemplo n.º 15
0
    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')
Exemplo n.º 16
0
 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))
Exemplo n.º 17
0
 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."
Exemplo n.º 18
0
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()
Exemplo n.º 19
0
    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']
            },
        ]
Exemplo n.º 20
0
 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"
Exemplo n.º 21
0
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()
Exemplo n.º 22
0
    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]
Exemplo n.º 23
0
    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__()
Exemplo n.º 24
0
 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']
         },
     ]
Exemplo n.º 25
0
    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']},
        ]
Exemplo n.º 26
0
    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']
            },
        ]
Exemplo n.º 27
0
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()
Exemplo n.º 28
0
    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']
            },
        ]
Exemplo n.º 29
0
    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
Exemplo n.º 30
0
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()