Generated: Sat 2012-06-23 14:53 SGT
Source file: /Users/martin/Repos/django-online-docs/online_docs/views.py
Stats: 28 executed, 2 missed, 5 excluded, 16 ignored
"""Views for the ``online_docs`` app."""import osfrom django.conf import settingsfrom django.core.urlresolvers import resolvefrom django.http import Http404from django.views.generic import TemplateViewclass OnlineDocsView(TemplateView): """View that displays the docs for the current URL path.""" def dispatch(self, request, *args, **kwargs): self.path = request.GET.get('path') if not self.path: raise Http404 return super(OnlineDocsView, self).dispatch(request, *args, **kwargs) def get_context_data(self, **kwargs): ctx = super(OnlineDocsView, self).get_context_data(**kwargs) document_name = self.get_document_name() file_path = self.get_document_file_path(document_name) document_content = self.get_document_content(file_path) ctx.update({ 'docs': document_content, 'document_name': document_name, 'DEBUG': settings.DEBUG, }) return ctx def get_document_name(self): url = resolve(self.path) document_name = '%s.md' % url.view_name.replace(':', '_') return document_name def get_document_file_path(self, document_name): file_path = os.path.join(settings.STATIC_ROOT, 'online_docs', document_name) return file_path def get_document_content(self, file_path): try: f = open(file_path, 'r') return f.read() except IOError: return None def get_template_names(self): if self.request.is_ajax(): return ['online_docs/partials/online_docs.html', ] else: return ['online_docs/online_docs.html', ]