Thanks for your help. But before I update the open edx version because the "SignalHandler" class does not have the "item_deleted" attribute.
El viernes, 17 de febrero de 2017, 21:22:41 (UTC+1), David Ormsbee escribió: > > Hi Juan, > > There's a Django signal emitted whenever an item is deleted from a course. > You should be able to listen for that with your own code without touching > anything in core. You can see an example of listening for it here: > > > https://github.com/edx/edx-platform/blob/dda92d13198b935f8ebaaaf1ab29b3f05c2ec6ea/cms/djangoapps/contentstore/signals.py#L63-L75 > > Keep in mind that catching the signal happens synchronously in the same > transaction as the request to delete the item. If you're going to do > anything that might fail or take a long time (like a POST over a network > connection), you'll probably want to make "my_handler" spin off a celery > task instead so that it can run in the background and not slow down the act > of deletion. It might look something like this: > > from django.dispatch import receiver > > from xmodule.modulestore.django import SignalHandler > from lms import CELERY_APP > > @receiver(SignalHandler.item_deleted) > def my_handler(**kwargs): > usage_key = kwargs.get('usage_key') # This is what identifies the unit > that was deleted > user_id = kwargs.get('user_id') # This is the user who did the > deleting > course_key = usage_key.course_key # The identifier for the course it > was deleted from. > > do_something_slow.apply_async(args=(usage_key,)) > > @CELERY_APP.task(name='mymodule.tasks.do_something_slow') > def do_something_slow(usage_key): > # Whatever slow operation you need to do. > > # If you need to make a network request, please use the "requests" > library and > > # be sure to use timeouts. > > > I'm a little fuzzy on that celery syntax, but I think that's it. Hope that > helps. > > Take care. > > Dave > > On Fri, Feb 17, 2017 at 12:50 PM, Juan Carlos Hierro <[email protected] > <javascript:>> wrote: > >> Good, >> >> I am developing an xblock and I need to execute an action (hook) when I >> delete this xblock from the studio. If possible I would like a solution >> without having to modify the core. >> >> Thanks and regards! >> >> -- >> You received this message because you are subscribed to the Google Groups >> "General Open edX discussion" group. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/edx-code/c687fc26-8fd9-4641-9bbd-4cd59ac007fb%40googlegroups.com >> >> <https://groups.google.com/d/msgid/edx-code/c687fc26-8fd9-4641-9bbd-4cd59ac007fb%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > > -- You received this message because you are subscribed to the Google Groups "General Open edX discussion" group. To view this discussion on the web visit https://groups.google.com/d/msgid/edx-code/58c42345-e0f3-443f-86c2-9de750a56eee%40googlegroups.com.
