diff options
Diffstat (limited to 'src/mailman/model')
| -rw-r--r-- | src/mailman/model/address.py | 9 | ||||
| -rw-r--r-- | src/mailman/model/bans.py | 7 | ||||
| -rw-r--r-- | src/mailman/model/bounce.py | 10 | ||||
| -rw-r--r-- | src/mailman/model/cache.py | 7 | ||||
| -rw-r--r-- | src/mailman/model/domain.py | 7 | ||||
| -rw-r--r-- | src/mailman/model/language.py | 5 | ||||
| -rw-r--r-- | src/mailman/model/mailinglist.py | 54 | ||||
| -rw-r--r-- | src/mailman/model/member.py | 6 | ||||
| -rw-r--r-- | src/mailman/model/message.py | 9 | ||||
| -rw-r--r-- | src/mailman/model/mime.py | 6 | ||||
| -rw-r--r-- | src/mailman/model/pending.py | 11 | ||||
| -rw-r--r-- | src/mailman/model/preferences.py | 6 | ||||
| -rw-r--r-- | src/mailman/model/requests.py | 12 | ||||
| -rw-r--r-- | src/mailman/model/template.py | 13 | ||||
| -rw-r--r-- | src/mailman/model/tests/test_listmanager.py | 4 | ||||
| -rw-r--r-- | src/mailman/model/user.py | 8 | ||||
| -rw-r--r-- | src/mailman/model/workflow.py | 11 |
17 files changed, 98 insertions, 87 deletions
diff --git a/src/mailman/model/address.py b/src/mailman/model/address.py index 7a3485378..a31e9a429 100644 --- a/src/mailman/model/address.py +++ b/src/mailman/model/address.py @@ -20,10 +20,11 @@ from email.utils import formataddr from mailman import public from mailman.database.model import Model +from mailman.database.types import SAUnicode from mailman.interfaces.address import ( AddressVerificationEvent, IAddress, IEmailValidator) from mailman.utilities.datetime import now -from sqlalchemy import Column, DateTime, ForeignKey, Integer, Unicode +from sqlalchemy import Column, DateTime, ForeignKey, Integer from sqlalchemy.orm import backref, relationship from zope.component import getUtility from zope.event import notify @@ -38,9 +39,9 @@ class Address(Model): __tablename__ = 'address' id = Column(Integer, primary_key=True) - email = Column(Unicode, index=True) - _original = Column(Unicode) - display_name = Column(Unicode) + email = Column(SAUnicode, index=True) + _original = Column(SAUnicode) + display_name = Column(SAUnicode) _verified_on = Column('verified_on', DateTime) registered_on = Column(DateTime) diff --git a/src/mailman/model/bans.py b/src/mailman/model/bans.py index e690145a4..e2b6490eb 100644 --- a/src/mailman/model/bans.py +++ b/src/mailman/model/bans.py @@ -22,8 +22,9 @@ import re from mailman import public from mailman.database.model import Model from mailman.database.transaction import dbconnection +from mailman.database.types import SAUnicode from mailman.interfaces.bans import IBan, IBanManager -from sqlalchemy import Column, Integer, Unicode +from sqlalchemy import Column, Integer from zope.interface import implementer @@ -35,8 +36,8 @@ class Ban(Model): __tablename__ = 'ban' id = Column(Integer, primary_key=True) - email = Column(Unicode, index=True) - list_id = Column(Unicode, index=True) + email = Column(SAUnicode, index=True) + list_id = Column(SAUnicode, index=True) def __init__(self, email, list_id): super().__init__() diff --git a/src/mailman/model/bounce.py b/src/mailman/model/bounce.py index b7f217048..856d91f20 100644 --- a/src/mailman/model/bounce.py +++ b/src/mailman/model/bounce.py @@ -20,11 +20,11 @@ from mailman import public from mailman.database.model import Model from mailman.database.transaction import dbconnection -from mailman.database.types import Enum +from mailman.database.types import Enum, SAUnicode from mailman.interfaces.bounce import ( BounceContext, IBounceEvent, IBounceProcessor) from mailman.utilities.datetime import now -from sqlalchemy import Boolean, Column, DateTime, Integer, Unicode +from sqlalchemy import Boolean, Column, DateTime, Integer from zope.interface import implementer @@ -36,10 +36,10 @@ class BounceEvent(Model): __tablename__ = 'bounceevent' id = Column(Integer, primary_key=True) - list_id = Column(Unicode) - email = Column(Unicode) + list_id = Column(SAUnicode) + email = Column(SAUnicode) timestamp = Column(DateTime) - message_id = Column(Unicode) + message_id = Column(SAUnicode) context = Column(Enum(BounceContext)) processed = Column(Boolean) diff --git a/src/mailman/model/cache.py b/src/mailman/model/cache.py index d9c0d0445..6be5fbc9d 100644 --- a/src/mailman/model/cache.py +++ b/src/mailman/model/cache.py @@ -26,9 +26,10 @@ from mailman import public from mailman.config import config from mailman.database.model import Model from mailman.database.transaction import dbconnection +from mailman.database.types import SAUnicode from mailman.interfaces.cache import ICacheManager from mailman.utilities.datetime import now -from sqlalchemy import Boolean, Column, DateTime, Integer, Unicode +from sqlalchemy import Boolean, Column, DateTime, Integer from zope.interface import implementer @@ -36,8 +37,8 @@ class CacheEntry(Model): __tablename__ = 'file_cache' id = Column(Integer, primary_key=True) - key = Column(Unicode) - file_id = Column(Unicode) + key = Column(SAUnicode) + file_id = Column(SAUnicode) is_bytes = Column(Boolean) created_on = Column(DateTime) expires_on = Column(DateTime) diff --git a/src/mailman/model/domain.py b/src/mailman/model/domain.py index 575d157cf..5bb569585 100644 --- a/src/mailman/model/domain.py +++ b/src/mailman/model/domain.py @@ -20,13 +20,14 @@ from mailman import public from mailman.database.model import Model from mailman.database.transaction import dbconnection +from mailman.database.types import SAUnicode from mailman.interfaces.domain import ( BadDomainSpecificationError, DomainCreatedEvent, DomainCreatingEvent, DomainDeletedEvent, DomainDeletingEvent, IDomain, IDomainManager) from mailman.interfaces.user import IUser from mailman.interfaces.usermanager import IUserManager from mailman.model.mailinglist import MailingList -from sqlalchemy import Column, Integer, Unicode +from sqlalchemy import Column, Integer from sqlalchemy.orm import relationship from zope.component import getUtility from zope.event import notify @@ -42,8 +43,8 @@ class Domain(Model): id = Column(Integer, primary_key=True) - mail_host = Column(Unicode) - description = Column(Unicode) + mail_host = Column(SAUnicode) + description = Column(SAUnicode) owners = relationship('User', secondary='domain_owner', backref='domains') diff --git a/src/mailman/model/language.py b/src/mailman/model/language.py index f0a3326a8..596e580e1 100644 --- a/src/mailman/model/language.py +++ b/src/mailman/model/language.py @@ -19,8 +19,9 @@ from mailman import public from mailman.database.model import Model +from mailman.database.types import SAUnicode from mailman.interfaces.languages import ILanguage -from sqlalchemy import Column, Integer, Unicode +from sqlalchemy import Column, Integer from zope.interface import implementer @@ -32,4 +33,4 @@ class Language(Model): __tablename__ = 'language' id = Column(Integer, primary_key=True) - code = Column(Unicode) + code = Column(SAUnicode) diff --git a/src/mailman/model/mailinglist.py b/src/mailman/model/mailinglist.py index 9d7d63d9b..933384797 100644 --- a/src/mailman/model/mailinglist.py +++ b/src/mailman/model/mailinglist.py @@ -23,7 +23,7 @@ from mailman import public from mailman.config import config from mailman.database.model import Model from mailman.database.transaction import dbconnection -from mailman.database.types import Enum +from mailman.database.types import Enum, SAUnicode from mailman.interfaces.action import Action, FilterAction from mailman.interfaces.address import IAddress from mailman.interfaces.archiver import ArchivePolicy @@ -51,7 +51,7 @@ from mailman.utilities.filesystem import makedirs from mailman.utilities.string import expand from sqlalchemy import ( Boolean, Column, DateTime, Float, ForeignKey, Integer, Interval, - LargeBinary, PickleType, Unicode) + LargeBinary, PickleType) from sqlalchemy.event import listen from sqlalchemy.ext.hybrid import hybrid_property from sqlalchemy.orm import relationship @@ -78,9 +78,9 @@ class MailingList(Model): # are currently missing. # List identity - list_name = Column(Unicode, index=True) - mail_host = Column(Unicode, index=True) - _list_id = Column('list_id', Unicode, index=True, unique=True) + list_name = Column(SAUnicode, index=True) + mail_host = Column(SAUnicode, index=True) + _list_id = Column('list_id', SAUnicode, index=True, unique=True) allow_list_posts = Column(Boolean) include_rfc2369_headers = Column(Boolean) advertised = Column(Boolean) @@ -106,11 +106,11 @@ class MailingList(Model): # Automatic responses. autoresponse_grace_period = Column(Interval) autorespond_owner = Column(Enum(ResponseAction)) - autoresponse_owner_text = Column(Unicode) + autoresponse_owner_text = Column(SAUnicode) autorespond_postings = Column(Enum(ResponseAction)) - autoresponse_postings_text = Column(Unicode) + autoresponse_postings_text = Column(SAUnicode) autorespond_requests = Column(Enum(ResponseAction)) - autoresponse_request_text = Column(Unicode) + autoresponse_request_text = Column(SAUnicode) # Content filters. filter_action = Column(Enum(FilterAction)) filter_content = Column(Boolean) @@ -118,7 +118,7 @@ class MailingList(Model): convert_html_to_plaintext = Column(Boolean) # Bounces. bounce_info_stale_after = Column(Interval) # XXX - bounce_matching_headers = Column(Unicode) # XXX + bounce_matching_headers = Column(SAUnicode) # XXX bounce_notify_owner_on_disable = Column(Boolean) # XXX bounce_notify_owner_on_removal = Column(Boolean) # XXX bounce_score_threshold = Column(Integer) # XXX @@ -130,7 +130,7 @@ class MailingList(Model): # Miscellaneous default_member_action = Column(Enum(Action)) default_nonmember_action = Column(Enum(Action)) - description = Column(Unicode) + description = Column(SAUnicode) digests_enabled = Column(Boolean) digest_is_default = Column(Boolean) digest_send_periodic = Column(Boolean) @@ -144,36 +144,36 @@ class MailingList(Model): gateway_to_mail = Column(Boolean) gateway_to_news = Column(Boolean) hold_these_nonmembers = Column(PickleType) - info = Column(Unicode) - linked_newsgroup = Column(Unicode) + info = Column(SAUnicode) + linked_newsgroup = Column(SAUnicode) max_days_to_hold = Column(Integer) max_message_size = Column(Integer) max_num_recipients = Column(Integer) - member_moderation_notice = Column(Unicode) + member_moderation_notice = Column(SAUnicode) mime_is_default_digest = Column(Boolean) # FIXME: There should be no moderator_password moderator_password = Column(LargeBinary) # TODO : was RawStr() newsgroup_moderation = Column(Enum(NewsgroupModeration)) nntp_prefix_subject_too = Column(Boolean) - nonmember_rejection_notice = Column(Unicode) + nonmember_rejection_notice = Column(SAUnicode) obscure_addresses = Column(Boolean) - owner_chain = Column(Unicode) - owner_pipeline = Column(Unicode) + owner_chain = Column(SAUnicode) + owner_pipeline = Column(SAUnicode) personalize = Column(Enum(Personalization)) post_id = Column(Integer) - posting_chain = Column(Unicode) - posting_pipeline = Column(Unicode) - _preferred_language = Column('preferred_language', Unicode) - display_name = Column(Unicode) + posting_chain = Column(SAUnicode) + posting_pipeline = Column(SAUnicode) + _preferred_language = Column('preferred_language', SAUnicode) + display_name = Column(SAUnicode) reject_these_nonmembers = Column(PickleType) reply_goes_to_list = Column(Enum(ReplyToMunging)) - reply_to_address = Column(Unicode) + reply_to_address = Column(SAUnicode) require_explicit_destination = Column(Boolean) respond_to_post_requests = Column(Boolean) scrub_nondigest = Column(Boolean) send_goodbye_message = Column(Boolean) send_welcome_message = Column(Boolean) - subject_prefix = Column(Unicode) + subject_prefix = Column(SAUnicode) subscription_policy = Column(Enum(SubscriptionPolicy)) topics = Column(PickleType) topics_bodylines_limit = Column(Integer) @@ -487,7 +487,7 @@ class AcceptableAlias(Model): Integer, ForeignKey('mailinglist.id'), index=True, nullable=False) mailing_list = relationship('MailingList', backref='acceptablealias') - alias = Column(Unicode, index=True, nullable=False) + alias = Column(SAUnicode, index=True, nullable=False) def __init__(self, mailing_list, alias): super().__init__() @@ -545,7 +545,7 @@ class ListArchiver(Model): index=True, nullable=False) mailing_list = relationship('MailingList') - name = Column(Unicode, nullable=False) + name = Column(SAUnicode, nullable=False) _is_enabled = Column(Boolean) def __init__(self, mailing_list, archiver_name, system_archiver): @@ -617,9 +617,9 @@ class HeaderMatch(Model): index=True, nullable=False) _position = Column('position', Integer, index=True, default=0) - header = Column(Unicode) - pattern = Column(Unicode) - chain = Column(Unicode, nullable=True) + header = Column(SAUnicode) + pattern = Column(SAUnicode) + chain = Column(SAUnicode, nullable=True) def __init__(self, **kw): position = kw.pop('position', None) diff --git a/src/mailman/model/member.py b/src/mailman/model/member.py index 3aaa5e392..aacaa73b6 100644 --- a/src/mailman/model/member.py +++ b/src/mailman/model/member.py @@ -21,7 +21,7 @@ from mailman import public from mailman.core.constants import system_preferences from mailman.database.model import Model from mailman.database.transaction import dbconnection -from mailman.database.types import Enum, UUID +from mailman.database.types import Enum, SAUnicode, UUID from mailman.interfaces.action import Action from mailman.interfaces.address import IAddress from mailman.interfaces.listmanager import IListManager @@ -30,7 +30,7 @@ from mailman.interfaces.member import ( from mailman.interfaces.user import IUser, UnverifiedAddressError from mailman.interfaces.usermanager import IUserManager from mailman.utilities.uid import UIDFactory -from sqlalchemy import Column, ForeignKey, Integer, Unicode +from sqlalchemy import Column, ForeignKey, Integer from sqlalchemy.orm import relationship from zope.component import getUtility from zope.event import notify @@ -50,7 +50,7 @@ class Member(Model): id = Column(Integer, primary_key=True) _member_id = Column(UUID) role = Column(Enum(MemberRole), index=True) - list_id = Column(Unicode, index=True) + list_id = Column(SAUnicode, index=True) moderation_action = Column(Enum(Action)) address_id = Column(Integer, ForeignKey('address.id'), index=True) diff --git a/src/mailman/model/message.py b/src/mailman/model/message.py index c4fe63f1c..576baab5c 100644 --- a/src/mailman/model/message.py +++ b/src/mailman/model/message.py @@ -20,8 +20,9 @@ from mailman import public from mailman.database.model import Model from mailman.database.transaction import dbconnection +from mailman.database.types import SAUnicode from mailman.interfaces.messages import IMessage -from sqlalchemy import Column, Integer, Unicode +from sqlalchemy import Column, Integer from zope.interface import implementer @@ -34,9 +35,9 @@ class Message(Model): id = Column(Integer, primary_key=True) # This is a Messge-ID field representation, not a database row id. - message_id = Column(Unicode) - message_id_hash = Column(Unicode) - path = Column(Unicode) + message_id = Column(SAUnicode) + message_id_hash = Column(SAUnicode) + path = Column(SAUnicode) @dbconnection def __init__(self, store, message_id, message_id_hash, path): diff --git a/src/mailman/model/mime.py b/src/mailman/model/mime.py index 849eac385..da5f11f05 100644 --- a/src/mailman/model/mime.py +++ b/src/mailman/model/mime.py @@ -19,9 +19,9 @@ from mailman import public from mailman.database.model import Model -from mailman.database.types import Enum +from mailman.database.types import Enum, SAUnicode from mailman.interfaces.mime import FilterType, IContentFilter -from sqlalchemy import Column, ForeignKey, Integer, Unicode +from sqlalchemy import Column, ForeignKey, Integer from sqlalchemy.orm import relationship from zope.interface import implementer @@ -39,7 +39,7 @@ class ContentFilter(Model): mailing_list = relationship('MailingList') filter_type = Column(Enum(FilterType)) - filter_pattern = Column(Unicode) + filter_pattern = Column(SAUnicode) def __init__(self, mailing_list, filter_pattern, filter_type): self.mailing_list = mailing_list diff --git a/src/mailman/model/pending.py b/src/mailman/model/pending.py index 0e19f0cbf..9d8315605 100644 --- a/src/mailman/model/pending.py +++ b/src/mailman/model/pending.py @@ -24,11 +24,12 @@ from mailman import public from mailman.config import config from mailman.database.model import Model from mailman.database.transaction import dbconnection +from mailman.database.types import SAUnicode from mailman.interfaces.pending import ( IPendable, IPended, IPendedKeyValue, IPendings) from mailman.utilities.datetime import now from mailman.utilities.uid import TokenFactory -from sqlalchemy import Column, DateTime, ForeignKey, Integer, Unicode, and_ +from sqlalchemy import Column, DateTime, ForeignKey, Integer, and_ from sqlalchemy.orm import aliased, relationship from zope.interface import implementer from zope.interface.verify import verifyObject @@ -45,8 +46,8 @@ class PendedKeyValue(Model): __tablename__ = 'pendedkeyvalue' id = Column(Integer, primary_key=True) - key = Column(Unicode, index=True) - value = Column(Unicode, index=True) + key = Column(SAUnicode, index=True) + value = Column(SAUnicode, index=True) pended_id = Column(Integer, ForeignKey('pended.id'), index=True) def __init__(self, key, value): @@ -62,9 +63,9 @@ class Pended(Model): __tablename__ = 'pended' id = Column(Integer, primary_key=True) - token = Column(Unicode, index=True) + token = Column(SAUnicode, index=True) expiration_date = Column(DateTime, index=True) - key_values = relationship('PendedKeyValue', cascade="all, delete-orphan") + key_values = relationship('PendedKeyValue', cascade='all, delete-orphan') @public diff --git a/src/mailman/model/preferences.py b/src/mailman/model/preferences.py index 71775117f..366ed97c2 100644 --- a/src/mailman/model/preferences.py +++ b/src/mailman/model/preferences.py @@ -20,11 +20,11 @@ from mailman import public from mailman.database.model import Model from mailman.database.transaction import dbconnection -from mailman.database.types import Enum +from mailman.database.types import Enum, SAUnicode from mailman.interfaces.languages import ILanguageManager from mailman.interfaces.member import DeliveryMode, DeliveryStatus from mailman.interfaces.preferences import IPreferences -from sqlalchemy import Boolean, Column, Integer, Unicode +from sqlalchemy import Boolean, Column, Integer from zope.component import getUtility from zope.interface import implementer @@ -39,7 +39,7 @@ class Preferences(Model): id = Column(Integer, primary_key=True) acknowledge_posts = Column(Boolean) hide_address = Column(Boolean) - _preferred_language = Column('preferred_language', Unicode) + _preferred_language = Column('preferred_language', SAUnicode) receive_list_copy = Column(Boolean) receive_own_postings = Column(Boolean) delivery_mode = Column(Enum(DeliveryMode)) diff --git a/src/mailman/model/requests.py b/src/mailman/model/requests.py index df5f1062e..0f0f96dfe 100644 --- a/src/mailman/model/requests.py +++ b/src/mailman/model/requests.py @@ -21,12 +21,12 @@ from datetime import timedelta from mailman import public from mailman.database.model import Model from mailman.database.transaction import dbconnection -from mailman.database.types import Enum +from mailman.database.types import Enum, SAUnicode from mailman.interfaces.pending import IPendable, IPendings from mailman.interfaces.requests import IListRequests, RequestType from mailman.utilities.queries import QuerySequence from pickle import dumps, loads -from sqlalchemy import Column, ForeignKey, Integer, Unicode +from sqlalchemy import Column, ForeignKey, Integer from sqlalchemy.orm import relationship from zope.component import getUtility from zope.interface import implementer @@ -42,7 +42,7 @@ class DataPendable(dict): def update(self, mapping): # Keys and values must be strings (unicodes, but bytes values are # accepted for now). Any other types for keys are a programming - # error. If we find a non-Unicode value, pickle it and encode it in + # error. If we find a non-SAUnicode value, pickle it and encode it in # such a way that it will be properly reconstituted when unpended. clean_mapping = {} for key, value in mapping.items(): @@ -120,7 +120,7 @@ class ListRequests: if pendable is None: return None data = dict() - # Unpickle any non-Unicode values. + # Unpickle any non-SAUnicode values. for key, value in pendable.items(): if key.startswith('_pck_'): data[key[5:]] = loads(value.encode('raw-unicode-escape')) @@ -146,9 +146,9 @@ class _Request(Model): __tablename__ = '_request' id = Column(Integer, primary_key=True) - key = Column(Unicode) + key = Column(SAUnicode) request_type = Column(Enum(RequestType)) - data_hash = Column(Unicode) + data_hash = Column(SAUnicode) mailing_list_id = Column(Integer, ForeignKey('mailinglist.id'), index=True) mailing_list = relationship('MailingList') diff --git a/src/mailman/model/template.py b/src/mailman/model/template.py index 96ce43e1f..b09c644bb 100644 --- a/src/mailman/model/template.py +++ b/src/mailman/model/template.py @@ -23,6 +23,7 @@ from mailman import public from mailman.config import config from mailman.database.model import Model from mailman.database.transaction import dbconnection +from mailman.database.types import SAUnicode from mailman.interfaces.cache import ICacheManager from mailman.interfaces.domain import IDomain from mailman.interfaces.mailinglist import IMailingList @@ -32,7 +33,7 @@ from mailman.utilities import protocols from mailman.utilities.i18n import find from mailman.utilities.string import expand from requests import HTTPError -from sqlalchemy import Column, Integer, Unicode +from sqlalchemy import Column, Integer from urllib.error import URLError from urllib.parse import urlparse from zope.component import getUtility @@ -47,11 +48,11 @@ class Template(Model): __tablename__ = 'template' id = Column(Integer, primary_key=True) - name = Column(Unicode) - context = Column(Unicode) - uri = Column(Unicode) - username = Column(Unicode, nullable=True) - password = Column(Unicode, nullable=True) + name = Column(SAUnicode) + context = Column(SAUnicode) + uri = Column(SAUnicode) + username = Column(SAUnicode, nullable=True) + password = Column(SAUnicode, nullable=True) def __init__(self, name, context, uri, username, password): self.name = name diff --git a/src/mailman/model/tests/test_listmanager.py b/src/mailman/model/tests/test_listmanager.py index a8ac68c92..ff1bd3026 100644 --- a/src/mailman/model/tests/test_listmanager.py +++ b/src/mailman/model/tests/test_listmanager.py @@ -174,7 +174,9 @@ class TestListCreation(unittest.TestCase): def test_create_list_case_folding(self): # LP: #1117176 describes a problem where list names created in upper - # case are not actually usable by the LMTP server. + # case are not actually usable by the LMTP server. MySQL + # automatically changes the case of the arguments so this test will + # always fail in case of MySQL. self._manager.create('my-LIST@example.com') self.assertIsNone(self._manager.get('my-LIST@example.com')) mlist = self._manager.get('my-list@example.com') diff --git a/src/mailman/model/user.py b/src/mailman/model/user.py index a534ef2a5..edda2a9e8 100644 --- a/src/mailman/model/user.py +++ b/src/mailman/model/user.py @@ -20,7 +20,7 @@ from mailman import public from mailman.database.model import Model from mailman.database.transaction import dbconnection -from mailman.database.types import UUID +from mailman.database.types import SAUnicode, UUID from mailman.interfaces.address import ( AddressAlreadyLinkedError, AddressNotLinkedError) from mailman.interfaces.user import ( @@ -32,7 +32,7 @@ from mailman.model.roster import Memberships from mailman.utilities.datetime import factory as date_factory from mailman.utilities.uid import UIDFactory from sqlalchemy import ( - Boolean, Column, DateTime, ForeignKey, Integer, Unicode) + Boolean, Column, DateTime, ForeignKey, Integer) from sqlalchemy.orm import backref, relationship from zope.event import notify from zope.interface import implementer @@ -49,8 +49,8 @@ class User(Model): __tablename__ = 'user' id = Column(Integer, primary_key=True) - display_name = Column(Unicode) - _password = Column('password', Unicode) + display_name = Column(SAUnicode) + _password = Column('password', SAUnicode) _user_id = Column(UUID, index=True) _created_on = Column(DateTime) is_server_owner = Column(Boolean, default=False) diff --git a/src/mailman/model/workflow.py b/src/mailman/model/workflow.py index 7a0056e5f..1072fa548 100644 --- a/src/mailman/model/workflow.py +++ b/src/mailman/model/workflow.py @@ -20,8 +20,9 @@ from mailman import public from mailman.database.model import Model from mailman.database.transaction import dbconnection +from mailman.database.types import SAUnicode from mailman.interfaces.workflow import IWorkflowState, IWorkflowStateManager -from sqlalchemy import Column, Unicode +from sqlalchemy import Column from zope.interface import implementer @@ -32,10 +33,10 @@ class WorkflowState(Model): __tablename__ = 'workflowstate' - name = Column(Unicode, primary_key=True) - token = Column(Unicode, primary_key=True) - step = Column(Unicode) - data = Column(Unicode) + name = Column(SAUnicode, primary_key=True) + token = Column(SAUnicode, primary_key=True) + step = Column(SAUnicode) + data = Column(SAUnicode) @public |
