Skip to content

Instantly share code, notes, and snippets.

Avatar
🕶️
Available for training, coaching and trouble-shooting (as usual)..

Jens W. Klein jensens

🕶️
Available for training, coaching and trouble-shooting (as usual)..
View GitHub Profile
@jensens
jensens / bootstrap.py
Last active Aug 29, 2015
Jensens Plone Minimal buildout
View bootstrap.py
##############################################################################
#
# Copyright (c) 2006 Zope Foundation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
@jensens
jensens / configure.zcml
Created May 7, 2014
disable set login time every time a a user logs in
View configure.zcml
<configure xmlns="http://namespaces.zope.org/zope"
xmlns:monkey="http://namespaces.plone.org/monkey">
<include package="collective.monkeypatcher" file="meta.zcml" />
<monkey:patch
description="Patch setLoginTimes to disable that feature."
class="Products.PlonePAS.tools.membership.MembershipTool"
original="setLoginTimes"
replacement=".patches.setLoginTimes"
@jensens
jensens / howto
Created Dec 15, 2014
avoid setuptools 8 in a buildout
View howto
1) use bootstrap.py from http://downloads.buildout.org/2/bootstrap.py
2) edit buildout.cfg and pin versions to:
[versions]
setuptools = 7.0
zc.buildout = 2.2.5
3) create a virtualenv as usal:
@jensens
jensens / xmlppformat.py
Last active Aug 29, 2015
Sublime 3 xml_pp (xmltwig) based xml auto formatter.
View xmlppformat.py
"""
Sublime 3 xml_pp (xmltwig) based xml auto formatter.
Setup in Sublime:
- sudo apt-get install xml-twig-tools
- in Sublime go to menu: Tools -> New Plugin...
- paste this file into the editor.
- save: use the preset location (~/.config/sublime-text-3/Packages/User)
and name it exactly "xmlppformat.py".
- in Sublime go to menu: Preferences -> Key Bindings - User
- add an keybinding i.e.:
@jensens
jensens / example-1-after.xml
Created Mar 6, 2015
xml_pp formatting examples
View example-1-after.xml
<configure
xmlns="http://namespaces.zope.org/zope"
xmlns:browser="http://namespaces.zope.org/browser"
xmlns:security="http://namespaces.zope.org/security"
xmlns:zmi="http://namespaces.zope.org/zmi">
<!-- Standard configuration directives -->
<include
file="configuration-meta.zcml"
package=".Configuration"
/>
@jensens
jensens / make_labels.py
Last active Aug 29, 2015
Create a bunch of same labels for each repo of an organization
View make_labels.py
# -*- coding: utf-8 -*-
"""
This script creates specific labels for all repositories of an organization.
before using it do a ``pip install PyGithub``.
"""
from github import Github
import argparse
View bench-mc.py
# -*- coding: utf-8 -*-
import csv
import pprint
import memcache
import pylibmc
import random
import string
import time
CYCLES = 10000
@jensens
jensens / versionfinder.py
Created Feb 8, 2011
parses zopes instance file and returns versions used (for use in buildout)
View versionfinder.py
# versionfinder
import re
regexp = re.compile('.*\/(.*)-(.*)-py')
with open('instance', 'r') as ins:
for line in ins.readlines():
res = regexp.match(line)
if res is None:
continue
print "%s = %s" % res.groups()
@jensens
jensens / actions.py
Created Mar 2, 2011
actions to set a Navigation Root
View actions.py
from zope.interface import Interface
from zope.interface import directlyProvides
from zope.interface import noLongerProvides
from Products.Five.browser import BrowserView
from Products.CMFPlone.interfaces import INavigationRoot
from Products.CMFPlone import PloneMessageFactory as _
class IPossibleNavigationRoot(Interface):
pass
View gist:953532
from Products.Five.browser import BrowserView
class LangRedir(BrowserView):
"""language redirect"""
def __call__(self):
target = 'en-ie'
for lang in self.context.portal_languages.getRequestLanguages():
if lang in ('de-at', 'de-ch'):
target = 'de-at'
You can’t perform that action at this time.