def test_send_post_moderation_signal(self): """check if custom_approve_handler function was called when """ """moderation_approve signal was send""" def custom_post_moderation_handler(sender, instance, status, **kwargs): # do some stuff with approved instance instance.description = 'Change description' instance.save() post_moderation.connect(custom_post_moderation_handler, sender=UserProfile) post_moderation.send(sender=UserProfile, instance=self.profile, status=MODERATION_STATUS_APPROVED) self.assertEqual(self.profile.description, 'Change description')
HomeAdModeratedMessageEmail, HomeBuyerToVendorMessageEmail, HomeVendorToBuyerMessageEmail, HomeNewPotentialBuyerToVendorMessageEmail, HomeNewAdToBuyerMessageEmail) geoad_new_interested_user.connect(receiver=partial( geoad_new_interested_user_callback, mail_class=HomeNewPotentialBuyerToVendorMessageEmail), weak=False) geoad_new_relevant_ad_for_search.connect(receiver=partial( geoad_new_relevant_ad_for_search_callback, mail_class=HomeNewAdToBuyerMessageEmail), weak=False) geoad_user_message.connect(receiver=partial( geoad_user_message_callback, mail_class=HomeBuyerToVendorMessageEmail), weak=False) geoad_vendor_message.connect(receiver=partial( geoad_vendor_message_callback, mail_class=HomeVendorToBuyerMessageEmail), weak=False) moderation_in_progress.connect(receiver=partial( ad_post_save_callback, mail_class=HomeAdModifiedMessageEmail), weak=False) post_moderation.connect(receiver=partial( ad_post_moderation_callback, mail_class=HomeAdModeratedMessageEmail), weak=False)
def moderated_geoads_register(model_class): post_moderation.connect(post_moderation_abstract_handler, dispatch_uid="post_moderation_abstract_handler")
#-*- coding: utf-8 -*- from functools import partial from moderation.signals import post_moderation from geoads.signals import (geoad_new_interested_user, geoad_new_relevant_ad_for_search, geoad_user_message, geoad_vendor_message) from geoads.contrib.moderation.signals import moderation_in_progress from geoads.contrib.notifications.models import (geoad_new_interested_user_callback, geoad_new_relevant_ad_for_search_callback, geoad_user_message_callback, geoad_vendor_message_callback, ad_post_save_callback, ad_post_moderation_callback) from sanscom.utils.mails import (HomeAdModifiedMessageEmail, HomeAdModeratedMessageEmail, HomeBuyerToVendorMessageEmail, HomeVendorToBuyerMessageEmail, HomeNewPotentialBuyerToVendorMessageEmail, HomeNewAdToBuyerMessageEmail) geoad_new_interested_user.connect(receiver=partial(geoad_new_interested_user_callback, mail_class=HomeNewPotentialBuyerToVendorMessageEmail), weak=False) geoad_new_relevant_ad_for_search.connect(receiver=partial(geoad_new_relevant_ad_for_search_callback, mail_class=HomeNewAdToBuyerMessageEmail), weak=False) geoad_user_message.connect(receiver=partial(geoad_user_message_callback, mail_class=HomeBuyerToVendorMessageEmail), weak=False) geoad_vendor_message.connect(receiver=partial(geoad_vendor_message_callback, mail_class=HomeVendorToBuyerMessageEmail), weak=False) moderation_in_progress.connect(receiver=partial(ad_post_save_callback, mail_class=HomeAdModifiedMessageEmail), weak=False) post_moderation.connect(receiver=partial(ad_post_moderation_callback, mail_class=HomeAdModeratedMessageEmail), weak=False)
ad_post_save_handler(sender, instance, **kwargs) # #tip: ContentType.objects.get_for_model(instance) #tip: here we could get instance.filterset if status == 1: # send on twitter token = oauth.Token(key=settings.TWITTER_ACCESS_TOKEN_KEY, secret=settings.TWITTER_ACCESS_TOKEN_SECRET) consumer = oauth.Consumer(settings.TWITTER_CONSUMER_KEY, settings.TWITTER_CONSUMER_SECRET) client = oauth.Client(consumer, token) ad = HomeForSaleAd.objects.get(id=instance.moderated_object.changed_object.id) habitation_type = ad.get_habitation_type_display() price = ad.price surface = int(ad.surface) rooms = int(ad.nb_of_rooms) status = u'#achetersanscom %s - %s€ - %sm² - %s pièces' % (habitation_type, price, surface, rooms) pnt = GEOSGeometry('SRID=%s;%s' % (ad.location.srid, ad.location.wkt)) latitude = pnt.y longitude = pnt.x params = 'status=%s&lat=%s&long=%s&display_coordinates=true' % (urlencode(status), latitude, longitude) #print params if not settings.DEBUG and settings.TWITTER_NOTIFICATION: resp, content = client.request( 'http://api.twitter.com/1/statuses/update.xml?%s' % (params), "POST" ) post_moderation.connect(post_moderation_abstract_handler, dispatch_uid="post_moderation_abstract_handler")