def update(self, request, pk=None): balance = get_object_or_404(self.queryset, pk=pk) data = request.data users = [ User.objects.get(username='******'), User.objects.get(username='******'), User.objects.get(username='******') ] inboxes = ['israel', 'lydia', 'aba'] if int(data['balance']) == 1000: tags = {"action": "balance", "actor": 'The'} add_message_for( users=users, level=3, message_text='current available balance is {}'.format( data['balance']), extra_tags=json.dumps(tags), date=datetime.now(), url='/office/balance/1/') try: pusher.trigger( [u'{}_inbox'.format(inbox) for inbox in inboxes], u'update', { 'The current available balance is {}'.format( data['balance']) }) except (socket.gaierror, requests.exceptions.ConnectionError, requests.exceptions.ReadTimeout, requests.exceptions.ConnectTimeout) as e: pass elif int(data['balance'] < 1000): tags = {"action": "balance", "actor": 'The'} add_message_for( users=users, level=3, message_text='current available balance is lower than 1000', extra_tags=json.dumps(tags), date=datetime.now(), url='/office/balance/1/') try: pusher.trigger( [u'{}_inbox'.format(inbox) for inbox in inboxes], u'update', {'The current available balance is lower than 1000'}) except (socket.gaierror, requests.exceptions.ConnectionError, requests.exceptions.ReadTimeout, requests.exceptions.ConnectTimeout) as e: pass serializer = self.serializer_class(balance, data=data) serializer.is_valid(raise_exception=True) self.perform_update(serializer) if getattr(balance, '_prefetched_objects_cache', None): instance._prefetched_objects_cache = {} return Response(serializer.data)
def update(self, request, pk=None): job = get_object_or_404(self.queryset, pk=pk) data = request.data users = ['israel', 'afro', 'lydia', 'andre', 'paul', 'aba'] if int(data['percentage']) == 100: data['is_complete'] = True try: pusher.trigger( [u'{}_inbox'.format(user) for user in users], u'update', { 'message': '{} completed a job for {}'.format( data['handler'].capitalize(), request.data['client_name'].capitalize()) }) except (socket.gaierror, requests.exceptions.ConnectionError, requests.exceptions.ReadTimeout, requests.exceptions.ConnectTimeout) as e: pass tags = { "action": "completed", "actor": job.handler.capitalize(), "target": job.client_name.capitalize() } add_message_for(users=User.objects.all(), level=3, message_text="completed a job for", extra_tags=json.dumps(tags), date=datetime.now(), url='/office/jobs/{}/'.format(job.id)) else: data['is_complete'] = False serializer = self.serializer_class(job, data=request.data) serializer.is_valid(raise_exception=True) self.perform_update(serializer) if getattr(job, '_prefetched_objects_cache', None): instance._prefetched_objects_cache = {} return Response(serializer.data)
def my_handler(sender,instance,created,**kwargs): if created: tags = {"action":"created", "actor": instance.user.username.capitalize(), "target": instance.description.capitalize(), } users = [User.objects.get(username='******'),User.objects.get(username='******'),User.objects.get(username='******')] if users[1] is instance.user: add_message_for(users=[users[0],users[2]], level=3, message_text='raised an imprest', extra_tags=json.dumps(tags), date=datetime.now(), url="/office/imprests/{}/".format(instance.id)) elif users[0] is instance.user: add_message_for(users=users[1:], level=3, message_text='raised an imprest', extra_tags=json.dumps(tags), date=datetime.now(), url="/office/imprests/{}/".format(instance.id)) else: add_message_for(users=users, level=3, message_text='raised an imprest', extra_tags=json.dumps(tags), date=datetime.now(), url="/office/imprests/{}/".format(instance.id))
def update(self, request, pk=None): imprest = get_object_or_404(self.queryset, pk=pk) old_imprest = imprest serializer = self.serializer_class(imprest, data=request.data) serializer.is_valid(raise_exception=True) users = [ imprest.user, User.objects.get(username='******'), User.objects.get(username='******') ] lydia = users[1] data = request.data if old_imprest.description == data['description'] and int( old_imprest.amount) == int(data['amount']): tags = { "action": "accepted", "actor": request.user.username.capitalize(), "target": imprest.description.capitalize() } if users[1] == imprest.user: payload1 = { "head": "{} accepted your imprest".format( request.user.username.capitalize()), "body": "{} {} N{}".format(imprest.description.capitalize(), '\n', imprest.amount), "tag": "accepted" } send_notification_to_user(user=imprest.user, payload=json.dumps(payload1), ttl=100000) try: pusher.trigger( u'lydia_inbox', u'update', { 'message': '{} accepted your imprest'.format( request.user.username.capitalize()) }) pusher.trigger( u'aba_inbox', u'update', { 'message': '{} accepted {}\'s imprest'.format( request.user.username.capitalize(), imprest.user.username.capitalize()) }) except (socket.gaierror, requests.exceptions.ConnectionError, requests.exceptions.ReadTimeout, requests.exceptions.ConnectTimeout) as e: pass add_message_for(users=[lydia], level=3, message_text=" accepted your imprest", date=datetime.now(), extra_tags=json.dumps(tags), url='/office/imprests/{}/'.format(imprest.id)) add_message_for(users=[User.objects.get(username="******")], level=3, message_text="accepted {}'s imprest".format( imprest.user.username.capitalize()), date=datetime.now(), extra_tags=json.dumps(tags), url='/office/imprests/{}/'.format(imprest.id)) else: payload1 = { "head": "{} accepted your imprest".format( request.user.username.capitalize()), "body": "{} {} N{}".format(imprest.description.capitalize(), '\n', imprest.amount), "tag": "accepted" } send_notification_to_user(user=users[0], payload=json.dumps(payload1), ttl=100000) payload = { "head": "{} accepted {}'s imprest".format( request.user.username.capitalize(), imprest.user.username.capitalize()), "body": "{} {} N{}".format(imprest.description.capitalize(), '\n', imprest.amount), "tag": "accepted" } send_notification_to_user(user=users[1], payload=json.dumps(payload), ttl=100000) send_notification_to_user(user=users[2], payload=json.dumps(payload), ttl=100000) try: pusher.trigger( [u'lydia_inbox', u'aba_inbox'], u'update', { 'message': '{} accepted {}\'s imprest'.format( request.user.username.capitalize(), imprest.user.username.capitalize()) }) pusher.trigger( u'{}_inbox'.format(imprest.user.username), u'update', { 'message': '{} accepted your imprest'.format( request.user.username.capitalize()) }) except (socket.gaierror, requests.exceptions.ConnectionError, requests.exceptions.ReadTimeout, requests.exceptions.ConnectTimeout) as e: pass add_message_for(users=[users[0]], level=3, message_text="accepted your imprest", date=datetime.now(), extra_tags=json.dumps(tags), url='/office/imprests/{}/'.format(imprest.id)) add_message_for( users=[lydia, User.objects.get(username="******")], level=3, message_text="accepted {}'s imprest".format( imprest.user.username.capitalize()), date=datetime.now(), extra_tags=json.dumps(tags), url='/office/imprests/{}/'.format(imprest.id)) else: try: pusher.trigger( u'{}_inbox'.format(imprest.user.username.capitalize()), u'update', { 'message': '{} edited your imprest - {}'.format( request.user.username.capitalize(), data['description']) }) except (socket.gaierror, requests.exceptions.ConnectionError, requests.exceptions.ReadTimeout, requests.exceptions.ConnectTimeout) as e: pass tags = { "action": "edited", "actor": request.user.username.capitalize(), "target": imprest.description.capitalize() } add_message_for(users=[users[0]], level=3, message_text="edited your imprest", date=datetime.now(), extra_tags=json.dumps(tags), url='/office/imprests/{}/'.format(imprest.id)) self.perform_update(serializer) if getattr(imprest, '_prefetched_objects_cache', None): instance._prefetched_objects_cache = {} return Response(serializer.data)
def update(self, request, pk=None): vendor = get_object_or_404(self.queryset, pk=pk) serializer = self.serializer_class(vendor, data=request.data) serializer.is_valid(raise_exception=True) users = [ User.objects.get(username='******'), User.objects.get(username='******') ] self.perform_update(serializer) if request.data['is_approved'] != vendor.is_approved: if vendor.user == users[0]: payload = { "head": "{} accepted a vendor remittance form for {}".format( request.user.username.capitalize(), request.data['vendor_name']), "body": "{}".format(request.data['job_description']), "tag": "created" } send_notification_to_user(user=users[1], payload=json.dumps(payload), ttl=100000) try: pusher.trigger( u'aba_inbox', u'update', { 'message': '{} approved a vendor remittance form for - {}'. format(request.user.username.capitalize(), vendor.vendor_name.capitalize()) }) pusher.trigger( u'{}_inbox'.format(vendor.user.username.capitalize()), u'update', { 'message': '{} appproved your vendor remittance form for - {}' .format(request.user.username.capitalize(), vendor.vendor_name.capitalize()) }) except (socket.gaierror, requests.exceptions.ConnectionError, requests.exceptions.ReadTimeout, requests.exceptions.ConnectTimeout) as e: pass tags = { "action": "accepted", "actor": request.user.username, "target": vendor.vendor_name } add_message_for( users=[users[1]], level=3, message_text="approved a vendor remittance form for", extra_tags=json.dumps(tags), date=datetime.now(), url='/office/vendors/{}/'.format(vendor.id)) add_message_for( users=[users[0]], level=3, message_text="approved your vendor remittance form for", extra_tags=json.dumps(tags), date=datetime.now(), url='/office/vendors/{}/'.format(vendor.id)) else: payload = { "head": "{} accepted a vendor remittance form for {}".format( request.user.username.capitalize(), request.data['vendor_name']), "body": "{}".format(request.data['job_description']), "tag": "created" } send_notification_to_user(user=users[1], payload=json.dumps(payload), ttl=100000) try: pusher.trigger( u'aba_inbox', u'update', { 'message': '{} approved vendor remittance form for - {}'. format(request.user.username.capitalize(), vendor.vendor_name.capitalize()) }) except (socket.gaierror, requests.exceptions.ConnectionError, requests.exceptions.ReadTimeout, requests.exceptions.ConnectTimeout) as e: pass tags = { "action": "accepted", "actor": request.user.username.capitalize(), "target": vendor.vendor_name } add_message_for( users=[users[1]], level=3, message_text="approved a vendor remittance form for", extra_tags=json.dumps(tags), date=datetime.now(), url='/office/vendors/{}/'.format(vendor.id)) if getattr(vendor, '_prefetched_objects_cache', None): instance._prefetched_objects_cache = {} return Response(serializer.data)
def new_job(sender, instance, created, **kwargs): tags = {"action":"started","actor": instance.handler.capitalize(), "target": instance.client_name.capitalize()} if created: add_message_for(users=User.objects.all(),level=3,message_text="started a job for", extra_tags=json.dumps(tags),date=datetime.now(),url='/office/jobs/{}/'.format(instance.id) )
def notify_vendor(sender, instance, created, **kwargs): tags = {"action":"created","actor": instance.user.username.capitalize(), "target": instance.vendor_name.capitalize()} if created: users = [User.objects.get(username='******'),User.objects.get(username='******')] add_message_for(users=users,level=3,message_text='created a vendor remittance form for', extra_tags=json.dumps(tags),date=datetime.now(), url="/office/vendors/{}/".format(instance.id))