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 / 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 / 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 / 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 / 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 / jquery-plugin-base.js
Last active September 8, 2017 11:15
A simple construct for having jquery plugins with state
var WhatEverPlugin = (function ($) {
'use strict';
var $plugins;
// public api
var api = {
reset_all: reset_all,
reset_by_selector: reset_by_selector
};
@benzkji
benzkji / hvad2modeltranslation.py
Created October 8, 2017 23:49
hvad2modeltranslation.py
def migrate_to_modeltranslation(queryset, fields):
"""
to be used in data migrations, for migrating nani/hvad to modeltranslation
:param queryset:
:param fields:
:return:
"""
if not queryset.count():
@benzkji
benzkji / admin.py
Last active October 14, 2017 09:19 — forked from wullerot/admin.py
django-modeltranslation-language-tabs
from __future__ import unicode_literals
from django.conf import settings
class LanguageTabsMixin(object):
change_form_template = 'admin/modeltranslation/change_form.html'
def change_view(self, request, object_id, form_url='', extra_context=None):
context = extra_context or {}
@benzkji
benzkji / rename-tables-for-django.py
Last active December 6, 2017 14:36
rename-tables-for-django.py (needed for updates to django-cms 3.0)
=> ./manage.py datamigration your_app rename_plugin_tables
def rename_tables(db, table_mapping, reverse=False):
"""
renames tables from source to destination name, if the source exists and the destination does
not exist yet.
"""
from django.db import connection
if reverse:
@benzkji
benzkji / search_indexes_untranslated.py
Created November 6, 2017 10:40
search_indexes_untranslated.py haystack aldryn_search
from aldryn_search.search_indexes import TitleIndex
from cms.models import CMSPlugin
from djangocms_misc.global_untranslated_placeholder.utils import get_untranslated_default_language
class UntranslatedTitleIndex(TitleIndex):
def get_plugin_queryset(self, language):
queryset = CMSPlugin.objects.filter(
language=get_untranslated_default_language()
@benzkji
benzkji / cms_plugins.py
Created October 31, 2018 14:44
move first / last cms plugin context menu
# add to your normal cms_plugins.py whateverplugin
class DemoPlugin(CMSPluginBase):
model = Demo
...
def get_plugin_urls(self):