summaryrefslogtreecommitdiff
path: root/service/pixelated/adapter
diff options
context:
space:
mode:
authorLisa Junger <ljunger@thoughtworks.com>2014-10-10 18:16:34 +0200
committerLisa Junger <ljunger@thoughtworks.com>2014-10-13 14:38:28 +0200
commit456019b85f9efbc50ccf932e8081641facaf8fae (patch)
tree141273ce68969febf176d95ad1fb0408b26a5222 /service/pixelated/adapter
parentc2b308ce34eadd5ec2c841da03e111ea107972d8 (diff)
#104 Implemented mark single mail as unread
Diffstat (limited to 'service/pixelated/adapter')
-rw-r--r--service/pixelated/adapter/mail_service.py3
-rw-r--r--service/pixelated/adapter/pixelated_mail.py7
-rw-r--r--service/pixelated/adapter/status.py5
3 files changed, 14 insertions, 1 deletions
diff --git a/service/pixelated/adapter/mail_service.py b/service/pixelated/adapter/mail_service.py
index ad494ac8..a6241821 100644
--- a/service/pixelated/adapter/mail_service.py
+++ b/service/pixelated/adapter/mail_service.py
@@ -54,6 +54,9 @@ class MailService:
def mark_as_read(self, mail_id):
return self.mail(mail_id).mark_as_read()
+ def mark_as_unread(self, mail_id):
+ return self.mail(mail_id).mark_as_unread()
+
def tags_for_thread(self, thread):
raise NotImplementedError()
diff --git a/service/pixelated/adapter/pixelated_mail.py b/service/pixelated/adapter/pixelated_mail.py
index 4b207059..fabb1ab4 100644
--- a/service/pixelated/adapter/pixelated_mail.py
+++ b/service/pixelated/adapter/pixelated_mail.py
@@ -93,7 +93,7 @@ class InputMail:
fd[fields.MULTIPART_KEY] = True
fd[fields.RECENT_KEY] = True
fd[fields.TYPE_KEY] = fields.TYPE_FLAGS_VAL
- fd[fields.FLAGS_KEY] = ["\\Recent"]
+ fd[fields.FLAGS_KEY] = Status.to_flags([status.name for status in self.status])
self._fd = fd
return fd
@@ -261,6 +261,11 @@ class PixelatedMail:
self.save()
return self
+ def mark_as_unread(self):
+ self.fdoc.content['flags'].remove(Status.PixelatedStatus.SEEN)
+ self.save()
+ return self
+
def mark_as_not_recent(self):
if Status.PixelatedStatus.RECENT in self.fdoc.content['flags']:
self.fdoc.content['flags'].remove(Status.PixelatedStatus.RECENT)
diff --git a/service/pixelated/adapter/status.py b/service/pixelated/adapter/status.py
index cd11a46f..3807359c 100644
--- a/service/pixelated/adapter/status.py
+++ b/service/pixelated/adapter/status.py
@@ -37,6 +37,11 @@ class Status:
def from_flags(cls, flags):
return set(cls.from_flag(flag) for flag in flags if flag in cls.LEAP_FLAGS_STATUSES.keys())
+ @classmethod
+ def to_flags(cls, statuses):
+ statuses_to_flags = dict(zip(cls.LEAP_FLAGS_STATUSES.values(), cls.LEAP_FLAGS_STATUSES.keys()))
+ return [statuses_to_flags[status] for status in statuses]
+
def __init__(self, name):
self.name = name
self.ident = name.__hash__()