Exemplo n.º 1
0
def update_contact(contact, subscribe, attributes={}):
    email = contact.email
    current = Subscription.email_is_subscribed(email)
    attributesChanged = False
    sub = None
    
    if attributes:
        sub, created = Subscription.objects.get_or_create(email=email)
        if created:
            attributesChanged = True
        else:
            oldAttr = [(a.name,a.value) for a in sub.attributes.all()]
            oldAttr.sort()
        sub.update_attributes(attributes)
        newAttr = [(a.name,a.value) for a in sub.attributes.all()]
        newAttr.sort()
        
        if not created:
            attributesChanged = oldAttr != newAttr    

    if current == subscribe:
        if subscribe:
            if attributesChanged:
                result = _("Updated subscription for %(email)s.")
            else:
                result = _("Already subscribed %(email)s.")
        else:
            result = _("Already removed %(email)s.")
                
    else:
        if not sub:
            sub, created = Subscription.objects.get_or_create(email=email)
        sub.subscribed = subscribe
        sub.save()

        if subscribe:
            mailman_add(contact)
            result = _("Subscribed: %(email)s")
        else:
            mailman_remove(contact)
            result = _("Unsubscribed: %(email)s")
            

    return result % { 'email' : email }
Exemplo n.º 2
0
def update_contact(contact, subscribe, attributes={}):
    email = contact.email
    current = Subscription.email_is_subscribed(email)
    attributesChanged = False
    sub = None

    if attributes:
        sub, created = Subscription.objects.get_or_create(email=email)
        if created:
            attributesChanged = True
        else:
            oldAttr = [(a.name, a.value) for a in sub.attributes.all()]
            oldAttr.sort()
        sub.update_attributes(attributes)
        newAttr = [(a.name, a.value) for a in sub.attributes.all()]
        newAttr.sort()

        if not created:
            attributesChanged = oldAttr != newAttr

    if current == subscribe:
        if subscribe:
            if attributesChanged:
                result = _("Updated subscription for %(email)s.")
            else:
                result = _("Already subscribed %(email)s.")
        else:
            result = _("Already removed %(email)s.")

    else:
        if not sub:
            sub, created = Subscription.objects.get_or_create(email=email)
        sub.subscribed = subscribe
        sub.save()

        if subscribe:
            mailman_add(contact)
            result = _("Subscribed: %(email)s")
        else:
            mailman_remove(contact)
            result = _("Unsubscribed: %(email)s")

    return result % {'email': email}
Exemplo n.º 3
0
def update_contact(contact, subscribe):
    email = contact.email
    current = Subscription.email_is_subscribed(email)

    if current == subscribe:
        if subscribe:
            result = _("Already subscribed %(email)s.")
        else:
            result = _("Already removed %(email)s.")

    else:
        sub, created = Subscription.objects.get_or_create(email=email)
        sub.subscribed = subscribe
        sub.save()

        if subscribe:
            mailman_add(contact)
            result = _("Subscribed: %(email)s")
        else:
            mailman_remove(contact)
            result = _("Unsubscribed: %(email)s")

    return result % {'email': email}
Exemplo n.º 4
0
def update_contact(contact, subscribe):
    email = contact.email
    current = Subscription.email_is_subscribed(email)
    
    if current == subscribe:
        if subscribe:
            result = _("Already subscribed %(email)s.")
        else:
            result = _("Already removed %(email)s.")
                
    else:
        sub, created = Subscription.objects.get_or_create(email=email)
        sub.subscribed = subscribe
        sub.save()

        if subscribe:
            mailman_add(contact)
            result = _("Subscribed: %(email)s")
        else:
            mailman_remove(contact)
            result = _("Unsubscribed: %(email)s")

    return result % { 'email' : email }
Exemplo n.º 5
0
def is_subscribed(contact):
    return Subscription.email_is_subscribed(contact.email)
Exemplo n.º 6
0
def is_subscribed(contact):
    return Subscription.email_is_subscribed(contact.email)