From 9f86a4c5865acfc77a3f2412d8ca68a90985d64c Mon Sep 17 00:00:00 2001 From: Greg Taylor Date: Fri, 17 Apr 2009 04:15:54 +0000 Subject: [PATCH] I've been meaning to do this for a while as well. Break CommChannel and CommChannelMessage out into a separate app. I had them lumped in with objects/models.py due to some funkage with the admin site registering that is now resolved. NOTE: You will need to syncdb and re-create any channels you may have had. Sorry for the inconvenience, we're still early enough in development where breakages like this may happen once in a blue moon. --- src/comsys.py | 4 +- src/config_defaults.py | 1 + src/imc2/models.py | 2 +- src/objects/admin.py | 12 +---- src/objects/models.py | 100 ----------------------------------------- src/session.py | 3 +- 6 files changed, 7 insertions(+), 115 deletions(-) diff --git a/src/comsys.py b/src/comsys.py index 2936142469..0fe2e7ebfd 100644 --- a/src/comsys.py +++ b/src/comsys.py @@ -3,10 +3,8 @@ Comsys functions. """ import time import datetime - from django.utils import simplejson - -from src.objects.models import CommChannel, CommChannelMessage +from src.channels.models import CommChannel, CommChannelMessage from src import session_mgr from src import ansi diff --git a/src/config_defaults.py b/src/config_defaults.py index 7293274266..463ac7fc45 100644 --- a/src/config_defaults.py +++ b/src/config_defaults.py @@ -212,6 +212,7 @@ INSTALLED_APPS = ( 'django.contrib.flatpages', 'src.config', 'src.objects', + 'src.channels', 'src.imc2', 'src.helpsys', 'src.genperms', diff --git a/src/imc2/models.py b/src/imc2/models.py index 83d8d0af6d..770ded056d 100644 --- a/src/imc2/models.py +++ b/src/imc2/models.py @@ -1,5 +1,5 @@ from django.db import models -from src.objects.models import CommChannel +from src.channels.models import CommChannel class IMC2ChannelMapping(models.Model): """ diff --git a/src/objects/admin.py b/src/objects/admin.py index 912601a6dc..fc1742b4fe 100644 --- a/src/objects/admin.py +++ b/src/objects/admin.py @@ -1,4 +1,4 @@ -from src.objects.models import Attribute, Object, CommChannel, CommChannelMessage +from src.objects.models import Attribute, Object from django.contrib import admin class AttributeAdmin(admin.ModelAdmin): @@ -11,12 +11,4 @@ class ObjectAdmin(admin.ModelAdmin): list_filter = ('type',) search_fields = ['name'] save_on_top = True -admin.site.register(Object, ObjectAdmin) - -class CommChannelAdmin(admin.ModelAdmin): - list_display = ('name', 'owner') -admin.site.register(CommChannel, CommChannelAdmin) - -class CommChannelMessageAdmin(admin.ModelAdmin): - list_display = ('channel', 'message') -admin.site.register(CommChannelMessage, CommChannelMessageAdmin) \ No newline at end of file +admin.site.register(Object, ObjectAdmin) \ No newline at end of file diff --git a/src/objects/models.py b/src/objects/models.py index 48be04e34d..d011edf108 100755 --- a/src/objects/models.py +++ b/src/objects/models.py @@ -970,105 +970,5 @@ class Object(models.Model): otype = int(self.type) return defines_global.OBJECT_TYPES[otype][1][0] -class CommChannel(models.Model): - """ - The CommChannel class represents a comsys channel in the vein of MUX/MUSH. - """ - name = models.CharField(max_length=255) - ansi_name = models.CharField(max_length=255) - owner = models.ForeignKey(Object, related_name="chan_owner") - description = models.CharField(max_length=80, blank=True, null=True) - is_joined_by_default = models.BooleanField(default=False) - req_grp = models.ManyToManyField(Group, blank=True, null=True) - - def __str__(self): - return "%s" % (self.name,) - - class Meta: - ordering = ['-name'] - permissions = ( - ('emit_commchannel', 'May @cemit over channels.'), - ('channel_admin', 'May administer comm channels.') - ) - - def get_name(self): - """ - Returns a channel's name. - """ - return self.name - - def get_header(self): - """ - Returns the channel's header text, or what is shown before each channel - message. - """ - return parse_ansi(self.ansi_name) - - def get_owner(self): - """ - Returns a channels' owner. - """ - return self.owner - - def set_name(self, new_name): - """ - Rename a channel - """ - self.name = parse_ansi(new_name, strip_ansi=True) - self.header = "[%s]" % (parse_ansi(new_name),) - self.save() - - def set_header(self, new_header): - """ - Sets a channel's header text. - """ - self.header = parse_ansi(new_header) - self.save() - - def set_owner(self, new_owner): - """ - Sets a channel's owner. - """ - self.owner = new_owner - self.save() - - def controlled_by(self, pobject): - """ - Use this to see if another object controls the channel. This is means - that the specified object either owns the channel or has special - permissions to control it. - - pobject: (Object) Player object to check for control. - """ - if pobject.is_superuser(): - return True - - if self.owner and self.owner.id == pobject.id: - # If said object owns the target, then give it the green. - return True - - # They've failed to meet any of the above conditions. - return False - - def get_default_chan_alias(self): - """ - Returns a default channel alias for the channel if none is provided. - """ - return self.name[:3].lower() - -class CommChannelMessage(models.Model): - """ - A single logged channel message. - """ - channel = models.ForeignKey(CommChannel, related_name="msg_channel") - message = models.CharField(max_length=255) - date_sent = models.DateTimeField(editable=False, auto_now_add=True) - - def __str__(self): - return "%s: %s" % (self.sender.name, self.message) - - class Meta: - ordering = ['-date_sent'] - # Deferred imports are poopy. This will require some thought to fix. from src import cmdhandler \ No newline at end of file diff --git a/src/session.py b/src/session.py index 7e060e4120..769e7d03a6 100755 --- a/src/session.py +++ b/src/session.py @@ -7,7 +7,8 @@ import sys from datetime import datetime from twisted.conch.telnet import StatefulTelnetProtocol from django.contrib.auth.models import User -from src.objects.models import Object, CommChannel +from src.objects.models import Object +from src.channels.models import CommChannel from src.config.models import ConnectScreen, ConfigValue from util import functions_general import src.comsys