Beispiel #1
0
def location_edit(request, location_id=None, action='edit'):
    info = LocationInfo()
    if location_id:
        copy_url = reverse_lazy(info.copy_url_name,
                                kwargs={
                                    'action': 'copy',
                                    'location_id': location_id
                                })
    else:
        copy_url = None

    _title = 'Use this location as a template for creating a new location'
    if location_id:
        detail_page_url = reverse_lazy('location-info',
                                       kwargs={'locationid': location_id})
    else:
        detail_page_url = ""
    extra_context = {
        'copy_url': copy_url,
        'copy_title': _title,
        'detail_page_url': detail_page_url,
    }
    extra_context.update(info.template_context)
    return render_edit(
        request,
        Location,
        LocationForm,
        location_id,
        'seeddb-location-edit',
        extra_context=extra_context,
        action=action,
    )
Beispiel #2
0
class VlanInfo(SeeddbInfo):
    active = {'vlan': True}
    caption = 'Vlan'
    tab_template = 'seeddb/tabs_vlan.html'
    _title = 'Vlan'
    _navpath = [('Vlan', reverse_lazy('seeddb-vlan'))]
    hide_move = True
    hide_delete = True
    back_url = reverse_lazy('seeddb-vlan')
Beispiel #3
0
Datei: edit.py Projekt: hmpf/nav
def netbox_edit(request, netbox_id=None, suggestion=None, action='edit'):
    """Controller for edit or create of netbox"""
    info = NI()
    netbox = None
    copy_url = None
    if netbox_id:
        netbox = get_object_or_404(Netbox, pk=netbox_id)
        if action == 'edit':
            copy_url = reverse_lazy(
                info.copy_url_name, kwargs={'action': 'copy', 'netbox_id': netbox_id}
            )

    if request.method == 'POST':
        if action == 'copy':
            # Remove stuff that should not be copied over
            post = request.POST.copy()
            post.pop('sysname', None)
            post.pop('type', None)
            post.pop('virtual_instance', None)
            form = NetboxModelForm(post)
        else:
            form = NetboxModelForm(request.POST, instance=netbox)
        if form.is_valid():
            old_netbox = copy.deepcopy(netbox)
            netbox = netbox_do_save(form)
            messages.add_message(request, messages.SUCCESS, 'IP Device saved')
            log_netbox_change(request.account, old_netbox, netbox)
            return redirect(reverse('seeddb-netbox-edit', args=[netbox.pk]))
        else:
            messages.add_message(request, messages.ERROR, 'Form was not valid')
    else:
        if suggestion:
            form = NetboxModelForm(instance=netbox, initial={'ip': suggestion})
        else:
            form = NetboxModelForm(instance=netbox)

    page_title = "Add new IP Device"
    if netbox:
        page_title = "Edit IP Device"
        if action == 'copy':
            page_title = "Copy IP Device"
    context = info.template_context
    context.update(
        {
            'object': netbox,
            'form': form,
            'title': page_title,
            '_navpath': [('Edit Device', reverse_lazy('seeddb-netbox-edit'))],
            'sub_active': netbox and {'edit': True} or {'add': True},
            'tab_template': 'seeddb/tabs_generic.html',
            'copy_url': copy_url,
            'copy_title': 'Use this netbox as a template for creating a new netbox',
            'action': action,
        }
    )
    return render(request, 'seeddb/netbox_wizard.html', context)
Beispiel #4
0
class OrganizationInfo(SeeddbInfo):
    active = {'organization': True}
    caption = 'Organizations'
    tab_template = 'seeddb/tabs_generic.html'
    _title = 'Organizations'
    _navpath = [('Organizations', reverse_lazy('seeddb-organization'))]
    delete_url = reverse_lazy('seeddb-organization')
    back_url = reverse_lazy('seeddb-organization')
    add_url = reverse_lazy('seeddb-organization-edit')
    bulk_url = reverse_lazy('seeddb-organization-bulk')
Beispiel #5
0
class CablingInfo(SeeddbInfo):
    active = {'cabling': True}
    caption = 'Cabling'
    tab_template = 'seeddb/tabs_generic.html'
    _title = 'Cabling'
    _navpath = [('Cabling', reverse_lazy('seeddb-cabling'))]
    hide_move = True
    delete_url = reverse_lazy('seeddb-cabling')
    back_url = reverse_lazy('seeddb-cabling')
    add_url = reverse_lazy('seeddb-cabling-edit')
    bulk_url = reverse_lazy('seeddb-cabling-bulk')
