def show_by_model(request, object_id): system_list = models.UnmanagedSystem.objects.filter( server_model=models.ServerModel.objects.get(id=object_id)) if 'show_all' in request.GET: paginator = Paginator(system_list, system_list.count()) else: paginator = Paginator(system_list, 25) if 'page' in request.GET: page = request.GET.get('page') else: page = 1 try: systems = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. systems = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. systems = paginator.page(paginator.num_pages) return render_to_response('user_systems/unmanagedsystem_list.html', { 'user_system_list': systems, 'show_all': True, }, RequestContext(request))
def owner_show(request, object_id): owner = get_object_or_404(models.Owner, pk=object_id) return render_to_response('user_systems/owner_detail.html', { 'owner': owner, }, RequestContext(request))
def user_system_quicksearch_ajax(request): """Returns systems sort table""" search = request.POST['quicksearch'] filters = [ Q(**{"%s__icontains" % t: search}) for t in models.UnmanagedSystem.search_fields ] systems = models.UnmanagedSystem.objects.filter( reduce(operator.or_, filters)) # For some reason systems are referencing server model classes that do not # exist. I have no idea how this happened but it did. If accessing the # server model causes and error set the server_model to None so we don't # get an exception later during page loads. # TOOD: Clean up defunt server model references for s in systems: try: s.server_model except: s.server_model = None return render_to_response('user_systems/quicksearch.html', { 'systems': systems, 'BUG_URL': BUG_URL }, RequestContext(request))
def unmanaged_system_delete(request, object_id): #Dummy comment user_system = get_object_or_404(models.UnmanagedSystem, pk=object_id) if request.method == 'POST': try: acl = UnmanagedSystemACL(request) acl.check_delete() user_system_notes = user_system.notes user_system.delete() send_mail('System Deleted', '%s Deleted by %s\nSystem Notes:\n%s' % (user_system, request.user.username, user_system_notes), FROM_EMAIL_ADDRESS, UNAUTHORIZED_EMAIL_ADDRESS, fail_silently=False) return HttpResponseRedirect(reverse('user-system-list')) except PermissionDenied, e: send_mail('Unauthorized System Delete Attempt', 'Unauthorized Attempt to Delete %s by %s' % (user_system, request.user.username), FROM_EMAIL_ADDRESS, UNAUTHORIZED_EMAIL_ADDRESS, fail_silently=False) return render_to_response( 'user_systems/unauthorized_delete.html', { 'content': 'You do not have permission to delete this system', }, RequestContext(request))
def racks(request): from forms import RackFilterForm filter_form = RackFilterForm(request.GET) racks = models.SystemRack.objects.select_related('site') system_query = Q() if 'site' in request.GET: site_id = request.GET['site'] has_query = True if len(site_id) > 0 and int(site_id) > 0: site = Site.objects.get(id=site_id) filter_form.fields['rack'].choices = [('', 'ALL')] + [ (m.id, m.site.full_name + ' ' + m.name) for m in models.SystemRack.objects.filter( site=site).order_by('name') ] else: has_query = False if filter_form.is_valid(): if filter_form.cleaned_data['rack']: racks = racks.filter(id=filter_form.cleaned_data['rack']) has_query = True if filter_form.cleaned_data['site'] and int( filter_form.cleaned_data['site']) > 0: racks = racks.filter(site=filter_form.cleaned_data['site']) has_query = True if filter_form.cleaned_data['allocation']: system_query = system_query & Q( allocation=filter_form.cleaned_data['allocation']) has_query = True filter_status = filter_form.cleaned_data['status'] if filter_status: system_query &= Q(system_status=filter_form.cleaned_data['status']) has_query = True if not filter_form.cleaned_data['show_decommissioned']: decommissioned = models.SystemStatus.objects.get( status='decommissioned') system_query = system_query & ~Q(system_status=decommissioned) ##Here we create an object to hold decommissioned systems for the following filter if not has_query: racks = [] else: racks = [(k, list( k.system_set.select_related( 'server_model', 'allocation', 'system_status', ).filter(system_query).order_by('rack_order'))) for k in racks] return render_to_response( 'systems/racks.html', { 'racks': racks, 'filter_form': filter_form, 'read_only': getattr(request, 'read_only', False), }, RequestContext(request))
def get_key_value_store(request, id): system = models.System.objects.get(id=id) key_value_store = models.KeyValue.objects.filter(obj=system) return render_to_response('systems/key_value_store.html', { 'key_value_store': key_value_store, }, RequestContext(request))
def show_by_model(request, object_id): system_list = models.UnmanagedSystem.objects.filter(server_model=models.ServerModel.objects.get(id=object_id)) if 'show_all' in request.GET: paginator = Paginator(system_list, system_list.count()) else: paginator = Paginator(system_list, 25) if 'page' in request.GET: page = request.GET.get('page') else: page = 1 try: systems = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. systems = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. systems = paginator.page(paginator.num_pages) return render_to_response('user_systems/unmanagedsystem_list.html', { 'user_system_list': systems, 'show_all': True, }, RequestContext(request))
def owner_list(request): owners = models.Owner.objects.select_related('user_location').all() upgradeable_users = models.Owner.objects.filter(unmanagedsystem__date_purchased__lt=datetime.now() - timedelta(days=730)).distinct().count() return render_to_response('user_systems/owner_list.html', { 'owner_list': owners, 'upgradeable_users':upgradeable_users, }, RequestContext(request))
def home(request): """Index page""" return render_to_response( 'systems/index.html', { 'read_only': getattr(request, 'read_only', False), #'is_build': getattr(request.user.groups.all(), 'build', False), })
def allocation_list(request): object_list = models.Allocation.objects.all() return render_to_response( 'systems/allocation_list.html', { 'object_list': object_list, }, RequestContext(request))
def server_model_list(request): object_list = models.ServerModel.objects.all() return render_to_response( 'systems/servermodel_list.html', { 'object_list': object_list, }, RequestContext(request))
def allocation_show(request, object_id): object = get_object_or_404(models.Allocation, pk=object_id) return render_to_response( 'systems/allocation_detail.html', { 'object': object, }, RequestContext(request))
def owner_delete(request, object_id): owner = get_object_or_404(models.Owner, pk=object_id) if request.method == "POST": owner.delete() return HttpResponseRedirect('/user_systems/owners/') else: return render_to_response('user_systems/owner_confirm_delete.html', { 'owner': owner, }, RequestContext(request))
def owner_list(request): owners = models.Owner.objects.select_related('user_location').all() upgradeable_users = models.Owner.objects.filter( unmanagedsystem__date_purchased__lt=datetime.now() - timedelta(days=730)).distinct().count() return render_to_response('user_systems/owner_list.html', { 'owner_list': owners, 'upgradeable_users': upgradeable_users, }, RequestContext(request))
def get_network_adapters(request, id): adapters = models.NetworkAdapter.objects.filter(system_id=id) return render_to_response('systems/network_adapters.html', { 'adapters': adapters, 'switches': models.System.objects.filter(is_switch=1), 'dhcp_scopes': models.DHCP.objects.all() #'read_only': getattr(request, 'read_only', False), }, RequestContext(request))
def server_model_show(request, object_id): object = get_object_or_404(models.ServerModel, pk=object_id) return render_to_response( 'systems/servermodel_detail.html', { 'object': object, }, RequestContext(request))
def license_delete(request, object_id): license = get_object_or_404(models.UserLicense, pk=object_id) try: license.delete() return HttpResponseRedirect(reverse('license-list')) except PermissionDenied, e: return render_to_response( 'user_systems/unauthorized_delete.html', { 'content': 'You do not have permission to delete this license', }, RequestContext(request))
def license_delete(request, object_id): license = get_object_or_404(models.UserLicense, pk=object_id) try: license.delete() return HttpResponseRedirect( reverse('license-list') ) except PermissionDenied, e: return render_to_response('user_systems/unauthorized_delete.html', { 'content': 'You do not have permission to delete this license', }, RequestContext(request))
def rack_delete(request, object_id): from models import SystemRack rack = get_object_or_404(SystemRack, pk=object_id) if request.method == "POST": rack.delete() return HttpResponseRedirect('/systems/racks/') else: return render_to_response('systems/rack_confirm_delete.html', { 'rack': rack, }, RequestContext(request))
def user_system_show_by_asset_tag(request, id): system = get_object_or_404(models.UnmanagedSystem, asset_tag=id) #system = models.UnmanagedSystem.objects.select_related( # 'owner', 'server_model', 'operating_system' # ).filter(asset_tag=id).order_by('owner__name') #system = get_object_or_404(models.UnmanagedSystem return render_to_response('user_systems/unmanagedsystem_detail.html', { 'user_system': system, }, RequestContext(request))
def get_network_adapters(request, id): adapters = models.NetworkAdapter.objects.filter(system_id=id) return render_to_response( 'systems/network_adapters.html', { 'adapters': adapters, 'switches': models.System.objects.filter(is_switch=1), 'dhcp_scopes': models.DHCP.objects.all() #'read_only': getattr(request, 'read_only', False), }, RequestContext(request))
def owners_quicksearch_ajax(request): """Returns systems sort table""" search = request.POST['quicksearch'] filters = [ Q(**{"%s__icontains" % t: search}) for t in models.Owner.search_fields ] owners = models.Owner.objects.filter(reduce(operator.or_, filters)) return render_to_response('user_systems/owners_quicksearch.html', { 'owners': owners, }, RequestContext(request))
def system_rack_elevation(request, rack_id): r = Rack(rack_id) data = { 'rack_ru': r.ru, 'ethernet_patch_panels_24': r.ethernet_patch_panel_24, 'ethernet_patch_panels_48': r.ethernet_patch_panel_48, 'systems': r.systems, } data = json.dumps(data) return render_to_response('systems/rack_elevation.html', { 'data': data, }, RequestContext(request))
def racks(request): from forms import RackFilterForm filter_form = RackFilterForm(request.GET) racks = models.SystemRack.objects.select_related('site') system_query = Q() if 'site' in request.GET: site_id = request.GET['site'] has_query = True if len(site_id) > 0 and int(site_id) > 0: site = Site.objects.get(id=site_id) filter_form.fields['rack'].choices = [('','ALL')] + [ (m.id, m.site.full_name + ' ' + m.name) for m in models.SystemRack.objects.filter(site=site).order_by('name') ] else: has_query = False if filter_form.is_valid(): if filter_form.cleaned_data['rack']: racks = racks.filter(id=filter_form.cleaned_data['rack']) has_query = True if filter_form.cleaned_data['site'] and int(filter_form.cleaned_data['site']) > 0: racks = racks.filter(site=filter_form.cleaned_data['site']) has_query = True if filter_form.cleaned_data['allocation']: system_query = system_query & Q(allocation=filter_form.cleaned_data['allocation']) has_query = True filter_status = filter_form.cleaned_data['status'] if filter_status: system_query &= Q(system_status=filter_form.cleaned_data['status']) has_query = True if not filter_form.cleaned_data['show_decommissioned']: decommissioned = models.SystemStatus.objects.get(status='decommissioned') system_query = system_query & ~Q(system_status=decommissioned) ##Here we create an object to hold decommissioned systems for the following filter if not has_query: racks = [] else: racks = [(k, list(k.system_set.select_related( 'server_model', 'allocation', 'system_status', ).filter(system_query).order_by('rack_order'))) for k in racks] return render_to_response('systems/racks.html', { 'racks': racks, 'filter_form': filter_form, 'read_only': getattr(request, 'read_only', False), }, RequestContext(request))
def system_rack_elevation(request, rack_id): r = Rack(rack_id) data = { 'rack_ru': r.ru, 'ethernet_patch_panels_24': r.ethernet_patch_panel_24, 'ethernet_patch_panels_48': r.ethernet_patch_panel_48, 'systems': r.systems, } data = json.dumps(data) return render_to_response('systems/rack_elevation.html', { 'data':data, }, RequestContext(request))
def owners_quicksearch_ajax(request): """Returns systems sort table""" search = request.POST['quicksearch'] filters = [Q(**{"%s__icontains" % t: search}) for t in models.Owner.search_fields] owners = models.Owner.objects.filter( reduce(operator.or_, filters)) return render_to_response('user_systems/owners_quicksearch.html', { 'owners': owners, }, RequestContext(request))
def license_new(request): initial = {} if request.method == 'POST': form = forms.UserLicenseForm(request.POST, initial=initial) if form.is_valid(): form.save() return HttpResponseRedirect('/user_systems/licenses/') else: form = forms.UserLicenseForm(initial=initial) return render_to_response('user_systems/userlicense_form.html', { 'form': form, }, RequestContext(request))
def owner_create(request): initial = {} if request.method == 'POST': form = forms.OwnerForm(request.POST, initial=initial) if form.is_valid(): form.save() return HttpResponseRedirect('/user_systems/owners/') else: form = forms.OwnerForm(initial=initial) return render_to_response('user_systems/owner_form.html', { 'form': form, }, RequestContext(request))
def system_view(request, template, data, instance=None): if request.method == 'POST': form = SystemForm(request.POST, instance=instance) if form.is_valid(): s = form.save(commit=False) s.save(request=request) return redirect(system_show, s.pk) else: form = SystemForm(instance=instance) data['form'] = form return render_to_response(template, data, request)
def license_edit(request, object_id): license = get_object_or_404(models.UserLicense, pk=object_id) if request.method == 'POST': form = forms.UserLicenseForm(request.POST, instance=license) if form.is_valid(): form.save() return HttpResponseRedirect('/user_systems/licenses/') else: form = forms.UserLicenseForm(instance=license) return render_to_response('user_systems/userlicense_form.html', { 'form': form, }, RequestContext(request))
def owner_edit(request, object_id): owner = get_object_or_404(models.Owner, pk=object_id) initial = {} if request.method == 'POST': form = forms.OwnerForm(request.POST, instance=owner) if form.is_valid(): form.save() return HttpResponseRedirect('/user_systems/owners/') else: form = forms.OwnerForm(instance=owner) return render_to_response('user_systems/owner_form.html', { 'form': form, }, RequestContext(request))
def rack_new(request): from forms import SystemRackForm initial = {} if request.method == 'POST': form = SystemRackForm(request.POST, initial=initial) if form.is_valid(): form.save() return HttpResponseRedirect('/systems/racks/') else: form = SystemRackForm(initial=initial) return render_to_response('generic_form.html', { 'form': form, }, RequestContext(request))
def fillin_csv(request): """Important columns: 4: serial number 6: employee 7: location """ if request.method == 'POST': f = forms.CSVForm(request.POST, request.FILES) if f.is_valid(): response = HttpResponse(mimetype='text/csv') response[ 'Content-Disposition'] = 'attachment; filename=ComputerEquipment.csv' in_csv = csv.reader(f.cleaned_data['csv'].read().splitlines()) out_csv = csv.writer(response) for row in in_csv: if row[4]: serials = [i.strip() for i in row[4].split(';')] owners = [ str(i.owner) for i in models.UnmanagedSystem.objects.filter( serial__in=serials).filter(owner__isnull=False) ] locations = [ str(i.system_rack.location) for i in system_models.System.objects.filter( serial__in=serials).filter( system_rack__location__isnull=False) ] locations += [ str(i.owner.user_location) for i in models.UnmanagedSystem.objects.filter( serial__in=serials).filter( owner__user_location__isnull=False) ] if owners: row[6] = "; ".join(owners) if locations: row[7] = "; ".join(locations) out_csv.writerow(row) return response else: f = forms.CSVForm() return render_to_response('user_systems/fillin_csv.html', {'form': f}, RequestContext(request))
def allocation_edit(request, object_id): allocation = get_object_or_404(models.Allocation, pk=object_id) from forms import AllocationForm initial = {} if request.method == 'POST': form = AllocationForm(request.POST, instance=allocation) if form.is_valid(): form.save() return HttpResponseRedirect('/systems/allocations/') else: form = AllocationForm(instance=allocation) return render_to_response('generic_form.html', { 'form': form, }, RequestContext(request))
def server_model_edit(request, object_id): server_model = get_object_or_404(models.ServerModel, pk=object_id) from forms import ServerModelForm initial = {} if request.method == 'POST': form = ServerModelForm(request.POST, instance=server_model) if form.is_valid(): form.save() return HttpResponseRedirect('/systems/server_models/') else: form = ServerModelForm(instance=server_model) return render_to_response('generic_form.html', { 'form': form, }, RequestContext(request))
def rack_edit(request, object_id): rack = get_object_or_404(models.SystemRack, pk=object_id) from forms import SystemRackForm initial = {} if request.method == 'POST': form = SystemRackForm(request.POST, instance=rack) if form.is_valid(): form.save() return HttpResponseRedirect('/systems/racks/') else: form = SystemRackForm(instance=rack) return render_to_response('systems/generic_form.html', { 'form': form, }, RequestContext(request))
def user_system_quicksearch_ajax(request): """Returns systems sort table""" from settings import BUG_URL as BUG_URL search = request.POST['quicksearch'] print request.POST filters = [Q(**{"%s__icontains" % t: search}) for t in models.UnmanagedSystem.search_fields] systems = models.UnmanagedSystem.objects.filter( reduce(operator.or_, filters)) return render_to_response('user_systems/quicksearch.html', { 'systems': systems, 'BUG_URL': BUG_URL, }, RequestContext(request))
def system_view(request, template, data, instance=None): if request.method == 'POST': form = SystemForm(request.POST, instance=instance) if form.is_valid(): s = form.save(commit=False) s.save(request=request) return redirect(system_show, s.pk) else: form = SystemForm(instance=instance) data['form'] = form return render_to_response(template, data, request )
def delete_key_value(request, id, system_id): kv = models.KeyValue.objects.get(id=id) matches = re.search('^nic\.(\d+)', str(kv.key) ) if matches: try: existing_dhcp_scope = models.KeyValue.objects.filter(obj=kv.system).filter(key='nic.%s.dhcp_scope.0' % matches.group(1))[0].value models.ScheduledTask(task=existing_dhcp_scope, type='dhcp').save() except: pass kv.delete() system = models.System.objects.get(id=system_id) key_value_store = models.KeyValue.objects.filter(obj=system) return render_to_response('systems/key_value_store.html', { 'key_value_store': key_value_store, }, RequestContext(request))
def unmanaged_system_delete(request, object_id): #Dummy comment user_system = get_object_or_404(models.UnmanagedSystem, pk=object_id) if request.method == 'POST': try: acl = UnmanagedSystemACL(request) acl.check_delete() user_system_notes = user_system.notes user_system.delete() send_mail('System Deleted', '%s Deleted by %s\nSystem Notes:\n%s' % (user_system, request.user.username, user_system_notes), FROM_EMAIL_ADDRESS, UNAUTHORIZED_EMAIL_ADDRESS, fail_silently=False) return HttpResponseRedirect( reverse('user-system-list') ) except PermissionDenied, e: send_mail('Unauthorized System Delete Attempt', 'Unauthorized Attempt to Delete %s by %s' % (user_system, request.user.username), FROM_EMAIL_ADDRESS, UNAUTHORIZED_EMAIL_ADDRESS, fail_silently=False) return render_to_response('user_systems/unauthorized_delete.html', { 'content': 'You do not have permission to delete this system', }, RequestContext(request))
def system_delete(request, id): system = get_object_or_404(models.System, pk=id) try: kv_length = len(system.keyvalue_set.all()) except AttributeError: kv_length = 0 if kv_length == 0: try: system.delete() except IntegrityError, e: e_str = "Key/Value store exists" content = "Unable to Delete system: {message}".format(message=e) return render_to_response('systems/generic_output.html', { 'system': system, 'content': content, }, RequestContext(request))
def delete_key_value(request, id, system_id): kv = models.KeyValue.objects.get(id=id) matches = re.search('^nic\.(\d+)', str(kv.key)) if matches: try: existing_dhcp_scope = models.KeyValue.objects.filter( obj=kv.system).filter(key='nic.%s.dhcp_scope.0' % matches.group(1))[0].value models.ScheduledTask(task=existing_dhcp_scope, type='dhcp').save() except: pass kv.delete() system = models.System.objects.get(id=system_id) key_value_store = models.KeyValue.objects.filter(obj=system) return render_to_response('systems/key_value_store.html', { 'key_value_store': key_value_store, }, RequestContext(request))
def rack_new(request): from forms import SystemRackForm initial = {} if request.method == 'POST': form = SystemRackForm(request.POST, initial=initial) if form.is_valid(): form.save() return HttpResponseRedirect('/systems/racks/') else: form = SystemRackForm(initial=initial) return render_to_response( 'generic_form.html', { 'form': form, }, RequestContext(request))
def fillin_csv(request): """Important columns: 4: serial number 6: employee 7: location """ if request.method == 'POST': f = forms.CSVForm(request.POST, request.FILES) if f.is_valid(): response = HttpResponse(mimetype='text/csv') response['Content-Disposition'] = 'attachment; filename=ComputerEquipment.csv' in_csv = csv.reader(f.cleaned_data['csv'].read().splitlines()) out_csv = csv.writer(response) for row in in_csv: if row[4]: serials = [i.strip() for i in row[4].split(';')] owners = [ str(i.owner) for i in models.UnmanagedSystem.objects.filter( serial__in=serials).filter(owner__isnull=False)] locations = [ str(i.system_rack.location) for i in system_models.System.objects.filter( serial__in=serials).filter(system_rack__location__isnull=False)] locations += [ str(i.owner.user_location) for i in models.UnmanagedSystem.objects.filter( serial__in=serials).filter(owner__user_location__isnull=False)] if owners: row[6] = "; ".join(owners) if locations: row[7] = "; ".join(locations) out_csv.writerow(row) return response else: f = forms.CSVForm() return render_to_response( 'user_systems/fillin_csv.html', {'form': f}, RequestContext(request))
def system_show_by_asset_tag(request, id): system = get_object_or_404(models.System, asset_tag=id) is_release = True if system.allocation is 'release': is_release = True if (system.serial and system.server_model and system.server_model.part_number and system.server_model.vendor == "HP"): system.warranty_link = "http://www11.itrc.hp.com/service/ewarranty/warrantyResults.do?productNumber=%s&serialNumber1=%s&country=US" % (system.server_model.part_number, system.serial) return render_to_response('systems/system_show.html', { 'system': system, 'is_release': True, 'read_only': getattr(request, 'read_only', False), }, RequestContext(request))
def server_model_edit(request, object_id): server_model = get_object_or_404(models.ServerModel, pk=object_id) from forms import ServerModelForm initial = {} if request.method == 'POST': form = ServerModelForm(request.POST, instance=server_model) if form.is_valid(): form.save() return HttpResponseRedirect('/systems/server_models/') else: form = ServerModelForm(instance=server_model) return render_to_response( 'generic_form.html', { 'form': form, }, RequestContext(request))
def rack_edit(request, object_id): rack = get_object_or_404(models.SystemRack, pk=object_id) from forms import SystemRackForm initial = {} if request.method == 'POST': form = SystemRackForm(request.POST, instance=rack) if form.is_valid(): form.save() return HttpResponseRedirect('/systems/racks/') else: form = SystemRackForm(instance=rack) return render_to_response( 'systems/generic_form.html', { 'form': form, }, RequestContext(request))
def system_show_by_asset_tag(request, id): system = get_object_or_404(models.System, asset_tag=id) is_release = True if system.allocation is 'release': is_release = True if (system.serial and system.server_model and system.server_model.part_number and system.server_model.vendor == "HP"): system.warranty_link = "http://www11.itrc.hp.com/service/ewarranty/warrantyResults.do?productNumber=%s&serialNumber1=%s&country=US" % ( system.server_model.part_number, system.serial) return render_to_response( 'systems/system_show.html', { 'system': system, 'is_release': True, 'read_only': getattr(request, 'read_only', False), }, RequestContext(request))
def system_quicksearch_ajax(request): """Returns systems sort table""" search_term = request.POST['quicksearch'] search_q = Q(hostname__icontains=search_term) search_q |= Q(serial__contains=search_term) search_q |= Q(notes__contains=search_term) search_q |= Q(asset_tag=search_term) systems = models.System.with_related.filter(search_q).order_by('hostname') if 'is_test' not in request.POST: return render_to_response( 'systems/quicksearch.html', { 'systems': systems, 'read_only': getattr(request, 'read_only', False), }, RequestContext(request)) else: from django.core import serializers systems_data = serializers.serialize("json", systems) return HttpResponse(systems_data)
def system_quicksearch_ajax(request): """Returns systems sort table""" search_term = request.POST['quicksearch'] search_q = Q(hostname__icontains=search_term) search_q |= Q(serial__contains=search_term) search_q |= Q(notes__contains=search_term) search_q |= Q(asset_tag=search_term) systems = models.System.with_related.filter(search_q).order_by('hostname') if 'is_test' not in request.POST: return render_to_response('systems/quicksearch.html', { 'systems': systems, 'read_only': getattr(request, 'read_only', False), }, RequestContext(request)) else: from django.core import serializers systems_data = serializers.serialize("json", systems) return HttpResponse(systems_data)
def license_quicksearch_ajax(request): """Returns systems sort table""" # Try to get quicksearch from post # If fail, try to get from GET # return None otherwise search = request.GET.get('quicksearch', None) if search: filters = [ Q(**{"%s__icontains" % t: search}) for t in models.UserLicense.search_fields ] licenses = models.UserLicense.objects.filter( reduce(operator.or_, filters)) else: licenses = None return render_to_response('user_systems/license_quicksearch.html', { 'licenses': licenses, }, RequestContext(request))
def license_index(request): from settings import BUG_URL as BUG_URL system_list = models.UserLicense.objects.select_related('owner').all() paginator = Paginator(system_list, 25) if 'page' in request.GET: page = request.GET.get('page') else: page = 1 try: systems = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. systems = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. systems = paginator.page(paginator.num_pages) return render_to_response('user_systems/userlicense_list.html', { 'license_list': systems, 'BUG_URL': BUG_URL }, RequestContext(request))
def create_key_value(request, id): system = models.System.objects.get(id=id) key = 'None' value = 'None' if 'key' in request.POST: key = request.POST['key'].strip() if 'value' in request.POST: value = request.POST['value'].strip() kv = models.KeyValue(obj=system, key=key, value=value) print "Key is %s: Value is %s." % (key, value) kv.save() matches = re.search('^nic\.(\d+)', str(kv.key)) if matches: try: existing_dhcp_scope = models.KeyValue.objects.filter( obj=kv.system).filter(key='nic.%s.dhcp_scope.0' % matches.group(1))[0].value models.ScheduledTask(task=existing_dhcp_scope, type='dhcp').save() except: pass key_value_store = models.KeyValue.objects.filter(obj=system) return render_to_response('systems/key_value_store.html', { 'key_value_store': key_value_store, }, RequestContext(request))