bika.health.monkeys.batchfolder   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 70
Duplicated Lines 44.29 %

Importance

Changes 0
Metric Value
wmc 6
eloc 25
dl 31
loc 70
rs 10
c 0
b 0
f 0

2 Functions

Rating   Name   Duplication   Size   Complexity  
A before_render() 0 4 1
A update() 31 31 5

How to fix   Duplicated Code   

Duplicated Code

Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.

Common duplication problems, and corresponding solutions are:

1
# -*- coding: utf-8 -*-
2
#
3
# This file is part of SENAITE.HEALTH.
4
#
5
# SENAITE.HEALTH is free software: you can redistribute it and/or modify it
6
# under the terms of the GNU General Public License as published by the Free
7
# Software Foundation, version 2.
8
#
9
# This program is distributed in the hope that it will be useful, but WITHOUT
10
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
12
# details.
13
#
14
# You should have received a copy of the GNU General Public License along with
15
# this program; if not, write to the Free Software Foundation, Inc., 51
16
# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17
#
18
# Copyright 2018-2019 by it's authors.
19
# Some rights reserved, see README and LICENSE.
20
21
from bika.lims import AddBatch
22
from bika.lims import api
23
from bika.lims import bikaMessageFactory as _
24
from bika.lims.api.security import check_permission
25
from bika.lims.browser.batchfolder import BatchFolderContentsView
26
from bika.lims.interfaces import IClient
27
28
29
# TODO Remove for compatibility with senaite.core v1.3.3
30
# Superseded by https://github.com/senaite/senaite.core/pull/1467
31 View Code Duplication
def update(self):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
32
    """Before template render hook
33
    """
34
    super(BatchFolderContentsView, self).update()
35
36
    if self.context.portal_type == "BatchFolder":
37
        self.request.set("disable_border", 1)
38
39
    # By default, only users with AddBatch permissions for the current
40
    # context can add batches.
41
    self.context_actions = {
42
        _("Add"): {
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable _ does not seem to be defined.
Loading history...
43
            "url": "createObject?type_name=Batch",
44
            "permission": AddBatch,
45
            "icon": "++resource++bika.lims.images/add.png"
46
        }
47
    }
48
49
    # If current user is a client contact and current context is not a
50
    # Client, then modify the url for Add action so the Batch gets created
51
    # inside the Client object to which the current user belongs. The
52
    # reason is that Client contacts do not have privileges to create
53
    # Batches inside portal/batches
54
    if not IClient.providedBy(self.context):
55
        # Get the client the current user belongs to
56
        client = api.get_current_client()
57
        if client and check_permission(AddBatch, client):
58
            add_url = self.context_actions[_("Add")]["url"]
59
            add_url = "{}/{}".format(api.get_url(client), add_url)
60
            self.context_actions[_("Add")]["url"] = add_url
61
            del (self.context_actions[_("Add")]["permission"])
62
63
64
# TODO Remove for compatibility with senaite.core v1.3.3
65
# Superseded by https://github.com/senaite/senaite.core/pull/1467
66
def before_render(self):
67
    """Before template render hook
68
    """
69
    super(BatchFolderContentsView, self).before_render()
70