Ejemplo n.º 1
0
class AnalysisRequestSchemaExtender(object):
    adapts(IAnalysisRequest)
    implements(IOrderableSchemaExtender)

    fields = [
        ExtReferenceField(
            'Doctor',
            allowed_types=('Doctor', ),
            referenceClass=HoldingReference,
            relationship='AnalysisRequestDoctor',
            widget=ReferenceWidget(
                label=_('Doctor'),
                size=20,
                render_own_label=True,
                visible={
                    'edit': 'visible',
                    'view': 'visible',
                    'add': 'edit',
                    'header_table': 'visible',
                    'secondary': 'disabled'
                },
                catalog_name='portal_catalog',
                base_query={'inactive_state': 'active'},
                showOn=True,
            ),
        ),
        ExtComputedField(
            'DoctorUID',
            expression=
            'context.getDoctor() and context.getDoctor().UID() or None',
            widget=ComputedWidget(visible=False, ),
        ),
        ExtReferenceField(
            'Patient',
            required=1,
            allowed_types=('Patient', ),
            referenceClass=HoldingReference,
            relationship='AnalysisRequestPatient',
            read_permission=hpermissions.ViewPatients,
            write_permission=permissions.ModifyPortalContent,
            widget=ReferenceWidget(
                label=_('Patient'),
                size=20,
                render_own_label=True,
                visible={
                    'edit': 'visible',
                    'view': 'visible',
                    'add': 'edit',
                    'secondary': 'disabled'
                },
                catalog_name='bika_patient_catalog',
                base_query={'inactive_state': 'active'},
                showOn=True,
            ),
        ),
        ExtComputedField(
            'PatientID',
            expression=
            "context.Schema()['Patient'].get(context).getPatientID() if context.Schema()['Patient'].get(context) else None",
            mode="r",
            read_permission=hpermissions.ViewPatients,
            write_permission=permissions.ModifyPortalContent,
            widget=ComputedWidget(visible=True, ),
        ),
        ExtComputedField(
            'PatientUID',
            expression=
            "context.Schema()['Patient'].get(context).UID() if context.Schema()['Patient'].get(context) else None",
            widget=ComputedWidget(visible=False, ),
        ),
        BooleanField(
            'PanicEmailAlertToClientSent',
            default=False,
            widget=BooleanWidget(visible={
                'edit': 'invisible',
                'view': 'invisible',
                'add': 'invisible'
            }, ),
        ),
        ExtStringField(
            'ClientPatientID',
            searchable=True,
            required=0,
            read_permission=hpermissions.ViewPatients,
            write_permission=permissions.ModifyPortalContent,
            widget=ReferenceWidget(
                label=_("Client Patient ID"),
                size=20,
                colModel=[
                    {
                        'columnName': 'id',
                        'width': '20',
                        'label': _('Patient ID'),
                        'align': 'left'
                    },
                    {
                        'columnName': 'ClientPatientID',
                        'width': '20',
                        'label': _('Client PID'),
                        'align': 'left'
                    },
                    {
                        'columnName': 'Title',
                        'width': '60',
                        'label': _('Fullname'),
                        'align': 'left'
                    },
                    {
                        'columnName': 'UID',
                        'hidden': True
                    },
                ],
                ui_item='ClientPatientID',
                search_query='',
                discard_empty=('ClientPatientID', ),
                search_fields=('ClientPatientID', ),
                portal_types=('Patient', ),
                render_own_label=True,
                visible={
                    'edit': 'visible',
                    'view': 'visible',
                    'add': 'edit',
                },
                catalog_name='bika_patient_catalog',
                base_query={'inactive_state': 'active'},
                showOn=True,
            ),
        ),
    ]

    def getOrder(self, schematas):
        default = schematas['default']
        default.remove('Patient')
        default.remove('Doctor')
        default.remove('ClientPatientID')
        default.insert(default.index('Template'), 'ClientPatientID')
        default.insert(default.index('Template'), 'Patient')
        default.insert(default.index('Template'), 'Doctor')
        schematas['default'] = default
        return schematas

    def __init__(self, context):
        self.context = context

    def getFields(self):
        return self.fields
