def edit(request, did): "Updates or creates a project" user = request.user data = authorize.get_data(user=user, did=did) project = authorize.get_project(user=user, pid=data.project.id, write=False) editable = (data.owner == user) or (project.is_manager) # raise error on not editable data if not editable: raise authorize.AccessError('Data not editable by this role') # no submission if 'submit' not in request.POST: form = DataForm( dict(name=data.name, info=data.info) ) return html.template( request=request, name='data-edit.html', data=data, form=form ) # form submission form = DataForm( request.POST ) if form.is_valid(): get = form.cleaned_data.get data.name = get('name') data.info = get('info') data.save() return html.redirect("/data/details/%s/" % data.id) else: return html.template( request=request, name='data-edit.html', did=did, form=form )
def data_view(request, did): "Renders a simple data view page" # get the user information user = request.user # verify access rights data = authorize.get_data(user=user, did=did) # get the data index index = data.index() url = "/data/browser/%s/" % did return browser(request=request, index=index, url=url)
def result_upload(request, did): "Uploads a result" user = request.user data = authorize.get_data(user=user, did=did) project = authorize.get_project(user=user, pid=data.project.id, write=False) # no submission, default page if 'submit' not in request.POST: form = ResultForm() return html.template( request=request, name='result-upload.html', data=data, form=form ) # actual form submission form = ResultForm( request.POST, request.FILES ) if form.is_valid(): get = form.cleaned_data.get authorize.create_result(user=user, data=data, content=get('content'), image=get('image')) return html.redirect("/data/details/%s/" % data.id) else: # error messages will be generated user.message_set.create(message="Some form fields could NOT be validated.") return html.template( request=request, name='result-upload.html', data=data, form=form )
def details(request, did): "Renders the data view page" user = request.user data = authorize.get_data(user=user, did=did) param = html.Params(file_list=data.file_list(), image_list= data.image_list()) return html.template( request=request, name='data-details.html', data=data, param=param)