Skip to content

Instantly share code, notes, and snippets.

View shacker's full-sized avatar
💭
Djangonaut, tree hugger

Scot Hacker shacker

💭
Djangonaut, tree hugger
View GitHub Profile
@shacker
shacker / debug_loader.py
Created February 27, 2014 23:25
Template name overlays for Django
from django.template.loader import BaseLoader
from django.template.loader import find_template_loader
from django.template.loader import make_origin
from django.template.base import TemplateDoesNotExist
from django.template.base import Template
'''
Deubug template loader visually shows which templates are being invoked in the
process of rendering an entire page. To use, wrap your your existing loaders
@shacker
shacker / pg_backup
Created March 5, 2014 08:02
Get list of all dbs on remote server, dump each to its own dir on this server
#!/bin/bash
# Get list of all dbs on remote server, dump each to its own dir on this server
export PGPASSWORD="secret"
HOST='example.com'
DBUSER='someuser'
BASEDIR='/var/backups/postgres/'
temp1='/tmp/dbdata_tmp1.txt'
temp2='/tmp/dbdata_tmp2.txt'
@shacker
shacker / keybase.md
Created November 14, 2014 06:17
keybase.io identity proof

Keybase proof

I hereby claim:

  • I am shacker on github.
  • I am shacker (https://keybase.io/shacker) on keybase.
  • I have a public key whose fingerprint is D28A CA5D AE23 7727 D8EB 8F92 3844 B708 0026 C9C3

To claim this, I am signing this object:

@shacker
shacker / add_members-nomail
Created October 20, 2012 18:06
Provides an -e flag to Mailmans' 2.x add_members script for nomail delivery option
54a55,58
> --enable-mail=<y|n>
> -e <y|n>
> Enable user mail deilvery options.
79a84
> from Mailman import MemberAdaptor
127c132
< def addall(mlist, members, digest, ack, outfp):
---
> def addall(mlist, members, digest, ack, outfp, enable):
@shacker
shacker / stream_blocks.py
Last active November 26, 2016 19:07
BlockQuoteBlock for use with Wagtail Streamfields
from django import forms
from django.utils.encoding import force_text
from django.utils.html import format_html
from wagtail.wagtailcore.blocks import FieldBlock
class BlockQuoteBlock(FieldBlock):
def __init__(self, required=True, help_text=None, max_length=None, min_length=None, **kwargs):
self.field = forms.CharField(
@shacker
shacker / admin.py
Last active April 11, 2017 06:17
ORM Logging boilerplate
from dirapp.models import Log
from django.contrib import admin
class LogAdmin(admin.ModelAdmin):
search_fields = ['user__username', 'action']
list_display = ('user', 'anon_username', 'action', 'target', 'status', 'ip_addr', 'timestamp',)
list_filter = ['target', 'status']
admin.site.register(Log, LogAdmin)
@shacker
shacker / gist:2fdf105f2d51bebedc8c3ecd99176677
Last active November 8, 2017 11:57
Blog: github version template tag 1
@register.simple_tag
def git_ver():
'''
Retrieve and return the latest git commit hash ID and tag as a dict.
'''
git_dir = os.path.dirname(settings.BASE_DIR)
try:
# Date and hash ID
@shacker
shacker / gist:f5b814762f373614653f10a2abbb658a
Created November 21, 2017 18:27
Example gravatar implementation for Python 2 *and* 3, using libgravatar
# For just python:
pip install libgravatar
# libravatar documentation/options at:
# http://libgravatar.readthedocs.io/
# Then:
from libgravatar import Gravatar
@shacker
shacker / test_views.py
Created November 22, 2017 18:41
Convert output of django-extensions' `show_urls` to a python list of "simple" URLs
import re
from django.core.management import call_command
from test_plus.test import TestCase
class SmokeTestAllViews(BaseUserTestCase):
def test_all_view_respones(self):
"""
@shacker
shacker / .gitconfig
Last active May 28, 2018 06:51
shacker .gitconfig aliases
[alias]
alias = config --get-regexp ^alias\\.
br = branch
bra = branch -a -v -v
cm = commit -a
co = checkout
cp = cherry-pick
dev = checkout develop
find = "!f() { git ls-files |grep $@; }; f"
last = log -1 HEAD