def set_data_for(self, group_id=None, search=None): if search: self.data = [("", tel.contact.name) for tel in PhoneNumber.filter().group_by('contact') if search.contact == tel.contact] else: self.data = [("", contact.name) for contact in Contact.all()] if group_id: if group_id == ALL_CONTACTS: qs = ContactGroup.filter().group_by('contact') else: qs = ContactGroup.filter(group__id=group_id) self.data = [("", contact_gp.contact.name) for contact_gp in qs]
def isvalid(self): self.list_phone_num = [(i.contact.number) for i in ContactGroup.filter(group__id=self.group.id)] if self.list_phone_num == []: self.send_butt.setEnabled(False) self.send_butt.setToolTip(u"""Ce groupe n'a pas le numéro de téléphone.""")
def addressbook_contactlist(group_id): try: group_id = int(group_id) except: group_id = ALL_CONTACTS if group_id == ALL_CONTACTS: qs = ContactGroup.filter().group_by('contact') group_dict = {'id': -1, 'name': u"Tous"} else: qs = ContactGroup.filter(group__id=group_id) group_dict = Group.get(id=group_id).to_dict() data = {'contacts': [contact_group.contact.to_dict() for contact_group in qs], 'group': group_dict} return json.dumps(data)
def isvalid(self): self.list_phone_num = [ (i.contact.number) for i in ContactGroup.filter(group__id=self.group.id) ] if self.list_phone_num == []: self.send_butt.setEnabled(False) self.send_butt.setToolTip(u"""Ce groupe n'a pas le numéro de téléphone.""")
def popup(self, pos): row = self.selectionModel().selection().indexes()[0].row() if (len(self.data) - 1) < row: return False self.contact = Contact.get(Contact.number == int(self.data[row][2])) menu = QMenu() menu.addAction(QIcon("{}transfer.png".format(Config.img_media)), u"Faire un envoi", lambda: self.send_money(self.contact)) menu.addAction(QIcon("{}edit_contact.png".format(Config.img_media)), u"modifier le contact", lambda: self.edit_contacts(self.contact)) addgroup = menu.addMenu(u"Ajouter au groupe") delgroup = menu.addMenu(u"Enlever du groupe") # # Enlever du groupe no_select = ContactGroup.filter(contact__number=int(self.data[row][2])) [delgroup.addAction(u"{}".format(grp_ct.group.name), lambda grp_ct=grp_ct: self.del_grp( grp_ct)) for grp_ct in no_select] # # Ajout au groupe lt_grp_select = [(i.group.name) for i in no_select] [addgroup.addAction(u"{}".format(grp.name), lambda grp=grp: self.add_grp(grp)) for grp in Group.select() if not grp.name in lt_grp_select] self.action = menu.exec_(self.mapToGlobal(pos)) self.refresh()
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)
def addressbook_delete_group(group_id): data = {} subst = {} try: group = Group.get(id=int(group_id)) contact_groups = ContactGroup.filter(group__id=int(group_id)) except Group.DoesNotExist as e: subst.update({'err': e.message, 'group': group_id}) dict_return(data, ERROR, u"Le groupe #%(group)s n'existe pas : %(err)r" % subst, message_html=u"Le groupe " u"<strong>%(group)s</strong> n'existe pas.<br />" u"<em>%(err)r</em>" % subst) return json.dumps(data) subst.update({'group': group.display_name()}) try: [cg.delete_instance() for cg in contact_groups] group.delete_instance() dict_return(data, SUCCESS, u"%(group)s a été supprimé avec succès." % subst, message_html=u"<strong>%(group)s</strong> " u"a été supprimé avec succès." % subst) except Exception as e: subst.update({'err': e.message}) dict_return(data, ERROR, u"Impossible de supprimer le groupe %(group)s : %(err)r" % subst, message_html=u"Impossible de supprimer le groupe " u"<strong>%(group)s</strong><br />" u"<em>%(err)r</em>" % subst) return json.dumps(data)