Beispiel #6
0
class PatchInfo(SeeddbInfo):
    active = {'patch': True}
    caption = 'Patch'
    tab_template = 'seeddb/tabs_generic.html'
    _title = 'Patch'
    _navpath = [('Patch', reverse_lazy('seeddb-patch'))]
    hide_move = True
    delete_url = reverse_lazy('seeddb-patch')
    back_url = reverse_lazy('seeddb-patch')
    add_url = reverse_lazy('seeddb-patch-edit')
    bulk_url = reverse_lazy('seeddb-patch-bulk')
Beispiel #7
0
class NetboxGroupInfo(SeeddbInfo):
    active = {'netboxgroup': True}
    caption = 'Device Group'
    tab_template = 'seeddb/tabs_generic.html'
    _title = 'Device Groups'
    _navpath = [('Device Groups', reverse_lazy('seeddb-netboxgroup'))]
    hide_move = True
    delete_url = reverse_lazy('seeddb-netboxgroup')
    back_url = reverse_lazy('seeddb-netboxgroup')
    add_url = reverse_lazy('seeddb-netboxgroup-edit')
    bulk_url = reverse_lazy('seeddb-netboxgroup-bulk')
Beispiel #8
0
class UsageInfo(SeeddbInfo):
    active = {'usage': True}
    caption = 'Usage categories'
    tab_template = 'seeddb/tabs_generic.html'
    _title = 'Usage categories'
    _navpath = [('Usage', reverse_lazy('seeddb-usage'))]
    hide_move = True
    delete_url = reverse_lazy('seeddb-usage')
    back_url = reverse_lazy('seeddb-usage')
    add_url = reverse_lazy('seeddb-usage-edit')
    bulk_url = reverse_lazy('seeddb-usage-bulk')
Beispiel #9
0
class NetboxInfo(SeeddbInfo):
    """Variable container"""
    active = {'netbox': True}
    caption = 'IP Devices'
    tab_template = 'seeddb/tabs_generic.html'
    _title = 'IP Devices'
    _navpath = [('IP Devices', reverse_lazy('seeddb-netbox'))]
    delete_url = reverse_lazy('seeddb-netbox')
    back_url = reverse_lazy('seeddb-netbox')
    add_url = reverse_lazy('seeddb-netbox-edit')
    bulk_url = reverse_lazy('seeddb-netbox-bulk')
Beispiel #10
0
class VendorInfo(SeeddbInfo):
    active = {'vendor': True}
    caption = 'Vendors'
    tab_template = 'seeddb/tabs_generic.html'
    _title = 'Vendors'
    _navpath = [('Vendors', reverse_lazy('seeddb-vendor'))]
    hide_move = True
    delete_url = reverse_lazy('seeddb-vendor')
    back_url = reverse_lazy('seeddb-vendor')
    add_url = reverse_lazy('seeddb-vendor-edit')
    bulk_url = reverse_lazy('seeddb-vendor-bulk')
Beispiel #11
0
class LocationInfo(SeeddbInfo):
    active = {'location': True}
    caption = 'Locations'
    tab_template = 'seeddb/tabs_generic.html'
    _title = 'Locations'
    _navpath = [('Locations', reverse_lazy('seeddb-location'))]
    hide_move = True
    delete_url = reverse_lazy('seeddb-location')
    back_url = reverse_lazy('seeddb-location')
    add_url = reverse_lazy('seeddb-location-edit')
    bulk_url = reverse_lazy('seeddb-location-bulk')
Beispiel #12
0
class RoomInfo(SeeddbInfo):
    """Room info object"""
    active = {'room': True}
    caption = 'Rooms'
    tab_template = 'seeddb/tabs_generic.html'
    _title = 'Rooms'
    _navpath = [('Rooms', reverse_lazy('seeddb-room'))]
    delete_url = reverse_lazy('seeddb-room')
    back_url = reverse_lazy('seeddb-room')
    add_url = reverse_lazy('seeddb-room-edit')
    bulk_url = reverse_lazy('seeddb-room-bulk')
