예제 #1
0
    def test_unlocked_user(self):
        assert can_forecast_be_edited(self.test_user)

        self.lock()
        assert not can_forecast_be_edited(self.test_user)

        UnlockedForecastEditorFactory(user=self.test_user, )

        assert can_forecast_be_edited(self.test_user)
예제 #2
0
    def test_can_edit_whilst_closed_permission(self):
        self.close()
        assert not can_forecast_be_edited(self.test_user)

        self.assign_permission("can_edit_whilst_closed")

        assert can_forecast_be_edited(self.test_user)
        self.lock()

        assert not can_forecast_be_edited(self.test_user)
예제 #3
0
    def test_super_user(self):
        self.test_user.is_superuser = True
        self.test_user.save()

        assert can_forecast_be_edited(self.test_user)

        self.close()
        assert can_forecast_be_edited(self.test_user)

        self.lock()
        assert can_forecast_be_edited(self.test_user)
예제 #4
0
    def dispatch(self, request, *args, **kwargs):
        # If edit is open, redirect to choose CC page
        if can_forecast_be_edited(request.user):
            return redirect(reverse("choose_cost_centre"))

        return super(EditUnavailableView, self).dispatch(
            request,
            *args,
            **kwargs,
        )
예제 #5
0
    def test_func(self):
        if "cost_centre_code" not in self.kwargs:
            raise NoCostCentreCodeInURLError(
                "No cost centre code provided in URL")

        self.cost_centre_code = self.kwargs["cost_centre_code"]

        has_permission = can_edit_cost_centre(
            self.request.user,
            self.cost_centre_code,
        )

        user_can_edit = can_forecast_be_edited(self.request.user)

        if not user_can_edit:
            self.edit_not_available = True
            return False

        return has_permission
예제 #6
0
    def test_lock(self):
        assert can_forecast_be_edited(self.test_user)

        self.lock()
        assert not can_forecast_be_edited(self.test_user)
예제 #7
0
    def test_close(self):
        assert can_forecast_be_edited(self.test_user)

        self.close()
        assert not can_forecast_be_edited(self.test_user)