Ejemplo n.º 2
0
         visible={
             "edit": "visible",
             "view": "visible",
             "add": "visible",
             "secondary": "invisible",
         },
         catalog_name="bika_setup_catalog",
         base_query={"is_active": True},
         showOn=True,
     ),
 ),
 ComputedField(
     "SamplePointUID",
     expression=
     "context.Schema()['SamplePoint'].get(context) and context.Schema()['SamplePoint'].get(context).UID() or ''",
     widget=ComputedWidget(visible=False, ),
 ),
 ReferenceField(
     "SampleType",
     vocabulary_display_path_bound=sys.maxint,
     allowed_types=("SampleType", ),
     relationship="ARTemplateSampleType",
     referenceClass=HoldingReference,
     accessor="getSampleType",
     edit_accessor="getSampleType",
     mutator="setSampleType",
     widget=ReferenceWidget(
         label=_("Sample Type"),
         description=_("Create a new sample of this type"),
         visible={
             "edit": "visible",
from Products.ATContentTypes.interface import IATLink, IATContentType

from Products.PloneArticle.proxy import BaseInnerContentProxy, \
    BaseInnerContentProxySchema
from Products.PloneArticle.interfaces import ILinkInnerContentProxy
from Products.PloneArticle.config import PROJECTNAME

# Defines schema
LinkInnerContentProxySchema = BaseInnerContentProxySchema.copy() + Schema((
    ComputedField(
        'remoteUrl',
        primary=True,
        expression="""context.getPrimaryValue('')""",
        widget=ComputedWidget(
            label='Remote url',
            label_msgid='label_remote_url',
            i18n_domain='plonearticle',
        ),
    ),
    ReferenceField(
        'referencedContent',
        relationship='article_link',
        widget=ReferenceBrowserWidget(
            label='Referenced link',
            label_msgid='label_referenced_link',
            i18n_domain='plonearticle',
        ),
    ),
    StringField(
        'attachedLink',
        widget=StringWidget(
Ejemplo n.º 4
0
                            vocabulary_display_path_bound=sys.maxint,
                            vocabulary='_getAvailableInstrumentsDisplayList',
                            allowed_types=('Instrument',),
                            relationship='AnalysisServiceInstrument',
                            referenceClass=HoldingReference,
                            widget=SelectionWidget(
                                format='select',
                                label=_('Default Instrument')
                            ),
 ),
 # Returns the Default's instrument title. If no default instrument
 # set, returns string.empty
 ComputedField('InstrumentTitle',
               expression="context.getInstrument() and context.getInstrument().Title() or ''",
               widget=ComputedWidget(
                   visible=False,
               ),
 ),
 # Manual methods associated to the AS
 # List of methods capable to perform the Analysis Service. The
 # Methods selected here are displayed in the Analysis Request
 # Add view, closer to this Analysis Service if selected.
 # Use getAvailableMethods() to retrieve the list with methods both
 # from selected instruments and manually entered.
 # Behavior controlled by js depending on ManualEntry/Instrument:
 # - If InstrumentEntry checked, hide and unselect
 # - If InsrtumentEntry not checked, show
 # See browser/js/bika.lims.analysisservice.edit.js
 ReferenceField('Methods',
     schemata = "Method",
     required = 0,
Ejemplo n.º 5
0
    ),

    StringField(
        "Surname",
        required=1,
        widget=StringWidget(
            label=_("Surname"),
        ),
    ),

    ComputedField(
        "Fullname",
        expression="context.getFullname()",
        searchable=1,
        widget=ComputedWidget(
            label=_("Full Name"),
            visible={"edit": "invisible", "view": "invisible"},
        ),
    ),

    StringField(
        "Username",
        widget=StringWidget(
            visible=False
        ),
    ),

    StringField(
        "EmailAddress",
        schemata="Email Telephone Fax",
        searchable=1,
        widget=StringWidget(
Ejemplo n.º 6
0
    StringField(
        'description',
        isMetadata=1,
        accessor='Description',
        widget=TextAreaWidget(
            label='Description',
            label_msgid="label_blogfolder_description",
            description_msgid="help_blogfolder_description",
            i18n_domain="SimpleBlog",
            description='Breve descripción para este folder.'),
    ),
    ComputedField('existingCats',
                  expression='here.getInheritedCategories()',
                  widget=ComputedWidget(
                      label='Existing categories.',
                      label_msgid="label_blogfolder_existing_cats",
                      i18n_domain="SimpleBlog",
                  )),
    LinesField(
        'categories',
        widget=LinesWidget(
            label='Additional categories',
            label_msgid="label_additional_categories",
            description_msgid="help_additional_categories",
            i18n_domain="SimpleBlog",
            description=
            'Supply a list of possible additional categories that will be available to BlogEntries inside this folder or in sub folders.'
        ),
    )))

Ejemplo n.º 7
0
class AnalysisRequestSchemaExtender(object):
    adapts(IAnalysisRequest)
    implements(IOrderableSchemaExtender)

    def __init__(self, context):
        self.context = context

    fields = [
        ExtReferenceField(
            'Doctor',
            allowed_types=('Doctor', ),
            referenceClass=HoldingReference,
            relationship='AnalysisRequestDoctor',
            widget=ReferenceWidget(
                label=_('Doctor'),
                size=20,
                render_own_label=True,
                visible={
                    'edit': 'visible',
                    'view': 'visible',
                    'add': 'edit',
                    'header_table': 'visible',
                    'secondary': 'disabled'
                },
                catalog_name='portal_catalog',
                base_query={'inactive_state': 'active'},
                showOn=True,
                add_button={
                    'visible': True,
                    'url': 'doctors/portal_factory/Doctor/new/edit',
                    'return_fields': ['Firstname', 'Surname'],
                }),
        ),
        ExtComputedField(
            'DoctorUID',
            # It looks like recursive, but we must pass through the Schema to obtain data. In this way we allow to LIMS obtain it.
            expression="context._getDoctorUID()",
            widget=ComputedWidget(visible=False, ),
        ),
        ExtReferenceField(
            'Patient',
            required=1,
            allowed_types=('Patient', ),
            referenceClass=HoldingReference,
            relationship='AnalysisRequestPatient',
            read_permission=ViewPatients,
            write_permission=permissions.ModifyPortalContent,
            widget=ReferenceWidget(
                label=_('Patient'),
                size=20,
                render_own_label=True,
                visible={
                    'edit': 'visible',
                    'view': 'visible',
                    'add': 'edit',
                    'secondary': 'disabled'
                },
                catalog_name='bikahealth_catalog_patient_listing',
                base_query={'inactive_state': 'active'},
                colModel=[
                    {
                        'columnName': 'Title',
                        'width': '30',
                        'label': _('Title'),
                        'align': 'left'
                    },
                    # UID is required in colModel
                    {
                        'columnName': 'UID',
                        'hidden': True
                    },
                ],
                showOn=True,
                add_button={
                    'visible': True,
                    'url': 'patients/portal_factory/Patient/new/edit',
                    'return_fields': ['Firstname', 'Surname'],
                    'js_controllers': [
                        '#patient-base-edit',
                    ],
                    'overlay_handler': 'HealthPatientOverlayHandler',
                }),
        ),
        ExtComputedField(
            'PatientID',
            expression=
            "context.Schema()['Patient'].get(context).getPatientID() if context.Schema()['Patient'].get(context) else None",
            mode="r",
            read_permission=ViewPatients,
            write_permission=permissions.ModifyPortalContent,
            widget=ComputedWidget(visible=True, ),
        ),
        ExtComputedField(
            'PatientUID',
            expression="here._getPatientUID()",
            widget=ComputedWidget(visible=False, ),
        ),
        BooleanField(
            'PanicEmailAlertToClientSent',
            default=False,
            widget=BooleanWidget(visible={
                'edit': 'invisible',
                'view': 'invisible',
                'add': 'invisible'
            }, ),
        ),
        ExtStringField(
            'ClientPatientID',
            searchable=True,
            required=1,
            read_permission=ViewPatients,
            write_permission=permissions.ModifyPortalContent,
            widget=ReferenceWidget(
                label=_("Client Patient ID"),
                size=20,
                colModel=[
                    {
                        'columnName': 'id',
                        'width': '20',
                        'label': _('Patient ID'),
                        'align': 'left'
                    },
                    {
                        'columnName': 'getClientPatientID',
                        'width': '20',
                        'label': _('Client PID'),
                        'align': 'left'
                    },
                    {
                        'columnName': 'Title',
                        'width': '60',
                        'label': _('Fullname'),
                        'align': 'left'
                    },
                    {
                        'columnName': 'UID',
                        'hidden': True
                    },
                ],
                ui_item='getClientPatientID',
                search_query='',
                discard_empty=('ClientPatientID', ),
                search_fields=('ClientPatientID', ),
                portal_types=('Patient', ),
                render_own_label=True,
                visible={
                    'edit': 'visible',
                    'view': 'visible',
                    'add': 'edit',
                },
                catalog_name='bikahealth_catalog_patient_listing',
                base_query={'inactive_state': 'active'},
                showOn=True,
            ),
        ),
    ]

    def getOrder(self, schematas):
        default = schematas['default']
        default.remove('Patient')
        default.remove('Doctor')
        default.remove('ClientPatientID')
        default.insert(default.index('Template'), 'ClientPatientID')
        default.insert(default.index('Template'), 'Patient')
        default.insert(default.index('Template'), 'Doctor')
        schematas['default'] = default
        return schematas

    def getFields(self):
        return self.fields
Ejemplo n.º 8
0
from Products.PloneArticle import LOG
from Products.PloneArticle.proxy import BaseFileContentProxy, \
    BaseInnerContentProxySchema
from Products.PloneArticle.interfaces import IImageInnerContentProxy, IBaseInnerContentProxy
from Products.PloneArticle.config import PLONEARTICLE_TOOL, PROJECTNAME


# Defines schema
ImageInnerContentProxySchema = BaseInnerContentProxySchema.copy() + Schema((
    ComputedField(
        'image',
        primary=True,
        expression="""context.getPrimaryValue('image', 'attachedImage', '')""",
        widget=ComputedWidget(
            label='Image',
            label_msgid='label_image',
            i18n_domain='plonearticle',
            ),
        ),
    ReferenceField(
        'referencedContent',
        relationship='article_image',
        keepReferencesOnCopy=True,
        widget=ReferenceBrowserWidget(
            label='Referenced image',
            label_msgid='label_referenced_image',
            i18n_domain='plonearticle',
            ),
        ),
    ImageField(
        'attachedImage',
Ejemplo n.º 9
0
 TextField(
     "Remarks",
     allowable_content_types=("text/plain",),
     widget=TextAreaWidget(
         label=_("Remarks"),
     )
 ),
 # Custom settings for the assigned analysis services
 # https://jira.bikalabs.com/browse/LIMS-1324
 # Fields:
 #   - uid: Analysis Service UID
 #   - hidden: True/False. Hide/Display in results reports
 RecordsField('AnalysisServicesSettings',
      required=0,
      subfields=('uid', 'hidden',),
      widget=ComputedWidget(visible=False),
 ),
 StringField('CommercialID',
     searchable=1,
     required=0,
     schemata='Accounting',
     widget=StringWidget(
         visible={'view': 'visible', 'edit': 'visible'},
         label=_('Commercial ID'),
         description=_("The profile's commercial ID for accounting purposes."),
     ),
 ),
 # When it's set, the system uses the analysis profile's price to quote and the system's VAT is overridden by the
 # the analysis profile's specific VAT
 BooleanField('UseAnalysisProfilePrice',
     default=False,
            'Please input the transaction PST. (NOT available after July, 2010)',
            size=8,
            thousands_commas=True,
            dollars_and_cents=True,
        ),
    ),

    # transaction total
    ComputedField(
        'bk_transaction_total',
        searchable=False,
        required=False,
        expression='context.transactionTotal()',
        widget=ComputedWidget(
            label='Transaction Total',
            description=
            'Please input the transaction PST. (NOT available after July, 2010)',
        ),
    ),

    # TODO: image field for the receipt / invoice
))

finalizeATCTSchema(BKTransactionSchema)

# move around the fields.


# define the content type class.
class BKTransaction(ATCTContent):
    """
Ejemplo n.º 11
0
approvedBydesc = ""
approvedBy = StringField('approvedBy',
                         default=False,
                         write_permission=ApproveSelectedContent,
                         index="lens_catalog/FieldIndex:brains",
                         widget=StringWidget(label="Approved by",
                                             description=approvedBydesc,
                                             i18n_domain="rhaptos"))

ratingdesc = ""
rating = ComputedField('rating',
                       accessor='getRating',
                       index="lens_catalog/FieldIndex:brains",
                       widget=ComputedWidget(label="Rating",
                                             description=ratingdesc,
                                             i18n_domain="rhaptos"))

schema = BaseFolderSchema.copy() + Schema(
    (contentId, title, versionStart, versionStop, versionLastSeen, implicit,
     namespaceTags, tags, comment, plaincomment, allowedRolesAndUsers,
     contentAuthors, approved, approvedBy, rating))


class SelectedContent(BaseFolder):  # should it be BTree?
    """Entry present in a set of selected content.
    Selected collection content may contain an auto-generated list of
    'SelectedContent's to provide implicit endorsement.
    """
    archetype_name = "Selected Content"
    use_folder_tabs = 1