Beispiel #13
0
class ServiceInfo(SeeddbInfo):
    active = {'service': True}
    caption = 'Services'
    tab_template = 'seeddb/tabs_generic.html'
    _title = 'Services'
    _navpath = [('Services', reverse_lazy('seeddb-service'))]
    delete_url = reverse_lazy('seeddb-service')
    back_url = reverse_lazy('seeddb-service')
    add_url = reverse_lazy('seeddb-service-edit')
    bulk_url = reverse_lazy('seeddb-service-bulk')
    hide_move = True
Beispiel #14
0
class NetboxTypeInfo(SeeddbInfo):
    active = {'type': True}
    caption = 'Types'
    tab_template = 'seeddb/tabs_generic.html'
    _title = 'Types'
    _navpath = [('Types', reverse_lazy('seeddb-type'))]
    hide_move = True
    delete_url = reverse_lazy('seeddb-type')
    back_url = reverse_lazy('seeddb-type')
    add_url = reverse_lazy('seeddb-type-edit')
    bulk_url = reverse_lazy('seeddb-type-bulk')
Beispiel #15
0
class OrganizationInfo(SeeddbInfo):
    active_page = 'organization'
    active = {active_page: True}
    caption = "{}s".format(active_page.capitalize())
    _title = caption
    tab_template = 'seeddb/tabs_generic.html'
    verbose_name = Organization._meta.verbose_name
    _navpath = [('Organizations', reverse_lazy('seeddb-organization'))]
    delete_url = reverse_lazy('seeddb-organization')
    back_url = reverse_lazy('seeddb-organization')
    add_url = reverse_lazy('seeddb-organization-edit')
    bulk_url = reverse_lazy('seeddb-organization-bulk')
Beispiel #16
0
class PrefixInfo(SeeddbInfo):
    """Info-container for prefix"""
    active = {'prefix': True}
    caption = 'Prefix'
    tab_template = 'seeddb/tabs_generic.html'
    _title = 'Prefix'
    _navpath = [('Prefix', reverse_lazy('seeddb-prefix'))]
    delete_url = reverse_lazy('seeddb-prefix')
    back_url = reverse_lazy('seeddb-prefix')
    add_url = reverse_lazy('seeddb-prefix-edit')
    bulk_url = reverse_lazy('seeddb-prefix-bulk')
    hide_move = True
Beispiel #17
0
class UsageInfo(SeeddbInfo):
    """Class for storing meta information related to editing usages"""
    active = {'usage': True}
    caption = 'Usage categories'
    tab_template = 'seeddb/tabs_generic.html'
    _title = 'Usage categories'
    verbose_name = Usage._meta.verbose_name
    _navpath = [('Usage', reverse_lazy('seeddb-usage'))]
    hide_move = True
    delete_url = reverse_lazy('seeddb-usage')
    back_url = reverse_lazy('seeddb-usage')
    add_url = reverse_lazy('seeddb-usage-edit')
    bulk_url = reverse_lazy('seeddb-usage-bulk')
Beispiel #18
0
class VendorInfo(SeeddbInfo):
    """Class for storing meta information related to vendors in SeedDB"""
    active = {'vendor': True}
    caption = 'Vendors'
    verbose_name = Vendor._meta.verbose_name
    tab_template = 'seeddb/tabs_generic.html'
    _title = 'Vendors'
    _navpath = [('Vendors', reverse_lazy('seeddb-vendor'))]
    hide_move = True
    delete_url = reverse_lazy('seeddb-vendor')
    back_url = reverse_lazy('seeddb-vendor')
    add_url = reverse_lazy('seeddb-vendor-edit')
    bulk_url = reverse_lazy('seeddb-vendor-bulk')
Beispiel #19
0
class ManagementProfileInfo(SeeddbInfo):
    """Management Profile info object"""
    active = {'management_profile': True}
    caption = 'Management Profile'
    tab_template = 'seeddb/tabs_generic.html'
    _title = 'Management Profiles'
    verbose_name = ManagementProfile._meta.verbose_name
    _navpath = [('Management Profiles',
                 reverse_lazy('seeddb-management-profile'))]
    delete_url = reverse_lazy('seeddb-management-profile')
    back_url = reverse_lazy('seeddb-management-profile')
    add_url = reverse_lazy('seeddb-management-profile-edit')
    bulk_url = reverse_lazy('seeddb-management-profile-bulk')
    hide_move = True
