Exemple #1
0
def send_idle_ticket_reminder_user(ticket, notify_email=False):

    context = {
        'ticket': ticket,
        'ticket_link': generate_ticket_url(ticket),
        'time_passed': format_timedelta(timezone.now() - ticket.date_modified),
        'unsubscribe_link': generate_unubscribe_link(ticket),
        'close_ticket_link': '{}{}'.format(get_base_url(), reverse('close_ticket', kwargs={'id': ticket.id}))
    }

    log_message = u'Idle Ticket Reminder to User Sent, Ticket: {}, Recipient: {}, Time passed: {}'

    log_emails(log_message.format(ticket.id, ticket.owned_by, timezone.now() - ticket.last_updated_at))

    if notify_email:

        send_email(
            subject_template_name='emails/reminders/idle_ticket_reminder_user_subject.txt',
            email_template_name='emails/reminders/idle_ticket_reminder_user.txt',
            to_email=ticket.owned_by.email,
            context=context,
            html_email_template_name='emails/reminders/idle_ticket_reminder_user.html',
            bcc=settings.DEFAULT_RECIPIENT_IDLE_TICKET_REMINDERS
        )

        ticket.last_notification_sent = timezone.now()
        ticket.save()
Exemple #2
0
    def handle(self, *args, **options):

        named_users = UserProfile.objects.filter(crm_type='named')
        open_tickets = []
        for user in named_users:
            tickets = Ticket.objects.filter(created_by=user, date_added__gte=datetime.datetime.now().replace(hour=0, minute=0, second=0)).exclude(assigned_to__isnull=True,status="closed",answers_no=0)
            for ticket in tickets:
                open_tickets.append(ticket)

        user = UserProfile.objects.get(email=settings.EMAIL_OF_REPORTING_PERSON)
        context = {
                'base_url': get_base_url(),
                'user': user,
                'open_tickets': open_tickets,
            }

        logger.info(u'Daily notification sent to staff {}'.format(user.email))

        send_mail(
            subject_template_name='emails/reminders/open_tickets_status_subject.txt',
            email_template_name='emails/reminders/open_tickets_status.txt',
            to_email=user.email,
            context=context,
            html_email_template_name='emails/reminders/open_tickets_status.html'
        )
Exemple #3
0
    def handle(self, *args, **options):

        staff_users = UserProfile.objects.filter(
            is_active=True,
            crm_type__in=[constants.STAFF, constants.ADMIN, constants.MANAGER]
        )

        for user in staff_users:

            tickets = Ticket.objects.filter(
                assigned_to=user, is_deleted=False,
                status__in=['pending', 'inprogress', 'assigned']).order_by('date_modified')

            named_tickets = []
            community_tickets = []

            if not tickets:
                continue

            for ticket in tickets:

                if ticket.owned_by.is_named:

                    if not ticket.issue_type:
                        logger.error('Named ticket without issue type: {}'.format(ticket.id))

                    ticket.support_plan = crm_interface.get_support_plan(ticket.owned_by)

                    if not ticket.support_plan or not ticket.support_plan['support_plan']:
                        logger.error('Named ticket without support plan: {}'.format(ticket.id))

                    ticket.is_overdue = ticket.date_modified < timezone.now() - timedelta(days=10)

                    named_tickets.append(ticket)

                else:
                    community_tickets.append(ticket)

            context = {
                'base_url': get_base_url(),
                'user': user,
                'community_tickets': community_tickets,
                'named_tickets': named_tickets,
                'tickets_count': tickets.count()
            }

            logger.info(u'Daily digest sent to staff {}'.format(user.email))

            send_mail(
                subject_template_name='emails/reminders/staff_digest_subject.txt',
                email_template_name='emails/reminders/staff_digest.txt',
                to_email=user.email,
                context=context,
                html_email_template_name='emails/reminders/staff_digest.html',
                bcc=settings.DEFAULT_RECIPIENT_IDLE_TICKET_REMINDERS
            )
Exemple #4
0
def generate_subscribe_link(ticket):

    url = reverse('ticket_add_alert', kwargs={'id': ticket.id})

    return '{}{}'.format(get_base_url(), url)
Exemple #5
0
def generate_ticket_url(ticket):

    url = generate_ticket_link(ticket)
    return '{}{}'.format(get_base_url(), url)