view legacy/management/commands/fix_potd_smiles.py @ 1037:7e0c3cbd3cda

Fix bad select_related call. In Django 1.8, select_related now throws an error if you give it an invalid field. This was happening. Fix that query. Also noticed an extra query generated in the display_post template. Fixed.
author Brian Neal <bgneal@gmail.com>
date Tue, 29 Dec 2015 22:21:42 -0600
parents ee87ea74d46b
children
line wrap: on
line source
"""
This command fixes the old 1.0 smiley system to match the new scheme.

"""
from django.core.management.base import NoArgsCommand
from comments.models import Comment


SMILEY_MAP = {
    ':confused:': ':?',
    ':upset:': ':argh:',
    ':eek:': ':shock:',
    ':rolleyes:': ':whatever:',
    ':mad:': 'X-(',
    ':shy:': ':oops:',
    ':laugh:': ':lol:',
    ':dead:': 'x_x',
    ':cry:': ':-(',
    ';)': ':wink:',
    ':|': ':-|',
    ';-)': ':wink:',
    ':D': ':-D',
    ':P': ':-P',
    'B)': '8)',
    ':(': ':-(',
    ':)': ':-)',
}


class Command(NoArgsCommand):

    def handle_noargs(self, **opts):

        comments = Comment.objects.filter(id__gt=3000)
        for comment in comments:
            save = False
            for key, val in SMILEY_MAP.items():
                if key in comment.comment:
                    comment.comment = comment.comment.replace(key, val)
                    save = True

            if save:
                comment.save()