Passed
Push — master ( 0e02ba...4def5b )
by Jordi
04:46
created

ReferenceDefinitionsView.__init__()   A

Complexity

Conditions 1

Size

Total Lines 41
Code Lines 36

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 36
dl 0
loc 41
rs 9.016
c 0
b 0
f 0
cc 1
nop 3
1
# -*- coding: utf-8 -*-
2
#
3
# This file is part of SENAITE.CORE
4
#
5
# Copyright 2018 by it's authors.
6
# Some rights reserved. See LICENSE.rst, CONTRIBUTORS.rst.
7
8
from Products.ATContentTypes.content import schemata
9
from Products.Archetypes import atapi
10
from bika.lims.browser.bika_listing import BikaListingView
11
from bika.lims.config import PROJECTNAME
12
from bika.lims import bikaMessageFactory as _
13
from plone.app.folder.folder import ATFolder, ATFolderSchema
14
from bika.lims.interfaces import IReferenceDefinitions
15
from zope.interface.declarations import implements
16
17
18
class ReferenceDefinitionsView(BikaListingView):
19
    def __init__(self, context, request):
20
        super(ReferenceDefinitionsView, self).__init__(context, request)
21
        self.catalog = 'bika_setup_catalog'
22
        self.contentFilter = {'portal_type': 'ReferenceDefinition',
23
                              'sort_on': 'sortable_title'}
24
        self.context_actions = {_('Add'):
25
                                {'url': 'createObject?type_name=ReferenceDefinition',
26
                                 'icon': '++resource++bika.lims.images/add.png'}}
27
        self.icon = self.portal_url + "/++resource++bika.lims.images/referencedefinition_big.png"
28
        self.title = self.context.translate(_("Reference Definitions"))
29
        self.description = self.context.translate(_(
30
            "ReferenceDefinition represents a Reference Definition "
31
            "or sample type used for quality control testing"))
32
33
        self.show_select_row = False
34
        self.show_select_column = True
35
        self.pagesize = 25
36
37
        self.columns = {
38
            'Title': {'title': _('Title'),
39
                      'index': 'sortable_title'},
40
            'Description': {'title': _('Description'),
41
                            'index': 'description',
42
                            'toggle': True},
43
        }
44
45
        self.review_states = [
46
            {'id':'default',
47
             'title': _('Active'),
48
             'contentFilter': {'inactive_state': 'active'},
49
             'transitions': [{'id':'deactivate'}, ],
50
             'columns': ['Title', 'Description']},
51
            {'id':'inactive',
52
             'title': _('Dormant'),
53
             'contentFilter': {'inactive_state': 'inactive'},
54
             'transitions': [{'id':'activate'}, ],
55
             'columns': ['Title', 'Description']},
56
            {'id':'all',
57
             'title': _('All'),
58
             'contentFilter':{},
59
             'columns': ['Title', 'Description']},
60
        ]
61
62
    def before_render(self):
63
        """Before template render hook
64
        """
65
        # Don't allow any context actions
66
        self.request.set("disable_border", 1)
67
68
    def folderitems(self):
69
        items = BikaListingView.folderitems(self)
70
        for x in range(len(items)):
71
            if not items[x].has_key('obj'): continue
72
            obj = items[x]['obj']
73
            items[x]['Description'] = obj.Description()
74
            items[x]['replace']['Title'] = "<a href='%s'>%s</a>" % \
75
                 (items[x]['url'], items[x]['Title'])
76
77
            after_icons = ''
78
            if obj.getBlank():
79
                after_icons += "<img src='++resource++bika.lims.images/blank.png' title='Blank'>"
80
            if obj.getHazardous():
81
                after_icons += "<img src='++resource++bika.lims.images/hazardous.png' title='Hazardous'>"
82
            items[x]['replace']['Title'] = "<a href='%s'>%s</a>&nbsp;%s" % \
83
                 (items[x]['url'], items[x]['Title'], after_icons)
84
85
        return items
86
87
88
schema = ATFolderSchema.copy()
89
90
91
class ReferenceDefinitions(ATFolder):
92
    implements(IReferenceDefinitions)
93
    displayContentsTab = False
94
    schema = schema
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable schema does not seem to be defined.
Loading history...
95
96
schemata.finalizeATCTSchema(schema, folderish = True, moveDiscussion = False)
97
atapi.registerType(ReferenceDefinitions, PROJECTNAME)
98