Example #1
0
 def list(self):
     site = Site.load(self.request.matchdict.get('site_id'))
     self.forbid_if(not site or str(site.company.enterprise_id) != str(self.enterprise_id))
     return {
         'site' : site,
         'contents' : Content.find_by_site(site)
         }
Example #2
0
 def test_content(self):
     content_id = content_create_new(self)
     cnt = Content.load(content_id)
     R = self.get('/ecom/content/%s/catalog_content?content_name=%s' % (cnt.name, cnt.name))
     assert R.status_int == 200
     R.mustcontain(cnt.name)
     R.mustcontain(str(self.site.site_id))
     content_delete_new(content_id)
Example #3
0
 def test_page(self):
     content_id = content_create_new(self)
     cnt = Content.load(content_id)
     R = self.get('/ecom/page/content?content_name=%s' % cnt.name)
     assert R.status_int == 200
     R.mustcontain(cnt.name)
     R.mustcontain(self.site.site_id)
     content_delete_new(content_id)
Example #4
0
 def content(self):
     page = self.request.matchdict.get("page", "content")
     params = self.params()
     params["content_name"] = content_name = self.request.matchdict.get("content_name")
     content = Content.find_by_name(self.request.ctx.site, content_name)
     if content:
         (params["seo_title"], params["seo_keywords"], params["seo_description"]) = SmartSeo.obj_seo(
             content, self.request.ctx.site
         )
     return self.render(page, params)
Example #5
0
 def _edit_impl(self):
     site_id = self.request.matchdict.get('site_id')
     site = Site.load(site_id)
     self.forbid_if(not site or str(site.company.enterprise_id) != str(self.enterprise_id))
     content_id = self.request.matchdict.get('content_id')
     if content_id:
         content = Content.load(content_id)
         self.forbid_if(not content
                        or str(content.site.company.enterprise_id) != str(self.enterprise_id)
                        or str(content.site_id) != str(site_id))
     else:
         content = Content()
         content.site_id = site_id
     return {
         'site' : site,
         'content' : content,
         'companies' : util.select_list(Company.find_all(self.enterprise_id), 'company_id', 'name'),
         'campaigns' : util.select_list(Campaign.find_all(self.enterprise_id), 'campaign_id', 'name')
         }
Example #6
0
def content_create_new(self_):
    R = self_.get('/cms/content/new/%s' % self_.site.site_id)
    assert R.status_int == 200
    R.mustcontain('New Content Block')
    f = R.forms['frm_content']
    assert f['content_id'].value == ''
    f.set('name', 'nosetest.content.0')
    f.set('data', "${request.GET['content_name']} ${request.ctx.site.site_id}")
    
    R = f.submit('submit')
    assert R.status_int == 302
    R = R.follow()
    assert R.status_int == 200
    f = R.forms['frm_content']
    R.mustcontain('Edit Content Block')
    content_id = f['content_id'].value
    assert f['content_id'].value != ''
    content = Content.load(content_id)
    return content.content_id
Example #7
0
def aloha_editable_content(request, content_name):
    from pvscore.model.cms.content import Content
    site = request.ctx.site
    content = Content.find_by_name(site, content_name, False)
    if content:
        editable_id = content_name.replace('.', '_')
        html = literal("""
                <div id="editable_{editable_id}">
                    {val}
                </div>
                <input type="hidden" id="editable_{editable_id}_type" value="content"/>
                <input type="hidden" id="editable_{editable_id}_name" value="{name}"/>
                <input type="hidden" id="editable_{editable_id}_content_id" value="{content_id}"/>
                <script type="text/javascript">
                    Aloha.ready( function() {{
                        Aloha.jQuery('#editable_{editable_id}').aloha();
                        Aloha.bind('aloha-editable-deactivated', pvs_aloha_onsave);
                    }} );
                </script>""".format(editable_id=editable_id,
                                    content_id=content.content_id,
                                    name=content_name,
                                    val=content.render(request=request) if content else ''))
    return html
Example #8
0
def content_delete_new(content_id):
    content = Content.load(content_id)
    assert content != None
    content.delete()
    transaction.commit()
Example #9
0
 def save_ajax(self):
     """ KB: [2013-03-04]: Only save the content and maybe the name.  Useful via ajax from aloha """
     content = Content.load(self.request.POST.get('content_id'))
     if not content:
         content = Content()
         content.user_created = self.request.ctx.user.user_id
     else:
         self.forbid_if(content.site.company.enterprise_id != self.enterprise_id)
     content.bind(self.request.POST)
     content.save()
     content.flush()
     content.invalidate_caches()
     return 'True'
Example #10
0
 def save(self):
     content = Content.load(self.request.POST.get('content_id'))
     if not content:
         content = Content()
         content.user_created = self.request.ctx.user.user_id
     else:
         self.forbid_if(content.site.company.enterprise_id != self.enterprise_id)
     content.bind(self.request.POST, True)
     content.save()
     content.flush()
     content.invalidate_caches()
     self.flash('Successfully saved %s.' % (content.content_id))
     return HTTPFound('/cms/content/edit/%s/%s' % (content.site_id, content.content_id))