[p2pu-dev] Two way communication for notifications and messaging

Jos Flores josmasflores at gmail.com
Fri Jun 1 13:07:47 UTC 2012


Dirk, thanks for the walkthrough, it does make sense.

I've noticed you recommend grep... have you tried ack? it's really cool!
I use grep very little since I discovered it :)

cheers,
José

On 1 June 2012 09:57, Dirk Uys <dirk at p2pu.org> wrote:
> No problem. At the moment the notification code isn't in one place
> (something we can work on).
>
> I'm going to start explaining from the point where the email is sent
> to the user and work my way backwards to where notifications are
> generated. Please tell me if this ends up being confusing
>
> Emails are sent to a user by calling
> django.contrib.auth.models.User.email_user
> (https://docs.djangoproject.com/en/dev/topics/auth/#django.contrib.auth.models.User.email_user)
>
> email_user() is called by an async celery task SendNotification
> (https://github.com/p2pu/lernanta/blob/master/lernanta/apps/users/tasks.py#L25)
>
> SendNotification tasks can be created in multiple places:
>
> There is a signal
> (https://github.com/p2pu/lernanta/blob/master/lernanta/apps/content/models.py#L245)
> that fires when tasks are created or modified. This signal then calls
> a function called send_email_notification
> (https://github.com/p2pu/lernanta/blob/master/lernanta/apps/content/models.py#L213)
> that creates SendNotifications tasks.
>
> Another example is sent_creation_notification
> (https://github.com/p2pu/lernanta/blob/master/lernanta/apps/projects/models.py#L270)
> thats part of projects.models.Project. This function is called from
> the create function
> (https://github.com/p2pu/lernanta/blob/master/lernanta/apps/projects/models.py#L270/)
> that in turn gets called in the create view
> (https://github.com/p2pu/lernanta/blob/master/lernanta/apps/projects/views.py#L189)
>
> I'm not sure at what other places SendNotification tasks are created,
> but you can grep to code base to find out. grep -r SendNotification *
>
> The fact that the places where SendNotification tasks are created are
> spread all over isn't a problem in itself, but at the moment checks
> for notification preference also seem spread out a bit. For example
> task updates (https://github.com/p2pu/lernanta/blob/master/lernanta/apps/content/models.py#L234).
> It also makes it difficult to implement batching of notifications.
>
> Than being said, I think that notification may be one of the first
> parts of Lernanta that we can put into a separate module without too
> much surgery on the whole code base.
>
> Cheers
> d
>
> On Fri, Jun 1, 2012 at 10:28 AM, Jos Flores <josmasflores at gmail.com> wrote:
>> Hey Dirk,
>>
>> I know nothing about the topic but curious about where the
>> notifications code is and how it works... could you point me towards
>> it?
>>
>> cheers,
>> José
>>
>>
>> On 1 June 2012 09:01, Dirk Uys <dirk at p2pu.org> wrote:
>>> Hi
>>>
>>> I've been thinking a little bit about two way interaction for
>>> messaging and notifications. On the software side of things I don't
>>> foresee too much trouble, but on the config side of things I'm a
>>> little uncertain.
>>>
>>> Our primary MX record points to google, then @lists.p2pu.org points to
>>> the service we use for the mailing list. I guess we could use
>>> something like @site.p2pu.org? I see that github uses
>>> @reply.github.com with something that looks like a one time token.
>>>
>>> Is there any specific mail server that anyone would suggest? I have
>>> always skipped the talk about mail servers when reading linux sysadmin
>>> docs :)
>>>
>>> Cheers
>>> d
>>>
>>> ps. I apologize for the thinking as I type email
>>> _______________________________________________
>>> p2pu-dev mailing list
>>> p2pu-dev at lists.p2pu.org
>>> http://lists.p2pu.org/mailman/listinfo/p2pu-dev
>> _______________________________________________
>> p2pu-dev mailing list
>> p2pu-dev at lists.p2pu.org
>> http://lists.p2pu.org/mailman/listinfo/p2pu-dev
> _______________________________________________
> p2pu-dev mailing list
> p2pu-dev at lists.p2pu.org
> http://lists.p2pu.org/mailman/listinfo/p2pu-dev


More information about the p2pu-dev mailing list