Skip to content

Instantly share code, notes, and snippets.

@coderanger
coderanger / admin.py
Created August 31, 2010 22:45
Pagination for admin inlines
class MyInline(admin.TabularInline):
model = MyModel
extra = 0
template = 'admin/edit_inline/list.html'
def get_formset(self, request, obj=None, **kwargs):
FormSet = super(ActivationKeyInline, self).get_formset(request, obj, **kwargs)
class NewFormSet(FormSet):
def _construct_forms(self, *args, **kwargs):
qs = self.get_queryset()
@coderanger
coderanger / tree.py
Created July 8, 2010 04:35
A simple function to print a tree in response to a reddit question.
from StringIO import StringIO
tree1 = ("Root", ("Child 1", ("Child 2", None)))
get_label1 = lambda x: x[0]
def get_children1(node):
if node[1] is not None:
yield node[1]
class Node(object):
@coderanger
coderanger / db.py
Created May 12, 2010 00:09
A subclass to allow splitting Django models into a package without manually specifying app_label for every one.
from django.db.models import base
from django.conf import settings
class ModelBase(base.ModelBase):
def __new__(cls, name, bases, attrs):
parents = [b for b in bases if isinstance(b, ModelBase)]
if not parents:
# Don't run our fixup on the model base class itself.
return super(ModelBase, cls).__new__(cls, name, bases, attrs)
@coderanger
coderanger / coverage.py
Created May 7, 2010 20:33
A Django command to generate a test coverage report
from __future__ import absolute_import
import os
import sys
import webbrowser
from django.conf import settings
from django.core.management import setup_environ
from django.core.management.commands import test
from django.utils.importlib import import_module
from django.db.models.loading import cache
import os
def walkfiles(d):
for base, dirnames, filenames in os.walk(d):
for name in filenames:
yield os.path.join(base, name)
// ==UserScript==
// @name Lifetime blues
// @namespace http://startrekonline.com/
// @include http://forums.startrekonline.com/showthread.php*
// ==/UserScript==
var snapAlt2 = document.evaluate("//table//td[@class='alt2']//span", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
for (var i = snapAlt2.snapshotLength - 1; i >= 0; i--) {
var elm = snapAlt2.snapshotItem(i);