Skip to content

Instantly share code, notes, and snippets.

💭
Djangonaut, tree hugger

Scot Hacker shacker

💭
Djangonaut, tree hugger
Block or report user

Report or block shacker

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@shacker
shacker / .gitconfig
Last active May 28, 2018
shacker .gitconfig aliases
View .gitconfig
[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
@shacker
shacker / test_views.py
Created Nov 22, 2017
Convert output of django-extensions' `show_urls` to a python list of "simple" URLs
View test_views.py
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 / gist:f5b814762f373614653f10a2abbb658a
Created Nov 21, 2017
Example gravatar implementation for Python 2 *and* 3, using libgravatar
View gist:f5b814762f373614653f10a2abbb658a
# For just python:
pip install libgravatar
# libravatar documentation/options at:
# http://libgravatar.readthedocs.io/
# Then:
from libgravatar import Gravatar
@shacker
shacker / admin.py
Last active Apr 11, 2017
ORM Logging boilerplate
View admin.py
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 / stream_blocks.py
Last active Nov 26, 2016
BlockQuoteBlock for use with Wagtail Streamfields
View stream_blocks.py
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 / gist:2fdf105f2d51bebedc8c3ecd99176677
Last active Nov 8, 2017
Blog: github version template tag 1
View gist:2fdf105f2d51bebedc8c3ecd99176677
@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 / import_drupal_pages.py
Created Aug 20, 2015
Django management command to import flat Drupal page sets into a wagtail tree
View import_drupal_pages.py
from datetime import datetime
import json
import requests
import sys
from bs4 import BeautifulSoup
from django.core.management.base import BaseCommand
from django.contrib.auth.models import User
@shacker
shacker / gist:87908e13c9ee6655ce90
Last active Oct 16, 2019
Using the Workday API with Python and the suds client library
View gist:87908e13c9ee6655ce90
import sys
from suds import client
from suds.wsse import Security, UsernameToken
from suds.sax.text import Raw
from suds.sudsobject import asdict
from suds import WebFault
'''
Given a Workday Employee_ID, returns the last name of that employee.
@shacker
shacker / keybase.md
Created Nov 14, 2014
keybase.io identity proof
View keybase.md

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 / pg_backup
Created Mar 5, 2014
Get list of all dbs on remote server, dump each to its own dir on this server
View pg_backup
#!/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'
You can’t perform that action at this time.