Skip to content

Instantly share code, notes, and snippets.

View benzkji's full-sized avatar
🐙
eight times a thing

Ben Stähli benzkji

🐙
eight times a thing
  • bnzk GmbH
  • Biel/Bienne Switzerland
View GitHub Profile
@benzkji
benzkji / convert_to_ckeditor_link.py
Created September 6, 2017 08:46
management command, for converting form old school djangocms-text-ckeditor img tags to django-ckeditor-link style
@benzkji
benzkji / search_indexes.py
Last active August 24, 2017 18:19
multilanguage haystack search index, with aldryn_search
from __future__ import unicode_literals
from aldryn_search.base import AldrynIndexBase
from django.template.loader import render_to_string
from haystack import indexes
from bodenschatz.models import Product
class ProductIndex(AldrynIndexBase, indexes.Indexable):
@benzkji
benzkji / back.js
Created July 9, 2017 21:00
back pattern revisited
// check: if we came frome our own site, just use history.back()
// as simple as it gets.
on_back_click: function(e) {
// this check could be further enhanced, but works quite well already.
if (document.referrer.indexOf(window.location.host) !== -1) {
e.preventDefault();
history.back();
}
}
@benzkji
benzkji / is-touch.js
Created July 8, 2017 05:58
is-touch?
document.addEventListener('touchstart', function addtouchclass(e){ // first time user touches the screen
document.documentElement.classList.add('is-touch') // add "can-touch" class to document root using classList API
document.removeEventListener('touchstart', addtouchclass, false) // de-register touchstart event
}, false)
@benzkji
benzkji / index.html
Last active March 25, 2021 16:41
simple invisible recaptcha example, works with multiple forms
<script src='https://www.google.com/recaptcha/api.js?hl=de'></script>
check https://developers.google.com/recaptcha/docs/invisible
<div
id="header_recaptcha"
class="g-recaptcha"
data-sitekey="6LctdiQUAAAAAOTUOX92-PkGJXpZgGUp5hrq4l65"
data-size="invisible"
data-callback="recaptcha_submit"
@benzkji
benzkji / models.py
Last active August 19, 2016 14:04
LinkModel Example
from ....
class LinkBase(models.Model):
link_text = models.CharField(verbose_name=_('Link Text'), max_length=255,
blank=True, default='')
link_type = models.CharField(verbose_name=_('Link'), max_length=20, choices=LINK_TYPE_CHOICES,
blank=True, default='')
page = PageField(null=True, blank=True)
file = FilerFileField(null=True, blank=True, related_name='link')
mailto = models.EmailField(null=True, blank=True)
@benzkji
benzkji / cms_toolbars.py
Last active May 11, 2018 11:22
remove top right "create" button from django cms toolbar
from cms.toolbar_pool import toolbar_pool
from cms.cms_toolbars import PlaceholderToolbar
toolbar_pool.unregister(PlaceholderToolbar)
@toolbar_pool.register
class PlaceholderToolbarNoWizard(PlaceholderToolbar):
def add_wizard_button(self):
pass
@benzkji
benzkji / search_backends.py
Created February 25, 2016 09:14 — forked from gregplaysguitar/folding_whoosh_backend.py
Django-haystack Whoosh backend with character folding
# -*- coding: utf-8 -*-
"""
Whoosh backend for haystack that implements character folding, as per
http://packages.python.org/Whoosh/stemming.html#character-folding .
Tested with Haystack 2.4.0 and Whooch 2.7.0
To use, put this file on your path and add it to your haystack settings, eg.
@benzkji
benzkji / search_indexes.py
Created December 8, 2015 07:15
haystack index for django-filer PDFs
# coding: utf-8
from __future__ import unicode_literals
import os
from pdfminer.pdfdocument import PDFEncryptionError
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
from cStringIO import StringIO
@benzkji
benzkji / cms_toolbar.py
Last active April 14, 2016 13:49
Show basics for adding/removing things. Remove language menu, for one-language pages. Remove Wizard button introduced in 3.2
# coding: utf-8
from django.core.urlresolvers import reverse
from django.utils.translation import ugettext_lazy as _
from cms.toolbar_pool import toolbar_pool
from cms.cms_toolbar import ADMIN_MENU_IDENTIFIER, LANGUAGE_MENU_IDENTIFIER
from cms.toolbar_base import CMSToolbar
from cms.toolbar.items import Break
@toolbar_pool.register