Beispiel #20
0
class CablingInfo(SeeddbInfo):
    active = {'cabling': True}
    caption = 'Cabling'
    active_page = 'cabling'
    documentation_url = '/doc/reference/cabling_and_patch.html'
    tab_template = 'seeddb/tabs_generic.html'
    _title = 'Cabling'
    verbose_name = Cabling._meta.verbose_name
    _navpath = [('Cabling', reverse_lazy('seeddb-cabling'))]
    hide_move = True
    delete_url = reverse_lazy('seeddb-cabling')
    back_url = reverse_lazy('seeddb-cabling')
    add_url = reverse_lazy('seeddb-cabling-add')
    bulk_url = reverse_lazy('seeddb-cabling-bulk')
Beispiel #21
0
class PatchInfo(SeeddbInfo):
    """Class for storing meta information related to patches in SeedDB"""
    active = {'patch': True}
    active_page = 'patch'
    documentation_url = '/doc/reference/cabling_and_patch.html'
    caption = 'Patch'
    tab_template = 'seeddb/tabs_generic.html'
    _title = 'Patch'
    verbose_name = Patch._meta.verbose_name
    _navpath = [('Patch', reverse_lazy('seeddb-patch'))]
    hide_move = True
    delete_url = reverse_lazy('seeddb-patch')
    back_url = reverse_lazy('seeddb-patch')
    add_url = reverse_lazy('seeddb-patch-edit')
    bulk_url = reverse_lazy('seeddb-patch-bulk')
Beispiel #22
0
Datei: room.py Projekt: hmpf/nav
def room_edit(request, action='edit', room_id=None, lat=None, lon=None):
    """Controller for editing a room"""
    info = RoomInfo()
    if room_id:
        copy_url = reverse_lazy(
            info.copy_url_name, kwargs={'action': 'copy', 'room_id': room_id}
        )
    else:
        copy_url = None
    roompositions = [
        [float(r.position[0]), float(r.position[1])]
        for r in Room.objects.all()
        if r.position
    ]
    extra_context = {
        'map': True,
        'roompositions': roompositions,
        'copy_url': copy_url,
        'copy_title': 'Use this room as a template for creating a new room',
    }

    extra_context.update(info.template_context)
    return render_edit(
        request,
        Room,
        RoomForm,
        room_id,
        'seeddb-room-edit',
        lon=lon,
        lat=lat,
        extra_context=extra_context,
        action=action,
    )
Beispiel #23
0
def netbox_render(request, step, netbox, netbox_form, serial_form, group_form,
                  title):
    """Move some code to another function to make it cleaner"""
    info = NI()
    context = info.template_context
    context.update({
        'step':
        step,
        'object':
        netbox,
        'form':
        netbox_form,
        'serial_form':
        serial_form,
        'netboxgroup_form':
        group_form,
        'title':
        title,
        '_navpath': [('Edit Device', reverse_lazy('seeddb-netbox-edit'))],
        'sub_active':
        netbox and {
            'edit': True
        } or {
            'add': True
        },
        'tab_template':
        'seeddb/tabs_generic.html',
    })
    return render_to_response('seeddb/netbox_wizard.html', context,
                              RequestContext(request))
