(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
from django.core.management.base import BaseCommand | |
from django.db.models import get_models, get_app, fields | |
from django.db.models.fields import related | |
class Command(BaseCommand): | |
help = """Generate factory-boy factories for the given app""" | |
def handle(self, *args, **options): | |
assert len(args) == 1, 'Must specify app name as first and only argument' |
from wagtail.wagtailcore.models import get_page_models | |
from wagtail.wagtailcore.utils import resolve_model_string | |
class SinglePageInstanceMixin(object): | |
@classmethod | |
def clean_parent_page_types(cls): | |
""" | |
Rewrite wagtailcore.models.Page.clean_parent_page_models to ensure that |
# HTTPS youtube embeds for wagtail | |
# Put this file in your project and add the following to your settings: | |
# WAGTAILEMBEDS_EMBED_FINDER = 'myapp.embeds.custom_embed_finder' | |
import json | |
import re | |
from six.moves.urllib.request import Request, urlopen | |
from six.moves.urllib.error import URLError |
class DisableMigrations(object): | |
def __contains__(self, item): | |
return True | |
def __getitem__(self, item): | |
return "notmigrations" | |
MIGRATION_MODULES = DisableMigrations() |
{ | |
"name": "my-app", | |
"version": "1.0.0", | |
"description": "My test app", | |
"main": "src/js/index.js", | |
"scripts": { | |
"jshint:dist": "jshint src/js/*.js", | |
"jshint": "npm run jshint:dist", | |
"jscs": "jscs src/*.js", | |
"browserify": "browserify -s Validating -o ./dist/js/build.js ./lib/index.js", |
# If your test settings file doesn't import any other settings file | |
# then you can use the function directly: | |
def prevent_tests_migrate(db): | |
import django | |
from django.db import connections | |
from django.db.migrations.executor import MigrationExecutor | |
django.setup() | |
ma = MigrationExecutor(connections[db]).loader.migrated_apps | |
return dict(zip(ma, ['{a}.notmigrations'.format(a=a) for a in ma])) |
#!/usr/bin/python | |
# -*- coding: utf-8 -*- | |
import sublime_plugin | |
import subprocess | |
from time import sleep | |
import sys | |
cl = lambda line: subprocess.Popen(line, shell=True, stdout=subprocess.PIPE).communicate()[0].strip() | |
log = lambda message: sys.stderr.write("Log: %s\n" % message) |
(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
# -*- mode: ruby -*- | |
# vi: set ft=ruby : | |
Vagrant::Config.run do |config| | |
# Base box to build off, and download URL for when it doesn't exist on the user's system already | |
config.vm.box = "wagtail-base-v0.1" | |
config.vm.box_url = "http://downloads.torchbox.com/wagtail-base-v0.1.box" | |
# You can also build from a vanilla precise32 box, although it'll take longer |
#!/usr/bin/env python | |
import argparse | |
import re | |
import os | |
import subprocess | |
try: | |
import json | |
except ImportError: | |
import simplejson as json |