From: Łukasz Rekucki Date: Mon, 28 Sep 2009 16:44:31 +0000 (+0200) Subject: Merge branch 'zuber-view-refactor' X-Git-Url: https://git.mdrn.pl/redakcja.git/commitdiff_plain/9e0a0c89939a75eccb7b6ae925707d404b287b78?hp=9479037111e9b243268189874be167e6c445455f Merge branch 'zuber-view-refactor' --- diff --git a/apps/api/handlers/library_handlers.py b/apps/api/handlers/library_handlers.py index b30f2e78..591d4e90 100644 --- a/apps/api/handlers/library_handlers.py +++ b/apps/api/handlers/library_handlers.py @@ -175,6 +175,7 @@ class DocumentHandler(BaseHandler): 'html_url': reverse('dochtml_view', args=[udoc.id,udoc.revision]), 'text_url': reverse('doctext_view', args=[udoc.id,udoc.revision]), 'dc_url': reverse('docdc_view', args=[udoc.id,udoc.revision]), + #'gallery_url': reverse('docdc_view', args=[udoc.id,udoc.revision]), 'user_revision': udoc.revision, 'public_revision': doc.revision, } @@ -204,9 +205,6 @@ class DocumentHTMLHandler(BaseHandler): except RevisionNotFound: return response.EntityNotFound().django_response() - - - # # Document Text View # @@ -214,6 +212,7 @@ class DocumentHTMLHandler(BaseHandler): XINCLUDE_REGEXP = r"""<(?:\w+:)?include\s+[^>]*?href=("|')wlrepo://(?P[^\1]+?)\1\s*[^>]*?>""" # # +# class DocumentTextHandler(BaseHandler): allowed_methods = ('GET', 'PUT') @@ -268,13 +267,15 @@ class DocumentTextHandler(BaseHandler): f.write(json.dumps(includes)) f.close() + lib._fileadd(resolve('parts')) + # update the parts cache PartCache.update_cache(docid, current.owner,\ stored_includes, includes) # now that the parts are ok, write xml f = lib._fileopen(resolve('xml'), 'w+') - f.write(data) + f.write(data.encode('utf-8')) f.close() ndoc = None @@ -294,7 +295,9 @@ class DocumentTextHandler(BaseHandler): if ndoc: lib._rollback() raise e except RevisionNotFound, e: - return response.EntityNotFound().django_response(e) + return response.EntityNotFound(mimetype="text/plain").\ + django_response(e.message) + # # Dublin Core handlers @@ -350,16 +353,15 @@ class DocumentDublinCoreHandler(BaseHandler): "document": ndoc.id, "subview": "dc", "previous_revision": current.revision, - "updated_revision": ndoc.revision + "updated_revision": ndoc.revision, + "url": reverse("docdc_view", args=[ndoc.id, ndoc.revision]) } except Exception, e: - lib._rollback() + if ndoc: lib._rollback() raise e except RevisionNotFound: return response.EntityNotFound().django_response() - - class MergeHandler(BaseHandler): allowed_methods = ('POST',) @@ -438,4 +440,4 @@ class MergeHandler(BaseHandler): "parent_user_resivion": udoc.revision, "parent_revision": doc.revision, "revision": udoc.revision, - }) \ No newline at end of file + }) diff --git a/apps/api/response.py b/apps/api/response.py index a094f9c1..0d38a3aa 100644 --- a/apps/api/response.py +++ b/apps/api/response.py @@ -22,8 +22,8 @@ class ResponseObject(object): elif self._mime == MIME_JSON: data = json.dumps(body, default=lambda o: repr(o) ) else: - data = u"%s\n%s" % (self.MESSAGE, unicode(body)) - data = data.encode('utf-8') + # data = u"%s\n%s" % (self.MESSAGE, unicode(body)) + data = unicode(body).encode('utf-8') return HttpResponse(content=data, status=self._code, \ content_type=self._mime+'; charset=utf-8' ) diff --git a/apps/api/utils.py b/apps/api/utils.py index a52e555b..93e54be0 100644 --- a/apps/api/utils.py +++ b/apps/api/utils.py @@ -53,8 +53,5 @@ def hglibrary(func): l = MercurialLibrary(settings.REPOSITORY_PATH) kwargs['lib'] = l return func(self, *args, **kwargs) - return decorated - - - + return decorated diff --git a/apps/explorer/templatetags/explorer_tags.py b/apps/explorer/templatetags/explorer_tags.py index a797b3a2..98af0136 100755 --- a/apps/explorer/templatetags/explorer_tags.py +++ b/apps/explorer/templatetags/explorer_tags.py @@ -11,4 +11,6 @@ def bookname(fileid): ' '.join(s.capitalize() for s in part.split('_'))\ for part in fileid.split('$')) - +@register.inclusion_tag('explorer/file_tree_part.html') +def tree_part(document): + return {'document': document} \ No newline at end of file diff --git a/apps/explorer/views.py b/apps/explorer/views.py index c10e33ba..eca439ca 100644 --- a/apps/explorer/views.py +++ b/apps/explorer/views.py @@ -59,9 +59,16 @@ def ajax_login_required(view): @with_repo def file_list(request, repo): import api.forms + from api.resources import library_resource + bookform = api.forms.DocumentUploadForm() + + # short-circut the api document list + doctree = library_resource.handler.read(request) + print doctree['documents'] + return direct_to_template(request, 'explorer/file_list.html', extra_context={ - 'files': repo.documents(), 'bookform': bookform, + 'filetree': doctree['documents'], 'bookform': bookform, }) @permission_required('explorer.can_add_files') diff --git a/apps/wysiwyg/views.py b/apps/wysiwyg/views.py index e588c49e..81e1690d 100644 --- a/apps/wysiwyg/views.py +++ b/apps/wysiwyg/views.py @@ -2,4 +2,8 @@ from django.views.generic.simple import direct_to_template def index(request): - return direct_to_template(request, 'wysiwyg.html', extra_context={}) \ No newline at end of file + return direct_to_template(request, + 'wysiwyg.html', extra_context={ + 'listA': [1,2,3,4], + 'listB': [5,6,7,8], + }) \ No newline at end of file diff --git a/lib/wlrepo/mercurial_backend/library.py b/lib/wlrepo/mercurial_backend/library.py index 7a33bf38..648ebe90 100644 --- a/lib/wlrepo/mercurial_backend/library.py +++ b/lib/wlrepo/mercurial_backend/library.py @@ -97,11 +97,14 @@ class MercurialLibrary(wlrepo.Library): def get_revision(self, revid): revid = self._sanitize_string(revid) - - ctx = self._changectx(revid) + + try: + ctx = self._changectx(revid) + except mercurial.error.RepoError, e: + raise wlrepo.RevisionNotFound(revid) if ctx is None: - raise RevisionNotFound(revid) + raise wlrepo.RevisionNotFound(revid) if self._revcache.has_key(ctx): return self._revcache[ctx] @@ -123,7 +126,7 @@ class MercurialLibrary(wlrepo.Library): try: self._hgrepo[revid] return True - except error.RepoError: + except mercurial.error.RepoError: return False def document_create(self, docid): diff --git a/project/static/css/filelist.css b/project/static/css/filelist.css index 0e4f2a0e..91e9b8dc 100755 --- a/project/static/css/filelist.css +++ b/project/static/css/filelist.css @@ -27,6 +27,20 @@ width: 35%; } +ul.file-tree-part { + margin: 0.5em 1em; + padding: 0em; +} + +ul.file-tree-part li { + list-style: square; + padding: 0em; +} + +ul.file-tree-part a { + padding: 0em; +} + diff --git a/project/static/css/master.css b/project/static/css/master.css index 8bccbcc7..a3857e6e 100644 --- a/project/static/css/master.css +++ b/project/static/css/master.css @@ -37,6 +37,7 @@ body { background-color: white; } +/* ul { margin: 20px; padding: 0; @@ -46,7 +47,7 @@ li { margin: 0; padding: 0; list-style: none; -} +} */ a { text-decoration: none; diff --git a/project/templates/explorer/file_list.html b/project/templates/explorer/file_list.html index 9628f042..a9b59e4c 100644 --- a/project/templates/explorer/file_list.html +++ b/project/templates/explorer/file_list.html @@ -64,12 +64,12 @@ $(function() {

