[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