[Patchew-devel] [PATCH] Change "mbox" to use getters and setters instead of SerializerMethodField - Rename the existing "mbox" field to e.g. "mbox_blob" - Add getters and setters for "mbox" to api.models.Message
Shubham Jain
shubhamjain7495 at gmail.com
Tue May 1 07:35:10 UTC 2018
---
api/models.py | 24 ++++++++++++++----------
api/rest.py | 5 +----
2 files changed, 15 insertions(+), 14 deletions(-)
diff --git a/api/models.py b/api/models.py
index 4cc2b74..13ec44e 100644
--- a/api/models.py
+++ b/api/models.py
@@ -245,12 +245,12 @@ class MessageManager(models.Manager):
self.delete_subthread(r)
msg.delete()
- def add_message_from_mbox(self, mbox, user, project_name=None):
+ def add_message_from_mbox(self, mbox_blob, user, project_name=None):
def find_message_projects(m):
return [p for p in Project.objects.all() if p.recognizes(m)]
- m = MboxMessage(mbox)
+ m = MboxMessage(mbox_blob)
msgid = m.get_message_id()
if project_name:
projects = [Project.object.get(name=project_name)]
@@ -272,7 +272,7 @@ class MessageManager(models.Manager):
msg.project = p
if self.filter(message_id=msgid, project__name=p.name).first():
raise self.DuplicateMessageError(msgid)
- msg.save_mbox(mbox)
+ msg.save_mbox(mbox_blob)
msg.save()
emit_event("MessageAdded", message=msg)
self.update_series(msg)
@@ -318,20 +318,24 @@ class Message(models.Model):
num_patches = models.IntegerField(null=False, default=-1, blank=True)
objects = MessageManager()
+ def _get_mbox_blob(self):
+ return self.get_mbox()
- def save_mbox(self, mbox):
- save_blob(mbox, self.message_id)
+ mbox = property(_get_mbox_blob)
+
+ def save_mbox(self, mbox_blob):
+ save_blob(mbox_blob, self.message_id)
def get_mbox_obj(self):
self.get_mbox()
return self._mbox_obj
def get_mbox(self):
- if hasattr(self, "mbox"):
- return self.mbox
- self.mbox = load_blob(self.message_id)
- self._mbox_obj = MboxMessage(self.mbox)
- return self.mbox
+ if hasattr(self, "mbox_blob"):
+ return self.mbox_blob
+ self.mbox_blob = load_blob(self.message_id)
+ self._mbox_obj = MboxMessage(self.mbox_blob)
+ return self.mbox_blob
def get_num(self):
assert self.is_patch or self.is_series_head
diff --git a/api/rest.py b/api/rest.py
index 5610844..a2ab004 100644
--- a/api/rest.py
+++ b/api/rest.py
@@ -287,10 +287,7 @@ class MessageSerializer(BaseMessageSerializer):
class Meta:
model = Message
fields = BaseMessageSerializer.Meta.fields + ('mbox', )
- def get_mbox(self, obj):
- return obj.get_mbox()
- mbox = SerializerMethodField()
-
+
def get_fields(self):
fields = super(MessageSerializer, self).get_fields()
request = self.context['request']
--
2.14.3 (Apple Git-98)
More information about the Patchew-devel
mailing list