def planning_factory(request):
    request.validated['plan_src'] = {}
    root = PlanRoot(request)
    # query containt param plan_id (GET request)
    plan_id = request.matchdict.get('plan_id') if request.matchdict else None
    if plan_id:
        # fill id of Plan
        request.validated['plan_id'] = plan_id
        # find entry in planning database by ID
        plan = Plan.load(root.db_plan, plan_id)
        # plan not found
        if not plan:
            request.errors.add('url', 'plan_id', 'Not Found')
            request.errors.status = 404
            raise error_handler(request.errors)

        plan.__parent__ = root
        request.validated['plan'] = plan
        if request.method != 'GET':
            request.validated['plan_src'] = plan.serialize('plain')
        request.validated['id'] = plan_id
        return plan

    return None
def planning_factory(request):
    request.validated['plan_src'] = {}
    root = PlanRoot(request)
    # query containt param plan_id (GET request)
    plan_id = request.matchdict.get('plan_id') if request.matchdict else None
    if plan_id:
        # fill id of Plan
        request.validated['plan_id'] = plan_id
        # find entry in planning database by ID
        plan = Plan.load(root.db_plan, plan_id)
        # plan not found
        if not plan:
            request.errors.add('url', 'plan_id', 'Not Found')
            request.errors.status = 404
            raise error_handler(request.errors)

        plan.__parent__ = root
        request.validated['plan'] = plan
        if request.method != 'GET':
            request.validated['plan_src'] = plan.serialize('plain')
        request.validated['id'] = plan_id
        return plan

    return None