mirror of
https://github.com/chatmail/core.git
synced 2026-04-18 05:56:31 +03:00
allow deleting referenced contacts in UI (#3751)
* allow deleting referenced contacts in UI we are quite often getting requests of users who want to get rid of some contact in the "new chat" list. there is already a "delete" option, but it does not work for referenced contacts - however, it is not obvious for users that a contact is in use, esp. of some mailing list or larger chat, old contacts, whatever. this pr revives an old idea [^1] of "soft deleting" referenced contacts - this way, the user can remove the annoying entry without the need to understand complicated things and finally saying that deletion is impossible :) once the contact is reused, it will reappear, however, this is already explained in the confirmation dialog of the UIs. technically, this pr was simpler as expected as we already have a Origin::Hidden, that is just reused here. [^1]: https://github.com/deltachat/deltachat-core/pull/542 * update rust doccomment * update changelog * avoid races on contact deletion chats may be created between checking for "no chats" and contact deletion. this is prevented by putting the statement into an EXCLUSIVE transaction. * fix failing python test
This commit is contained in:
@@ -200,11 +200,11 @@ class TestOfflineContact:
|
||||
assert ac1.delete_contact(contact1)
|
||||
assert contact1 not in ac1.get_contacts()
|
||||
|
||||
def test_get_contacts_and_delete_fails(self, acfactory):
|
||||
def test_delete_referenced_contact_hides_contact(self, acfactory):
|
||||
ac1 = acfactory.get_pseudo_configured_account()
|
||||
contact1 = ac1.create_contact("some1@example.com", name="some1")
|
||||
msg = contact1.create_chat().send_text("one message")
|
||||
assert not ac1.delete_contact(contact1)
|
||||
assert ac1.delete_contact(contact1)
|
||||
assert not msg.filemime
|
||||
|
||||
def test_create_chat_flexibility(self, acfactory):
|
||||
|
||||
Reference in New Issue
Block a user