From 9dd1859441423e1fee68e9f7299bc1c8e1e97157 Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Wed, 19 Jun 2013 15:12:07 +0200 Subject: [PATCH] Adding support for alias -> alias import. --- modoboa/admin/models.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/modoboa/admin/models.py b/modoboa/admin/models.py index b46d3c974..30d14928d 100644 --- a/modoboa/admin/models.py +++ b/modoboa/admin/models.py @@ -1138,6 +1138,9 @@ class Alias(DatesAware): return False def from_csv(self, user, row, expected_elements=5): + """Create a new alias from a CSV file entry + + """ if len(row) < expected_elements: raise AdminError(_("Invalid line: %s" % row)) localpart, domname = split_mailbox(row[1].strip()) @@ -1161,10 +1164,16 @@ class Alias(DatesAware): ext_rcpts += [rcpt] continue try: - int_rcpts += [Mailbox.objects.get(address=localpart, - domain__name=domname)] - except Mailbox.DoesNotExist: - raise AdminError(_("Mailbox %s does not exist" % rcpt)) + rcpt = Alias.objects.get(domain=domname, address=localpart) + except Alias.DoesNotExist: + rcpt = None + if rcpt is None: + try: + rcpt = Mailbox.objects.get(address=localpart, + domain__name=domname) + except Mailbox.DoesNotExist: + raise AdminError(_("Local recipient %s not found" % rcpt)) + int_rcpts += [rcpt] self.save(int_rcpts, ext_rcpts, creator=user) def to_csv(self, csvwriter):