manager: add preliminary page export to json (#6197)
This commit is contained in:
parent
ac28c3eff2
commit
c9fea9fecb
|
@ -4,6 +4,7 @@
|
|||
|
||||
{% block appbar %}
|
||||
<h2>Page - {{ object.title }}</h2>
|
||||
<a href="{% url 'combo-manager-page-export' pk=object.id %}">export</a>
|
||||
<a rel="popup" href="{% url 'combo-manager-page-edit' pk=object.id %}">edit</a>
|
||||
{% endblock %}
|
||||
|
||||
|
|
|
@ -27,6 +27,8 @@ urlpatterns = patterns('combo.views',
|
|||
name='combo-manager-page-view'),
|
||||
url(r'^pages/(?P<pk>\w+)/edit$', views.page_edit,
|
||||
name='combo-manager-page-edit'),
|
||||
url(r'^pages/(?P<pk>\w+)/export$', views.page_export,
|
||||
name='combo-manager-page-export'),
|
||||
url(r'^pages/(?P<page_pk>\w+)/add-cell-to-(?P<ph_key>\w+)/(?P<cell_type>\w+)/(?P<variant>[\w-]+)/$',
|
||||
views.page_add_cell,
|
||||
name='combo-manager-page-add-cell'),
|
||||
|
|
|
@ -14,8 +14,11 @@
|
|||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import json
|
||||
|
||||
from django.conf import settings
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.core import serializers
|
||||
from django.core.exceptions import ObjectDoesNotExist
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.forms import models as model_forms
|
||||
|
@ -106,6 +109,19 @@ class PageView(DetailView):
|
|||
page_view = requires_csrf_token(PageView.as_view())
|
||||
|
||||
|
||||
class PageExportView(DetailView):
|
||||
model = Page
|
||||
|
||||
def render_to_response(self, context, **response_kwargs):
|
||||
response = HttpResponse(content_type='application/json')
|
||||
cells = CellBase.get_cells(page_id=self.object.id)
|
||||
serialized_page = json.loads(serializers.serialize('json', [self.object]))[0]
|
||||
serialized_page['cells'] = json.loads(serializers.serialize('json', cells))
|
||||
json.dump(serialized_page, response, indent=2)
|
||||
return response
|
||||
|
||||
page_export = PageExportView.as_view()
|
||||
|
||||
class PageAddCellView(RedirectView):
|
||||
def get_redirect_url(self, page_pk, cell_type, variant, ph_key):
|
||||
cell_class = ContentType.objects.get(id=cell_type).model_class()
|
||||
|
|
Loading…
Reference in New Issue