예제 #1
0
 def notify_to_redington(self):
     nf_groups = NotificationGroups.objects.filter(
         actions__action=self.action).exclude(recipients='')
     non_users_emails = list(
         nf_groups.values_list('non_user_recipients__email', flat=True))
     sets = list(nf_groups.values_list('recipients', flat=True))
     available_user_ids_in_groups = []
     if len(sets) > 0:
         available_user_ids_in_groups = [
             user_id for set_string in sets
             for user_id in set_string.split(',')
         ]
         available_user_ids_in_groups = list(
             set(available_user_ids_in_groups))
         available_user_ids_in_groups = list(
             map(lambda x: str(x), available_user_ids_in_groups))
         """ Send Notifications """
         if len(available_user_ids_in_groups) > 0:
             nf_recipients = ','.join(available_user_ids_in_groups)
             NfActions.publish(
                 params={
                     'user':
                     RedUser.objects.filter(is_superuser=True).first(),
                     'nf_type':
                     "message",
                     'recipients':
                     nf_recipients,
                     'message':
                     "Reject ISV Service Request: %s" %
                     (self.details['rejection_reason']),
                     'status':
                     "unread",
                     'details_obj':
                     self.details['isv_marketplace_service_instance']
                 })
     users_emails = RedUser.objects.filter(
         id__in=available_user_ids_in_groups).values_list('email',
                                                          flat=True)
     users_emails = list(users_emails)
     recipients = users_emails + non_users_emails
     """ Send Emails """
     subject = 'Service Request Rejected: %s ' % (
         self.template_data['isv_detail']['service_name'])
     if len(recipients) > 0:
         BaseMails.send_mail(subject=subject,
                             recipients=recipients,
                             template_name=choose_template(
                                 self.action)['business_html'],
                             template_data=self.template_data)
    def notify_to_redington(self):
        """ Sending emails & notifications to the respective persons in REDINGTON """

        nf_groups = NotificationGroups.objects.filter(actions__action=self.action)
        non_users_emails = list(nf_groups.values_list('non_user_recipients__email', flat=True))
        sets = list(nf_groups.values_list('recipients', flat=True))
        available_user_ids_in_groups = []
        partner_jbacode = self.details['partner'].jba_code
        partner_jbacode=partner_jbacode.strip()


        if len(sets) > 0:
            user_ids = list(set(UserProfileVendorCategory.objects.filter(Q(location__icontains=partner_jbacode[0:2]) | Q(location='CO')).values_list('user_profile__user__id', flat=True)))
            available_user_ids_in_groups = [user_id for set_string in sets for user_id in set_string.split(',')]
            available_user_ids_in_groups = list(set(available_user_ids_in_groups))
            available_user_ids_in_groups = list(filter(lambda x: re.match(r'[0-9]', x) and int(x) in user_ids, available_user_ids_in_groups))
            available_user_ids_in_groups = RedUser.objects\
                .filter(id__in=available_user_ids_in_groups,
                        profile__vendor_category=self.details['vendor']).values_list('id', flat=True)
            available_user_ids_in_groups = list(map(lambda x: str(x), available_user_ids_in_groups))

            """ Send Notifications """
            if len(available_user_ids_in_groups) > 0:
                NfActions.publish(params={
                    'user': self.details['user'],
                    'nf_type': "message",
                    'recipients': ','.join(available_user_ids_in_groups),
                    'message': "New Account request",
                    'status': "unread",
                    'details_obj': self.details['pending_request']
                })

        users_emails = RedUser.objects.filter(id__in=available_user_ids_in_groups).values_list('email', flat=True)
        users_emails = list(users_emails)

        """ Send Emails """
        if len(users_emails) > 0:
            data = {'customer_name': self.details['customer'].company_name,
                    'partner_name': self.details['partner'].company_name, 'message': self.details['message'],
                    'domain_name': settings.DOMAIN_NAME}
            BaseMails.send_mail(subject=self.details['subject'],
                                recipients=users_emails + non_users_emails,
                                template_name=choose_template(self.action)['business'],
                                template_data=data)

        return True
