diff options
| author | Aurélien Bompard <aurelien@bompard.org> | 2013-11-15 14:37:08 +0100 |
|---|---|---|
| committer | Aurélien Bompard <aurelien@bompard.org> | 2013-11-15 14:37:08 +0100 |
| commit | a847708a435eb1954f994f71f671c0c275ad476c (patch) | |
| tree | fa2c68354c8d028e5ce514c7c5148339c2db8953 | |
| parent | 4a9b981f82aa1572da91f16cbfd6327ee568c32a (diff) | |
| download | kittystore-a847708a435eb1954f994f71f671c0c275ad476c.tar.gz kittystore-a847708a435eb1954f994f71f671c0c275ad476c.tar.xz kittystore-a847708a435eb1954f994f71f671c0c275ad476c.zip | |
Store the list creation datetime
| -rw-r--r-- | kittystore/storm/model.py | 3 | ||||
| -rw-r--r-- | kittystore/storm/schema/__init__.py | 3 | ||||
| -rw-r--r-- | kittystore/storm/schema/patch_14.py | 3 | ||||
| -rw-r--r-- | kittystore/test/__init__.py | 2 |
4 files changed, 10 insertions, 1 deletions
diff --git a/kittystore/storm/model.py b/kittystore/storm/model.py index 45167d2..f89fb6b 100644 --- a/kittystore/storm/model.py +++ b/kittystore/storm/model.py @@ -50,13 +50,14 @@ class List(Storm): # The following properties are mirrored from Mailman's MailingList instance mailman_props = ("display_name", "description", "subject_prefix", - "archive_policy") + "archive_policy", "created_at") name = Unicode(primary=True) display_name = Unicode() description = Unicode() subject_prefix = Unicode() archive_policy = Enum(ArchivePolicy) + created_at = DateTime() recent_participants_count = Int() # cached computation result recent_threads_count = Int() # cached computation result diff --git a/kittystore/storm/schema/__init__.py b/kittystore/storm/schema/__init__.py index 384e9f3..92c9d16 100644 --- a/kittystore/storm/schema/__init__.py +++ b/kittystore/storm/schema/__init__.py @@ -10,6 +10,7 @@ CREATES = { description TEXT, subject_prefix TEXT, archive_policy INTEGER, + created_at DATETIME, recent_participants_count INTEGER, recent_threads_count INTEGER, PRIMARY KEY (name) @@ -102,6 +103,7 @@ CREATES = { description TEXT, subject_prefix TEXT, archive_policy INTEGER, + created_at TIMESTAMP WITHOUT TIME ZONE, recent_participants_count INTEGER, recent_threads_count INTEGER, PRIMARY KEY (name) @@ -205,6 +207,7 @@ CREATES = { description TEXT, subject_prefix TEXT, archive_policy INTEGER, + created_at DATETIME, recent_participants_count INTEGER, recent_threads_count INTEGER, PRIMARY KEY (name) diff --git a/kittystore/storm/schema/patch_14.py b/kittystore/storm/schema/patch_14.py index 691fc82..9f70fda 100644 --- a/kittystore/storm/schema/patch_14.py +++ b/kittystore/storm/schema/patch_14.py @@ -18,6 +18,7 @@ SQL = { );""", # No alter table add constraint in SQLite: http://www.sqlite.org/omitted.html 'CREATE INDEX "ix_email_archived_date" ON "email" (archived_date);', + 'ALTER TABLE "list" ADD COLUMN created_at DATETIME;', ], "postgres": [""" CREATE TABLE "list_month_activity" ( @@ -32,6 +33,7 @@ SQL = { 'ALTER TABLE "thread" ADD CONSTRAINT fk_thread_list FOREIGN KEY (list_name) REFERENCES list(name) ON DELETE CASCADE;', 'ALTER TABLE "email" ADD CONSTRAINT fk_email_list FOREIGN KEY (list_name) REFERENCES list(name) ON DELETE CASCADE;', 'CREATE INDEX "ix_email_archived_date" ON "email" (archived_date);', + 'ALTER TABLE "list" ADD COLUMN created_at TIMESTAMP WITHOUT TIME ZONE;', ], "mysql": [""" CREATE TABLE `list_month_activity` ( @@ -46,6 +48,7 @@ SQL = { 'ALTER TABLE `thread` ADD CONSTRAINT fk_thread_list FOREIGN KEY (list_name) REFERENCES list(name) ON DELETE CASCADE;', 'ALTER TABLE `email` ADD CONSTRAINT fk_email_list FOREIGN KEY (list_name) REFERENCES list(name) ON DELETE CASCADE;', 'CREATE INDEX `ix_email_archived_date` ON `email` (archived_date);', + 'ALTER TABLE `list` ADD COLUMN created_at DATETIME;', ], } diff --git a/kittystore/test/__init__.py b/kittystore/test/__init__.py index 257e3bd..bbea7db 100644 --- a/kittystore/test/__init__.py +++ b/kittystore/test/__init__.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- import os +import datetime from mailman.interfaces.archiver import ArchivePolicy @@ -21,6 +22,7 @@ class FakeList(object): description = None subject_prefix = None archive_policy = ArchivePolicy.public + created_at = datetime.datetime.utcnow() def __init__(self, name): self.fqdn_listname = unicode(name) |
