evennia/src/helpsys/models.py

43 lines
No EOL
1.1 KiB
Python

"""
Models for the help system.
"""
from django.db import models
from django.contrib import admin
from src import ansi
from src.helpsys.managers.helpentry import HelpEntryManager
class HelpEntry(models.Model):
"""
A generic help entry.
"""
topicname = models.CharField(max_length=255, unique=True)
entrytext = models.TextField(blank=True, null=True)
staff_only = models.BooleanField(default=0)
objects = HelpEntryManager()
class Meta:
verbose_name_plural = "Help entries"
ordering = ['topicname']
def __str__(self):
return self.topicname
def get_topicname(self):
"""
Returns the topic's name.
"""
return self.topicname
def get_entrytext_ingame(self):
"""
Gets the entry text for in-game viewing.
"""
return ansi.parse_ansi(self.entrytext)
class HelpEntryAdmin(admin.ModelAdmin):
list_display = ('id', 'topicname', 'staff_only')
list_display_links = ('id', 'topicname')
list_filter = ('staff_only',)
search_fields = ['entrytext']
admin.site.register(HelpEntry, HelpEntryAdmin)