def edit_microcosm(request, microcosm_id): try: responses = response_list_to_dict(grequests.map(request.view_requests)) except APIException as exc: return respond_with_error(request, exc) view_data = { 'user': Profile(responses[request.whoami_url], summary=False), 'site': Site(responses[request.site_url]), } if request.method == 'POST': form = microcosm_edit_form(request.POST) if form.is_valid(): microcosm_request = Microcosm.from_edit_form(form.cleaned_data) try: microcosm_response = microcosm_request.update(request.get_host(), request.access_token) except APIException as exc: return respond_with_error(request, exc) return HttpResponseRedirect(reverse('single-microcosm', args=(microcosm_response.id,))) else: view_data['form'] = form return render(request, microcosm_form_template, view_data) if request.method == 'GET': try: microcosm = Microcosm.retrieve(request.get_host(), id=microcosm_id, access_token=request.access_token) except APIException as exc: return respond_with_error(request, exc) view_data['form'] = microcosm_edit_form(microcosm.as_dict) return render(request, microcosm_form_template, view_data)
def delete_microcosm(request, microcosm_id): try: microcosm = Microcosm.retrieve(request.get_host(), microcosm_id, access_token=request.access_token) microcosm.delete(request.get_host(), request.access_token) except APIException as exc: return respond_with_error(request, exc) return HttpResponseRedirect(reverse(list_microcosms))
def edit_microcosm(request, microcosm_id): try: responses = response_list_to_dict(grequests.map(request.view_requests)) except APIException as exc: return respond_with_error(request, exc) view_data = { 'user': Profile(responses[request.whoami_url], summary=False), 'site': Site(responses[request.site_url]), } if request.method == 'POST': form = microcosm_edit_form(request.POST) if not form.is_valid(): view_data['form'] = form return render(request, microcosm_form_template, view_data) payload = form.cleaned_data if request.POST.get('remove_logo'): payload['logoUrl'] = '' payload['removeLogo'] = True elif request.FILES.has_key('logo'): file_request = FileMetadata.from_create_form( request.FILES['logo'], ) try: metadata = file_request.create( request.get_host(), request.access_token, width=64, height=64, ) except APIException as exc: return respond_with_error(request, exc) logo_url = get_subdomain_url( request.get_host()) + '/api/v1/files/' + metadata.file_hash if hasattr(metadata, 'file_ext'): logo_url = logo_url + '.' + metadata.file_ext payload['logoUrl'] = logo_url microcosm_request = Microcosm.from_edit_form(payload) try: microcosm_response = microcosm_request.update( request.get_host(), request.access_token) except APIException as exc: return respond_with_error(request, exc) return HttpResponseRedirect( reverse('single-microcosm', args=(microcosm_response.id, ))) if request.method == 'GET': try: microcosm = Microcosm.retrieve(request.get_host(), id=microcosm_id, access_token=request.access_token) except APIException as exc: return respond_with_error(request, exc) view_data['form'] = microcosm_edit_form(microcosm.as_dict) return render(request, microcosm_form_template, view_data)
def edit_microcosm(request, microcosm_id): try: responses = response_list_to_dict(grequests.map(request.view_requests)) except APIException as exc: return respond_with_error(request, exc) view_data = { 'user': Profile(responses[request.whoami_url], summary=False), 'site': Site(responses[request.site_url]), } if request.method == 'POST': form = microcosm_edit_form(request.POST) if not form.is_valid(): view_data['form'] = form return render(request, microcosm_form_template, view_data) payload = form.cleaned_data if request.POST.get('remove_logo'): payload['logoUrl'] = '' payload['removeLogo'] = True elif request.FILES.has_key('logo'): file_request = FileMetadata.from_create_form( request.FILES['logo'], ) try: metadata = file_request.create( request.get_host(), request.access_token, width=64, height=64, ) except APIException as exc: return respond_with_error(request, exc) logo_url = get_subdomain_url(request.get_host()) + '/api/v1/files/' + metadata.file_hash if hasattr(metadata, 'file_ext'): logo_url = logo_url + '.' + metadata.file_ext payload['logoUrl'] = logo_url microcosm_request = Microcosm.from_edit_form(payload) try: microcosm_response = microcosm_request.update(request.get_host(), request.access_token) except APIException as exc: return respond_with_error(request, exc) return HttpResponseRedirect(reverse('single-microcosm', args=(microcosm_response.id,))) if request.method == 'GET': try: microcosm = Microcosm.retrieve(request.get_host(), id=microcosm_id, access_token=request.access_token) except APIException as exc: return respond_with_error(request, exc) view_data['form'] = microcosm_edit_form(microcosm.as_dict) return render(request, microcosm_form_template, view_data)