예제 #3
0
    def mark_notification_as_read(self, request, **kwrgs):
        notification = NfActions.mark_as_read({
            'nf_id': kwrgs['pk'],
            'user': request.user
        })

        return self.get_page_list(request,
                                  filters=request.data['filters'],
                                  **kwrgs)
    def notify_to_partner(self):
        from partner.models import PartnerUserDetails
        partneruserdetails = PartnerUserDetails.objects.filter(
            partner=self.details['partner'])
        if len(partneruserdetails) != 0:
            parteruser_id = list(
                partneruserdetails.values_list('user_id', flat=True))
            NfActions.publish(
                params={
                    'user':
                    self.details['user'],
                    'nf_type':
                    "message",
                    'recipients':
                    str(parteruser_id[0]),
                    'message':
                    "New Account request(%s) rejected" %
                    (self.details['pending_request'].cloud_account.
                     details['reference_number']),
                    'status':
                    'unread',
                    'details_obj':
                    self.details['pending_request']
                })
            data = {
                'request_number':
                self.details['pending_request'].reference_number,
                'discount': self.details['discount'],
                'partner_name': self.details['partner'].company_name,
                'reject_msg': self.details['reject_msg'],
                'customer_name': self.details['customer'].company_name,
            }
            red_user_object = RedUser.objects.filter(
                id=parteruser_id[0]).first()
            BaseMails.send_mail(subject=self.details['subject'],
                                recipients=[red_user_object.email],
                                template_name=choose_template(
                                    self.action)['partner'],
                                template_data=data)

        return True
예제 #5
0
    def mark_notification_as_completed(self, request, **kwrgs):
        notification = NfActions.complete({
            'nf_id': kwrgs['pk'],
            'user': request.user
        })

        data = NotificationsSerializer(notification,
                                       context={
                                           'request': request
                                       }).data

        return Response(data)
예제 #6
0
 def notify_to_respects(self):
     """ Sending emails & notifications to the respective persons for the order """
     """ Publishing Notifications """
     nf_recipients = ','.join([str(self.details['user'].id)])
     NfActions.publish(
         params={
             'user':
             self.details['user'],
             'nf_type':
             "message",
             'recipients':
             nf_recipients,
             'message':
             "Support Tracking Id: " +
             self.template_data['feedback_number'],
             'status':
             'unread',
             'details_obj':
             self.details['feedback_details']
         })
     return True
예제 #7
0
    def notify_to_redington(self):
        nf_groups = NotificationGroups.objects.filter(
            actions__action=self.action).exclude(recipients='')
        non_users_emails = list(
            nf_groups.values_list('non_user_recipients__email', flat=True))
        sets = list(nf_groups.values_list('recipients', flat=True))
        available_user_ids_in_groups = []

        if len(sets) > 0:
            available_user_ids_in_groups = [
                user_id for set_string in sets
                for user_id in set_string.split(',')
            ]
            available_user_ids_in_groups = list(
                set(available_user_ids_in_groups))

            available_user_ids_in_groups = list(
                map(lambda x: str(x), available_user_ids_in_groups))
            """ Send Notifications """
            if len(available_user_ids_in_groups) > 0:
                nf_recipients = ','.join(available_user_ids_in_groups)
                NfActions.publish(
                    params={
                        'user': self.details['user'],
                        'nf_type': "message",
                        'recipients': nf_recipients,
                        'message': "Partner Support",
                        'status': "unread",
                        'details_obj': self.details['feedback_details']
                    })

        users_emails = RedUser.objects.filter(
            id__in=available_user_ids_in_groups).values_list('email',
                                                             flat=True)
        users_emails = list(users_emails)
        from cloudapp.generics.constant import AppContants
        recipients = users_emails + non_users_emails + AppContants.DEVELOPER_EMAILS
        subject = 'Support from Partner: ' + self.details[
            'feedback_details'].reason
        """ Send Emails """
        if len(recipients) > 0:
            if self.details['feedback_details'].attachment.name != '':
                import magic
                mime = magic.Magic(mime=True)
                attachements_url = self.details[
                    'feedback_details'].attachment.url
                file_extension = mime.from_file(settings.BASE_DIR + '/' +
                                                attachements_url)
                attchements = dict()
                attchements['url'] = attachements_url
                attchements['extenstions'] = file_extension
                BaseMails.send_mail(subject=subject,
                                    recipients=recipients,
                                    template_name=choose_template(
                                        self.action)['html'],
                                    template_data=self.template_data,
                                    attachements=attchements)
            else:
                BaseMails.send_mail(subject=subject,
                                    recipients=recipients,
                                    template_name=choose_template(
                                        self.action)['html'],
                                    template_data=self.template_data)