예제 #1
0
def addressbook_add_contact_to_group(group_id, contact_id):
    contact = Contact.get(id=int(contact_id))
    group = Group.get(id=int(group_id))

    data = {'contact': contact.to_dict(),
            'group': group.to_dict()}

    subst = {'contact': contact.display_name(),
             'group': group.display_name()}

    if ContactGroup.filter(contact=contact, group=group).count():
        dict_return(data, INFO,
                u"%(contact)s fait déjà parti du groupe %(group)s." % subst,
                message_html=u"<strong>%(contact)s</strong> fait déjà "
                             u"parti du groupe "
                             u"<strong>%(group)s</strong>." % subst)
    else:
        cg = ContactGroup(contact=contact, group=group)
        try:
            cg.save()
            dict_return(data, SUCCESS,
                    u"%(contact)s a été ajouté au groupe %(group)s." % subst,
                    message_html=u"<strong>%(contact)s</strong> a été "
                                 u"ajouté au groupe "
                                 u"<strong>%(group)s</strong>." % subst)
        except Exception as e:
            subst.update({'err': e.message})
            dict_return(data, ERROR,
                    u"Impossible d'ajouter %(contact)s au groupe "
                    u"%(group)s: %(err)r" % subst,
                    message_html=u"Impossible d'ajouter "
                                 u"<strong>%(contact)s</strong> au "
                                 u"groupe <strong>%(group)s</strong>:<br />"
                                 u"<em>%(err)r</em>" % subst)

    return json.dumps(data)