Beispiel #24
0
def prefix_edit(request, prefix_id=None):
    """Controller for editing a prefix"""
    info = PrefixInfo()
    prefix, vlan = get_prefix_and_vlan(prefix_id)
    if request.method == 'POST':
        prefix_form = PrefixForm(request.POST, instance=prefix)
        vlan_form = PrefixVlanForm(request.POST, instance=vlan)
        if prefix_form.is_valid() and vlan_form.is_valid():
            vlan = vlan_form.save()
            prefix = prefix_form.save(commit=False)
            prefix.vlan = vlan
            prefix.save()
            msg = "Saved prefix %s" % prefix.net_address
            new_message(request, msg, Messages.SUCCESS)
            return HttpResponseRedirect(
                reverse('seeddb-prefix-edit', args=(prefix.id, )))
    else:
        prefix_form = PrefixForm(instance=prefix, initial=request.GET.dict())
        vlan_form = PrefixVlanForm(instance=vlan, initial=request.GET.dict())
    if prefix_id:
        detail_page_url = reverse_lazy('prefix-details',
                                       kwargs={'prefix_id': prefix_id})
    else:
        detail_page_url = ""
    context = info.template_context
    context.update({
        'object': prefix,
        'form': prefix_form,
        'vlan_form': vlan_form,
        'sub_active': prefix and {
            'edit': True
        } or {
            'add': True
        },
        'detail_page_url': detail_page_url,
    })
    return render_edit(
        request,
        Prefix,
        PrefixForm,
        prefix_id,
        "seeddb-prefix-edit",
        template="seeddb/edit_prefix.html",
        extra_context=context,
    )
Beispiel #25
0
def netbox_render(request, step, netbox, netbox_form, serial_form, group_form,
                  title):
    """Move some code to another function to make it cleaner"""
    info = NI()
    context = info.template_context
    context.update({
        'step': step,
        'object': netbox,
        'form': netbox_form,
        'serial_form': serial_form,
        'netboxgroup_form': group_form,
        'title': title,
        '_navpath': [('Edit Device', reverse_lazy('seeddb-netbox-edit'))],
        'sub_active': netbox and {'edit': True} or {'add': True},
        'tab_template': 'seeddb/tabs_generic.html',
    })
    return render_to_response('seeddb/netbox_wizard.html', context,
                              RequestContext(request))
Beispiel #26
0
def netbox_edit(request, netbox_id=None):
    """Controller for edit or create of netbox"""
    netbox = None
    if netbox_id:
        netbox = get_object_or_404(Netbox, pk=netbox_id)

    old_netbox = copy.deepcopy(netbox)

    if request.method == 'POST':
        form = NetboxModelForm(request.POST, instance=netbox)
        if form.is_valid():
            netbox = netbox_do_save(form)
            messages.add_message(request, messages.SUCCESS, 'IP Device saved')
            log_netbox_change(request.account, old_netbox, netbox)
            return redirect(reverse('seeddb-netbox-edit', args=[netbox.pk]))
        else:
            messages.add_message(request, messages.ERROR, 'Form was not valid')
    else:
        suggestion = request.GET.get('suggestion')
        if suggestion:
            form = NetboxModelForm(instance=netbox, initial={'ip': suggestion})
        else:
            form = NetboxModelForm(instance=netbox)

    info = NI()
    context = info.template_context
    context.update({
        'object':
        netbox,
        'form':
        form,
        'title':
        get_title(netbox),
        '_navpath': [('Edit Device', reverse_lazy('seeddb-netbox-edit'))],
        'sub_active':
        netbox and {
            'edit': True
        } or {
            'add': True
        },
        'tab_template':
        'seeddb/tabs_generic.html',
    })
    return render(request, 'seeddb/netbox_wizard.html', context)
Beispiel #27
0
def vlan_edit(request, vlan_id=None):
    if vlan_id:
        detail_page_url = reverse_lazy('vlan-details',
                                       kwargs={'vlanid': vlan_id})
    else:
        detail_page_url = ""
    info = VlanInfo()
    extra_context = {
        'detail_page_url': detail_page_url,
    }
    extra_context.update(info.template_context)
    return render_edit(
        request,
        Vlan,
        VlanForm,
        vlan_id,
        'seeddb-vlan-edit',
        template='seeddb/edit_vlan.html',
        extra_context=extra_context,
    )
Beispiel #28
0
def netboxgroup_edit(request, netboxgroup_id=None):
    if netboxgroup_id:
        detail_page_url = reverse_lazy('netbox-group-detail',
                                       kwargs={'groupid': netboxgroup_id})
    else:
        detail_page_url = ""
    info = NetboxGroupInfo()
    extra_context = {
        'detail_page_url': detail_page_url,
    }
    extra_context.update(info.template_context)
    return render_edit(
        request,
        NetboxGroup,
        DeviceGroupForm,
        netboxgroup_id,
        'seeddb-netboxgroup-edit',
        template='seeddb/edit_device_group.html',
        extra_context=extra_context,
    )