Example #1
0
def aggregate_edit(request,
                   agg_id,
                   agg_model,
                   redirect=lambda inst: reverse("home")):
    """
    Update a GENI Aggregate.
    
    @param request: The request object
    @param agg_id: the aggregate id
    @param agg_model: the GENI Aggregate subclass.
    @keyword redirect: Function that takes the created instance and returns
        a url to redirect to.
    """
    def success_msg(instance):
        return "Successfully updated aggregate %s." % instance.name

    def post_save(instance, created):
        instance.update_resources()

    return generic_crud(request,
                        obj_id=agg_id,
                        model=agg_model,
                        template=TEMPLATE_PATH + "/aggregate_crud.html",
                        template_object_name="aggregate",
                        redirect=redirect,
                        post_save=post_save,
                        form_class=geni_aggregate_form_factory(agg_model),
                        success_msg=success_msg)
Example #2
0
def aggregate_edit(request, agg_id, agg_model,
                     redirect=lambda inst: reverse("home")):
    """
    Update a GENI Aggregate.
    
    @param request: The request object
    @param agg_id: the aggregate id
    @param agg_model: the GENI Aggregate subclass.
    @keyword redirect: Function that takes the created instance and returns
        a url to redirect to.
    """
    
    def success_msg(instance):
        return "Successfully updated aggregate %s." % instance.name
    
    def post_save(instance, created):
        instance.update_resources()
    
    return generic_crud(
        request, obj_id=agg_id, model=agg_model,
        template="aggregate_crud.html",
        template_object_name="aggregate",
        redirect=redirect,
        post_save=post_save,
        form_class=geni_aggregate_form_factory(agg_model),
        success_msg=success_msg)
Example #3
0
def aggregate_create(request, agg_model,
                     redirect=lambda inst: reverse("home")):
    '''
    Create a GENI Aggregate.
    
    @param request: The request.
    @param model: The child subclass for the aggregate.
    @keyword redirect: Function that takes the created instance and returns
        a url to redirect to.
    '''
    
    def pre_save(instance, created):
        instance.owner = request.user
    
    def post_save(instance, created):
        instance.update_resources()
        give_permission_to(
            "can_use_aggregate",
            instance,
            request.user,
            can_delegate=True
        )
        give_permission_to(
            "can_edit_aggregate",
            instance,
            request.user,
            can_delegate=True
        )
    
    def success_msg(instance):
        return "Successfully created aggregate %s." % instance.name
    
    return generic_crud(
        request, obj_id=None, model=agg_model,
        template="aggregate_crud.html",
        redirect=redirect,
        form_class=geni_aggregate_form_factory(agg_model),
        pre_save=pre_save,
        post_save=post_save,
        extra_context={
            "create": True,
            "name": agg_model._meta.verbose_name,
        },
        success_msg=success_msg)
Example #4
0
def aggregate_create(request, agg_model,
                     redirect=lambda inst: reverse("home")):
    '''
    Create a GENI Aggregate.
    
    @param request: The request.
    @param model: The child subclass for the aggregate.
    @keyword redirect: Function that takes the created instance and returns
        a url to redirect to.
    '''
    def pre_save(instance, created):
        instance.owner = request.user

    def post_save(instance, created):
        instance.update_resources()
        give_permission_to("can_use_aggregate",
                           instance,
                           request.user,
                           can_delegate=True)
        give_permission_to("can_edit_aggregate",
                           instance,
                           request.user,
                           can_delegate=True)

    def success_msg(instance):
        return "Successfully created aggregate %s." % instance.name

    return generic_crud(request,
                        obj_id=None,
                        model=agg_model,
                        template=TEMPLATE_PATH + "/aggregate_crud.html",
                        redirect=redirect,
                        form_class=geni_aggregate_form_factory(agg_model),
                        pre_save=pre_save,
                        post_save=post_save,
                        extra_context={
                            "create": True,
                            "name": agg_model._meta.verbose_name,
                        },
                        success_msg=success_msg)