Example #1
0
def add_partner_to_job(request):
    dash = validate_dashboard(request.POST.get('d'), request.user)
    tu = validate_user(request.POST.get('t'))
    cmd = get_integer(request.POST.get('c'))
    max_users = int(read_config('dashboard_max_partner', 5))
    if not dash:
        return send_error(request, _('invalid dashboard'))
    if not tu:
        return send_error(request, _('invalid user'))
    if not cmd:
        return send_error(request, _('invalid item'))
    if cmd == 1:
        if TicketTeam.objects.filter(dashboard=dash.pk, user=tu.pk).exists():
            return send_error(request, _('this user has been selected before'))
        if TicketTeam.objects.filter(dashboard=dash.pk).count() >= max_users:
            return send_error(request, _('max users selected'))
        tt = TicketTeam()
        tt.user = tu
        tt.dashboard = dash
        tt.save()
        msg = '%s : %s' % (_('user added to job'), tu.first_name)
        add_work_history_outbox(dash, request.user, msg)
    elif cmd == 2:
        if not TicketTeam.objects.filter(dashboard=dash.pk,
                                         user=tu.pk).exists():
            return HttpResponse('200')
        TicketTeam.objects.get(dashboard=dash.pk, user=tu.pk).delete()
        msg = '%s : %s' % (_('user removed from job'), tu.first_name)
        add_work_history_outbox(dash, request.user, msg)
    return HttpResponse('200')
Example #2
0
def restart_closed_job(request):
    if request.method == 'GET':
        did = request.GET.get('d')
        dash = validate_dashboard(did, request.user, request.RSL_ID)
        if not dash:
            return send_error(request, _('no such item'))
        dash.done_date = None
        dash.is_done = False
        dash.last_state = 0
        dash.save()
        uw = UserWorkHistory()
        uw.dashboard = dash
        g = request.user.groups.first()
        if not g:
            g = dash.group_id
        else:
            g = g.pk
        uw.group_id = g
        uw.start_date = now()
        uw.state = 2
        uw.user = request.user
        uw.message = _('job restarted')
        uw.save()
        return HttpResponse('200')
    return send_error(request, _('invalid method'))
Example #3
0
def delete_calendar_event(request):
    dash = validate_dashboard(get_integer(request.GET.get('d')))
    if not dash:
        return send_error(request, _('invalid dashboard'))
    if Calendar.objects.filter(dashboard=dash.pk).exists():
        Calendar.objects.filter(dashboard=dash.pk).delete()
        add_work_history_outbox(dash, request.user, _('schedule removed'))
    return HttpResponse('200')
Example #4
0
def remove_transport_for_job(request):
    dash = validate_dashboard(request.GET.get('d'))
    if not dash:
        return send_error(request, _('invalid dashboard'))
    if not TicketTransportation.objects.filter(dashboard=dash.pk).exists():
        return send_error(request, _('invalid item'))
    TicketTransportation.objects.get(dashboard=dash.pk).delete()
    add_work_history_outbox(dash, request.user, _('transport removed'))
    return HttpResponse('200')
Example #5
0
def reserve_time_for_job(request):
    date = get_string(request.GET.get('d'))
    time = get_integer(request.GET.get('t'))
    job = validate_dashboard(get_integer(request.GET.get('j')))
    try:
        cm = CalendarEventTypeRequestManager(request)
        cm.pk_name = 'e'
        event_id = cm.get_single_ext(True).pk
    except RequestProcessException as e:
        return e.get_response()
    except Exception as e:
        logger.error(e.message or e.args)
        return send_error(request, _('system error'))
    priority_res = get_integer(request.GET.get('pri'), True)
    if not date:
        return send_error(request, _('invalid date'))
    if not time:
        return send_error(request, _('invalid time'))
    if not job:
        return send_error(request, _('please select a job'))
    if not priority_res.is_success():
        priority = 0
    else:
        priority = priority_res.value()
    if Calendar.objects.filter(dashboard=job.pk).exists():
        return send_error(request, _('this job has been added before'))

    date_split = date.split('-')
    day = get_integer(date_split[2].split(' ')[0])
    month = get_integer(date_split[1])
    year = get_integer(date_split[0])
    if not (year and month and day):
        return send_error(request, _('invalid date format'))
    cl = Calendar()
    cl.dashboard = job
    cl.work_time_id = time
    cl.event_type = event_id
    cl.cal_day = day
    cl.priority = priority
    cl.cal_month = month
    cl.cal_year = year
    cl.save()
    wb = WorkingTime.objects.get(pk=time)
    msg = u'%s در تاریخ %s از ساعت %s تا %s' % (
        _('time scheduled'), date, str(wb.start_time.strftime('%H:%M')),
        str(wb.end_time.strftime('%H:%M')))
    add_work_history_outbox(job, request.user, msg)
    return HttpResponse('200')
Example #6
0
def add_transport_for_job(request):
    dash = validate_dashboard(request.GET.get('j'), request.user)
    transport = get_transport(request.GET.get('t'))
    if not dash:
        return send_error(request, _('invalid dashboard'))
    if not transport:
        return send_error(request, _('invalid item'))
    if TicketTransportation.objects.filter(dashboard=dash.pk).exists():
        return send_error(request, _('transportation had selected before'))
    t = TicketTransportation()
    t.dashboard = dash
    t.transport = transport
    t.save()
    add_work_history_outbox(dash, request.user,
                            _('transport added ') + transport.name)
    return HttpResponse('200')
Example #7
0
def view_all_group_members(request):
    dash = validate_dashboard(request.GET.get('d'), request.user)
    if not dash:
        return send_error(request, _('invalid dashboard'))
    if dash.fk_ticket_team_dashboard.exists():
        active_partners = User.objects.filter(
            fk_ticket_team_user__dashboard=dash.pk).values_list('pk',
                                                                flat=True)
    else:
        active_partners = []
    if request.user.is_superuser:
        pgs = Group.objects.values_list('pk', flat=True)
    else:
        pgs = request.user.groups.values_list('pk', flat=True)
    partners = User.objects.filter(
        groups__in=pgs,
        is_staff=True,
        fk_reseller_profile_user__isnull=True,
        is_active=True).exclude(pk=request.user.pk).values_list(
            'pk', 'first_name').distinct()
    x = {'users': list(partners), 'active': list(active_partners)}
    return HttpResponse(json.dumps(x))