5 from cm.views import get_keys_from_dict, get_textversion_by_keys_or_404, get_text_by_keys_or_404, get_textversion_by_keys_or_404, redirect |
5 from cm.views import get_keys_from_dict, get_textversion_by_keys_or_404, get_text_by_keys_or_404, get_textversion_by_keys_or_404, redirect |
6 from cm.security import get_texts_with_perm, has_perm, get_viewable_comments, \ |
6 from cm.security import get_texts_with_perm, has_perm, get_viewable_comments, \ |
7 has_perm_on_text_api |
7 has_perm_on_text_api |
8 from cm.security import get_viewable_comments |
8 from cm.security import get_viewable_comments |
9 from cm.utils.embed import embed_html |
9 from cm.utils.embed import embed_html |
10 from cm.views.create import CreateTextContentForm, create_text |
10 from cm.views.create import CreateTextContentForm, create_text, CreateTextImportForm, _text_create_import |
11 from cm.views.texts import client_exchange, text_view_frame, text_view_comments, text_export |
11 from cm.views.texts import client_exchange, text_view_frame, text_view_comments, text_export |
12 from cm.views.feeds import text_feed |
12 from cm.views.feeds import text_feed |
13 from piston.utils import validate |
13 from piston.utils import validate |
14 from django.conf import settings |
14 from django.conf import settings |
15 from django.db.models import F |
15 from django.db.models import F |
207 |
207 |
208 def create(self, request, key): |
208 def create(self, request, key): |
209 return text_pre_edit(request, key=key) |
209 return text_pre_edit(request, key=key) |
210 |
210 |
211 from cm.views.texts import text_edit |
211 from cm.views.texts import text_edit |
212 |
212 |
213 class TextEditHandler(BaseHandler): |
213 class TextEditHandler(BaseHandler): |
214 allowed_methods = ('POST', ) |
214 allowed_methods = ('POST', ) |
215 type = "Text methods" |
215 type = "Text methods" |
216 title = "Edit text" |
216 title = "Edit text" |
217 desc = "Update text identified by `key`." |
217 desc = "Update text identified by `key`." |
427 no_display = True |
427 no_display = True |
428 |
428 |
429 @has_perm_on_text_api('can_view_text') |
429 @has_perm_on_text_api('can_view_text') |
430 def create(self, request, key, format, download, whichcomments, withcolor): |
430 def create(self, request, key, format, download, whichcomments, withcolor): |
431 return text_export(request, key, format, download, whichcomments, withcolor, adminkey=None) |
431 return text_export(request, key, format, download, whichcomments, withcolor, adminkey=None) |
|
432 |
|
433 class ImportHandler(BaseHandler): |
|
434 allowed_methods = ('POST', ) |
|
435 type = "Text methods" |
|
436 title = "Import text and comments" |
|
437 desc = "Import a previously exported text, along with comments and attachments in XML format." |
|
438 args = """<br /> |
|
439 `xml`: Previously exported XML file of text, comments and attachments<br /> |
|
440 """ |
|
441 |
|
442 @staticmethod |
|
443 def endpoint(): |
|
444 return URL_PREFIX + '/import/' |
|
445 |
|
446 |
|
447 def create(self, request): |
|
448 text, res = _text_create_import(request, CreateTextImportForm) |
|
449 text_version = text.last_text_version |
|
450 return {'key' : text.key , 'version_key' : text.last_text_version.key, 'html': text_version.content} |
432 |
451 |
433 class AnonymousCommentsHandler(AnonymousBaseHandler): |
452 class AnonymousCommentsHandler(AnonymousBaseHandler): |
434 allowed_methods = ('GET',) |
453 allowed_methods = ('GET',) |
435 type = "Comment methods" |
454 type = "Comment methods" |
436 fields = ('id_key', 'title', 'format', 'content', 'created', 'name', ('text_version' , ('key', ('text', ('key',))) )) |
455 fields = ('id_key', 'title', 'format', 'content', 'created', 'name', ('text_version' , ('key', ('text', ('key',))) )) |