+@permission_required('explorer.can_add_files')
+@with_repo
+def file_upload(request, repo):
+ from api.resources import library_resource
+ from api.forms import DocumentUploadForm
+ from django.http import HttpRequest, HttpResponseRedirect
+
+ response = library_resource.handler.create(request)
+
+ if isinstance(response, HttpResponse):
+ data = json.loads(response.content)
+
+ if response.status_code == 201:
+ return HttpResponseRedirect( \
+ reverse("editor_view", args=[ data['name'] ]) )
+ else:
+ bookform = DocumentUploadForm(request.POST, request.FILES)
+ bookform.is_valid()
+
+ return direct_to_template(request, 'explorer/file_upload.html',
+ extra_context={'bookform': bookform } )
+
+
+@login_required
+def print_html(request, **kwargs):
+ from api.resources import document_html_resource
+
+ kwargs['stylesheet'] = 'legacy'
+
+ output = document_html_resource.handler.read(request, **kwargs)
+
+ if isinstance(output, HttpResponse):
+ # errors = json.loads(output.content)
+ output.mimetype = "text/plain"
+ return output
+
+ return direct_to_template(request, 'html4print.html',
+ extra_context={'output': output, 'docid': kwargs['docid']},
+ mimetype="text/html" )
+
+
+def _add_references(message, issues):
+ return message + " - " + ", ".join(map(lambda issue: "Refs #%d" % issue['id'], issues))
+
+def _get_issues_for_file(fileid):
+ uf = None
+ try:
+ uf = urllib2.urlopen(settings.REDMINE_URL + 'publications/issues/%s.json' % fileid)
+ return json.loads(uf.read())
+ except urllib2.HTTPError:
+ return []
+ finally:
+ if uf: uf.close()
+
+# =================
+# = Pull requests =
+# =================
+def pull_requests(request):
+ from explorer.models import PullRequest
+
+ objects = PullRequest.objects.order_by('status')
+
+ if not request.user.has_perm('explorer.book.can_share'):
+ objects = objects.filter(comitter=request.user)
+
+
+ return direct_to_template(request, 'manager/pull_request.html',
+ extra_context = {'objects': objects} )