-
{% load explorer_tags %} - {% for file in files %} -

{{ file|bookname }}

+
+
diff --git a/project/templates/explorer/file_tree_part.html b/project/templates/explorer/file_tree_part.html new file mode 100644 index 00000000..f65cf28a --- /dev/null +++ b/project/templates/explorer/file_tree_part.html @@ -0,0 +1,13 @@ +{% load explorer_tags %} + +
  • + {{ document.name|bookname }} + {% if document.parts %} +
      + {% for part in document.parts %} + {% tree_part part %} + {% endfor %} +
    + {% endif %} +
  • + diff --git a/project/templates/wysiwyg.html b/project/templates/wysiwyg.html index 409e4f25..ec6eaed3 100644 --- a/project/templates/wysiwyg.html +++ b/project/templates/wysiwyg.html @@ -1,42 +1,15 @@ {% extends 'base.html' %} -{% block extrahead %} - -{% endblock %} - {% block maincontent %}

    Wysiwyg editor

    This part is not editable!
    + {% for a,b in listA,listB %} + + {{ a }} / {{ b }} + {% endfor %} +

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse a urna eu enim rutrum elementum nec sed nibh. Quisque sed tortor @@ -59,34 +32,4 @@

    Donec semper tempus ante, eget gravida erat varius et. Suspendisse aliquam rutrum nunc ac pulvinar. Aliquam erat volutpat. Nulla consectetur ultricies imperdiet. Nulla tincidunt est vitae augue porttitor a faucibus odio facilisis. In nec nisl odio. Aliquam et libero tortor, eu tincidunt mi. Vivamus suscipit erat sed mi hendrerit fringilla. Integer iaculis tempus nulla, at egestas velit faucibus ut. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Vestibulum vel massa enim. Aliquam erat volutpat. In ligula tortor, fermentum eu suscipit at, posuere vel nunc. Nullam nibh magna, sollicitudin at semper et, mattis ut quam. Curabitur accumsan semper elit ac posuere. Sed sit amet lorem tortor, vel porttitor justo. Fusce odio metus, bibendum ut bibendum sit amet, luctus a ipsum.

    -{% endblock %} - -{% block extrabody %} - {% endblock %} \ No newline at end of file