def create_static_interface(request, system_pk): # TODO, make sure the user has access to this system system = get_object_or_404(System, pk=system_pk) if request.method == 'POST': interface_form = StaticInterfaceForm(request.POST) interface_form.instance.system = system a, ptr, r = None, None, None if interface_form.is_valid(): try: intr = interface_form.instance intr.system = system intr.full_clean() intr.save() except ValidationError, e: interface_form._errors['__all__'] = ErrorList(e.messages) return render(request, 'static_intr/static_intr_form.html', { 'form': interface_form, 'form_title': 'New Interface for System {0}'.format( system) }) else: return render(request, 'static_intr/static_intr_form.html', { 'form': interface_form, 'form_title': 'New Interface for System {0}'.format(system) }) messages.success(request, "Success! Interface Created.") return redirect(system)
def edit_static_interface(request, intr_pk): # TODO, make sure the user has access to this system intr = get_object_or_404(StaticInterface, pk=intr_pk) system = intr.system attrs = intr.staticintrkeyvalue_set.all() aa = get_aa(StaticIntrKeyValue()) docs = get_docstrings(StaticIntrKeyValue()) if request.method == 'POST': interface_form = StaticInterfaceForm(request.POST, instance=intr) if interface_form.is_valid(): try: # Handle key value stuff. kv = None kv = get_attrs(request.POST) update_attrs(kv, attrs, StaticIntrKeyValue, intr) intr = interface_form.save() # Everything checks out. Clean and Save all the objects. intr.clean() intr.save() except ValidationError, e: interface_form._errors['__all__'] = ErrorList(e.messages) if kv: attrs = dict_to_kv(kv, StaticIntrKeyValue) return render(request, 'static_intr/static_intr_edit.html', { 'form': interface_form, 'intr': intr, 'attrs': attrs, 'aa': json.dumps(aa), 'docs': docs, 'form_title': 'Edit Interface for System {0}'.format( system), 'domain': intr.domain }) else: return render(request, 'static_intr/static_intr_edit.html', { 'form': interface_form, 'intr': intr, 'attrs': attrs, 'aa': json.dumps(aa), 'docs': docs, 'form_title': 'Edit Interface for System {0}'.format( system), 'domain': intr.domain }) messages.success(request, "Success! Interface Updated.") return redirect(intr.get_edit_url())