-
Notifications
You must be signed in to change notification settings - Fork 43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Powiadomienie do obserwujących sprawę #923
Comments
@NameeLesS , masz ochotę? |
yhm, mogę spróbować |
Jeżeli chcesz to możemy porozmawiać wieczorem i ci objaśnię jak to wykonać :) |
Na razie zrobię research, jeżeli nie będę miał pomysłu jak do tego podejść to napiszę |
Nie ma problemu, abyśmy porozmawiali, dzięki temu będzie to zrobione szybciej i będzie można przejść do kolejnych kroków, ale nie narzucam się. |
Dobrze możemy porozmawiać |
@ad-m ostatnio mówiłem, że chciałbym, aby to jakie powiadomienie w jakim przypadku wysłać nie było hardcoded w utilsie do wysyłania maili tak jak to jest w poradni https://github.com/watchdogpolska/poradnia/blob/7f58cfe5a8c906b334d58751b6dff505198e5c2e/poradnia/template_mail/utils.py#L78 |
Moim zdaniem optymalnie byłoby, gdyby ViewSets wysyłał wywołanie W Poradni mieliśmy odrobinę inne podejście, że |
Nie do końca zrozumiałeś moje pytanie, dlatego może wyjaśnię co zamierzam. Obecnie mam stworzonego mixina class EventViewSet(viewsets.ModelViewSet, SendNotificationsMixin):
notified_users = "case.notified_users"
#... mixin ten obecnie sprawdza wprowadzone zmiany i zwraca je w postaci dicta {
"name":{
"added": None,
"removed": None,
"changed":{
"from":"case-0002",
"to":"case-00022"
}
},
"tags":{
"added":[
<Tag:tag-0021>
],
"removed":[
<Tag:tag-0006>,
<Tag:tag-0008>
],
"changed": None
}
}
chciałbym, aby w danym class CaseViewSet(viewsets.ModelViewSet, SendNotificationsMixin):
notified_users = "notified_users"
template_map = {
"put": {
"tags": {
"added": ["template/tag_added1", "template/tag_added2"],
"removed": ["template/tag_removed"],
"multi": ["template/tag_multiple_changes"]
},
"multi": ["template/case_updated"]
},
"delete": ["template/case_deleted"],
"post": ["template/case_created"]
}
można by było użyć I tak jak pisałeś ViewSet będzie pobierał userów z pola określonego w
I teraz moje pytanie, czy posiadasz jakieś zastrzeżenia co do tego podejścia? Widzisz coś czego ja nie widzę a co należało by uwzględnić? |
Z mojej perspektywy jest to...przekombinowane. Po pierwsze, najważniejszymi powiadomienia są aktualizacje. Niewykluczone, że o zmianach nie potrzebujemy wcale powiadomień. Przykładowo GitHub nie powiadamia o zmianie, gdy edytujesz komentarz. Skupmy się na podstawowym rozwiązaniu i go dostarczmy. Po drugie, trudno mi dostrzec praktyczność pisania tyle szablonów dla każdego pola. Jeżeli już to jeden, który wskazuje na zakres zmian. Przykładowo w stylu BitBucket: Co sądzisz o tym, aby rozszerzyć model Budowanie struktury, która podejście do wskazania zakresu zmian w aktualizacji pozostawiłbym na #156 , co pewnie wydarzy się dopiero za pewien czas. |
|
Zrób szkic PR ( https://github.blog/2019-02-14-introducing-draft-pull-requests/ ), spróbuje to przedstawić subtelnymi zmianami. |
Na modelu
Case
mamy polenotified_users
. W przypadku zmian wokółLetter
,Note
,Event
, a także samychCase
powiązanych z danąCase
powinniśmy wysłać powiadomienie e-mailowe do użytkowników wskazanych przeznotified_users
.Kod wymaga rozsądnego pokrycia testami.
Obecnie Poradnia ma w tym zakresie zgrabną strukturę kodu, jak dobrze pamiętam. Warto się zainspirować.
The text was updated successfully, but these errors were encountered: