Exemplo n.º 1
0
def print_dealer_badges(modeladmin, request, queryset):
    con = printing.Main(local=True)
    tags = []
    for badge in queryset:
        #print the badge
        if badge.badgeNumber is None:
            badgeNumber = ''
        else:
            badgeNumber = 'S{:03}'.format(badge.badgeNumber)
        try:
            dealers = Dealer.objects.get(attendee=badge.attendee,event=badge.event)
        except Dealer.DoesNotExist:
            messages.warning(request, u"{0} is not a dealer, so we skipped printing a dealer badge for them".format(badge.badgeName))
            continue

        tags.append({
            'name'   : cgi.escape(badge.badgeName),
            'number' : badge.badgeNumber,
            'level'  : 'Dealer',
            'title'  : '',
            'age'    : get_attendee_age(badge.attendee)
        })
        badge.printed = True
        badge.save()
    if len(tags) > 0:
        con.nametags(tags, theme=badge.event.badgeTheme)
        # serve up this file
        pdf_path = con.pdf.split('/')[-1]
        response = HttpResponseRedirect(reverse(views.printNametag))
        url_params = {
            'file' : pdf_path,
            'next' : request.get_full_path()
        }
        response['Location'] += '?{}'.format(urlencode(url_params))
        return response
Exemplo n.º 2
0
def print_label_badges(modeladmin, request, queryset):
    con = printing.Main(local=True)
    tags = []
    for badge in queryset:
        #print the badge
        if badge.badgeNumber is None:
            badgeNumber = ''
        else:
            badgeNumber = '{:04}'.format(badge.badgeNumber)

        # Exclude staff badges
        try:
            staff = Staff.objects.get(attendee=badge.attendee,event=badge.event)
            messages.warning(request, "{0} is on staff, so we skipped printing an attendee badge".format(badge.badgeName))
        except Staff.DoesNotExist:
            tags.append({
                'name'   : cgi.escape(badge.badgeName),
                'number' : badgeNumber,
                'level'  : cgi.escape(str(badge.effectiveLevel())),
                'title'  : '',
                'age'    : get_attendee_age(badge.attendee)
            })
            badge.printed = True
            badge.save()
    con.nametags(tags, theme='fd_labels')
    # serve up this file
    pdf_path = con.pdf.split('/')[-1]
    response = HttpResponseRedirect(reverse(views.printNametag))
    url_params = {
        'file' : pdf_path,
        'next' : request.get_full_path()
    }
    response['Location'] += '?{}'.format(urlencode(url_params))
    return response
Exemplo n.º 3
0
def print_dealerasst_badges(modeladmin, request, queryset):
    con = printing.Main(local=True)
    tags = []
    for badge in queryset:
        #print the badge
        if badge.badgeNumber is None:
            badgeNumber = ''
        else:
            badgeNumber = 'S{:03}'.format(badge.badgeNumber)
        tags.append({
            'name'   : cgi.escape(badge.badgeName),
            'number' : badge.badgeNumber,
            'level'  : 'Dealer',
            'title'  : '',
            'age'    : get_attendee_age(badge.attendee)
        })
        badge.printed = True
        badge.save()
    con.nametags(tags, theme=badge.event.badgeTheme)
    # serve up this file
    pdf_path = con.pdf.split('/')[-1]
    response = HttpResponseRedirect(reverse(views.printNametag))
    url_params = {
        'file' : pdf_path,
        'next' : request.get_full_path()
    }
    response['Location'] += '?{}'.format(urlencode(url_params))
    return response
Exemplo n.º 4
0
def print_label_badges(modeladmin, request, queryset):
    con = printing.Main(local=True)
    tags = []
    for badge in queryset:
        #print the badge
        if badge.badgeNumber is None:
            badgeNumber = ''
        else:
            badgeNumber = '{:04}'.format(badge.badgeNumber)

        # Exclude staff badges
        try:
            staff = Staff.objects.get(attendee=badge.attendee,event=badge.event)
            messages.warning(request, u"{0} is on staff, so we skipped printing an attendee badge".format(badge.badgeName))
        except Staff.DoesNotExist:
            tags.append({
                'name'   : cgi.escape(badge.badgeName),
                'number' : badgeNumber,
                'level'  : cgi.escape(str(badge.effectiveLevel())),
                'title'  : '',
                'age'    : get_attendee_age(badge.attendee)
            })
            badge.printed = True
            badge.save()
    con.nametags(tags, theme='fd_labels')
    # serve up this file
    pdf_path = con.pdf.split('/')[-1]
    response = HttpResponseRedirect(reverse(views.printNametag))
    url_params = {
        'file' : pdf_path,
        'next' : request.get_full_path()
    }
    response['Location'] += '?{}'.format(urlencode(url_params))
    return response
Exemplo n.º 5
0
def print_dealerasst_badges(modeladmin, request, queryset):
    con = printing.Main(local=True)
    tags = []
    for badge in queryset:
        #print the badge
        if badge.badgeNumber is None:
            badgeNumber = ''
        else:
            badgeNumber = 'S{:03}'.format(badge.badgeNumber)
        tags.append({
            'name'   : cgi.escape(badge.badgeName),
            'number' : badge.badgeNumber,
            'level'  : 'Dealer',
            'title'  : '',
            'age'    : get_attendee_age(badge.attendee)
        })
        badge.printed = True
        badge.save()
    con.nametags(tags, theme=badge.event.badgeTheme)
    # serve up this file
    pdf_path = con.pdf.split('/')[-1]
    response = HttpResponseRedirect(reverse(views.printNametag))
    url_params = {
        'file' : pdf_path,
        'next' : request.get_full_path()
    }
    response['Location'] += '?{}'.format(urlencode(url_params))
    return response
Exemplo n.º 6
0
def print_staff_badges(modeladmin, request, queryset):
    con = printing.Main(local=True)
    tags = []
    for badge in queryset:
        #print the badge
        if badge.badgeNumber is None:
            badgeNumber = ''
        else:
            badgeNumber = 'S{:03}'.format(badge.badgeNumber)
        staff = Staff.objects.get(attendee=badge.attendee,event=badge.event)
        tags.append({
            'name'   : badge.badgeName,
            'number' : badgeNumber,
            'level'  : staff.title,
            'title'  : ''
        })
        badge.printed = True
        badge.save()
    con.nametags(tags, theme='apis')
    # serve up this file
    pdf_path = con.pdf.split('/')[-1]
    response = HttpResponseRedirect(reverse(views.printNametag))
    url_params = {
        'file' : pdf_path,
        'next' : request.get_full_path()
    }
    response['Location'] += '?{}'.format(urlencode(url_params))
    return response
Exemplo n.º 7
0
def print_dealer_badges(modeladmin, request, queryset):
    con = printing.Main(local=True)
    tags = []
    for badge in queryset:
        #print the badge
        if badge.badgeNumber is None:
            badgeNumber = ''
        else:
            badgeNumber = 'S{:03}'.format(badge.badgeNumber)
        try:
            dealers = Dealer.objects.get(attendee=badge.attendee,event=badge.event)
        except Dealer.DoesNotExist:
            messages.warning(request, "{0} is not a dealer, so we skipped printing a dealer badge for them".format(badge.badgeName))
            continue

        tags.append({
            'name'   : cgi.escape(badge.badgeName),
            'number' : badge.badgeNumber,
            'level'  : 'Dealer',
            'title'  : '',
            'age'    : get_attendee_age(badge.attendee)
        })
        badge.printed = True
        badge.save()
    if len(tags) > 0:
        con.nametags(tags, theme=badge.event.badgeTheme)
        # serve up this file
        pdf_path = con.pdf.split('/')[-1]
        response = HttpResponseRedirect(reverse(views.printNametag))
        url_params = {
            'file' : pdf_path,
            'next' : request.get_full_path()
        }
        response['Location'] += '?{}'.format(urlencode(url_params))
        return response
Exemplo n.º 8
0
    def handle(self, *args, **options):
        r = sr.Recognizer()
        m = sr.Microphone()
        try:
            self.stdout.write("A moment of silence, please...")
            with m as source:
                r.adjust_for_ambient_noise(source)
                self.stdout.write("Set minimum energy threshold to {}".format(r.energy_threshold))
        except KeyboardInterrupt:
            pass


        sleep_interval=.005
        buffer = Buffer()
        keyb = KeyBoard()

        while True:
            sleep(sleep_interval)

            changed, modifiers, keys = keyb.fetch_keys()
            if changed:
                # callback(buffer, time(), modifiers, keys, apps, keyb)
                if modifiers['left alt'] and modifiers['right alt']:
                    try:
                        with m as source:
                            self.stdout.write("Say something!")
                            audio = r.listen(source, timeout=3)
                            self.stdout.write("Got it! Now to recognize it...")

                            try:
                                self.stdout.write("processing...")
                                value = r.recognize_google(audio)
                                custom_actions = CustomAction.objects.all().filter(aliases__name=value)

                                if not custom_actions:
                                    # TODO: print link to create new alias
                                    # msg = "<a href=127.0.0.1:8000/admin/dyn_action/customactionaliases/add/?name=" \
                                    #       + format(value) + ">Agregar " + format(value) + "</a>"
                                    params = urlencode({'name': value})
                                    # subprocess.call("notify-send '" + msg + "'", shell=True)
                                    subprocess.call("firefox --new-window http://127.0.0.1:8000/admin/dyn_action/customactionaliases/add/?" + params + " &", shell=True)
                                    # http://127.0.0.1:8000/admin/dyn_action/customactionaliases/add/?name=algo


                                for custom_action in custom_actions:
                                    self.stdout.write(custom_action.name)
                                    if custom_action.context.is_active():
                                        self.stdout.write("about to execute")
                                        custom_action.execute()
                            except sr.UnknownValueError:
                                self.stdout.write("Oops! Didn't catch that")
                            except sr.RequestError as e:
                                self.stdout.write("Uh oh! Couldn't request results from Google Speech Recognition service; {0}".format(e))
                    except:
                        self.stdout.write("ERROR at listening...")

        for custom_action in CustomAction.objects.all():
            self.stdout.write(custom_action.name)
Exemplo n.º 9
0
    def test_cleanup_join_success(self):
        user = UserFactory()
        url = reverse('join-cleanup', args=[self.cleanup.id])
        data = urlencode({'participants': user.username})

        self.client.force_login(user)
        response = self.client.post(url, data=data,
                                    content_type='application/x-www-form-urlencoded')
        self.assertEqual(response.status_code, 200)
Exemplo n.º 10
0
    def test_filter_Kategoria_nazwa(self):
        nowe_Nazwa = 'Sci-Fi'
        nowe_Nazwa_2 = 'Wiersz'
        nowe_Opis = 'Opis kategorii Sci-Fi'
        nowe_Opis_2 = 'Opis kategorii wiersz'

        self.post_kategoria(nowe_Nazwa, nowe_Opis)
        self.post_kategoria(nowe_Nazwa_2, nowe_Opis_2)
        filter_Kategoria_nazwa = {'Nazwa': nowe_Nazwa}
        url = '{0}?{1}'.format(reverse(views.KategoriaList.name), urlencode(filter_Kategoria_nazwa))
        response = self.client.get(url, format='json')
        assert response.status_code == status.HTTP_200_OK
        assert response.data['count'] == 2
        assert response.data['results'][0]['Nazwa'] == nowe_Nazwa
Exemplo n.º 11
0
    def test_cleanup_create_success(self):
        url = reverse('cleanup-create')
        self.client.force_login(self.user)
        data = urlencode({'title': "New Cleanup Created",
                          'description': 'A totally new cleanup event!',
                          'number': '333',
                          'street': 'Newbie Ave',
                          'image': 'default.jpg',
                          'host': self.user,
                          'date': str(date.today()),
                          'start_time': '3:30 PM',
                          'end_time': '7:30 PM'})
        response = self.client.post(url, data=data,
                                    content_type='application/x-www-form-urlencoded')

        self.assertEqual(response.status_code, 200)
Exemplo n.º 12
0
def print_staff_badges(modeladmin, request, queryset):
    con = printing.Main(local=True)
    tags = []
    for badge in queryset:
        #print the badge
        if badge.badgeNumber is None:
            badgeNumber = ''
        else:
            badgeNumber = 'S-{:03}'.format(badge.badgeNumber)
        try:
            staff = Staff.objects.get(attendee=badge.attendee,
                                      event=badge.event)
        except Staff.DoesNotExist:
            messages.warning(
                request,
                u"{0} is not on staff, so we skipped printing a staff badge for them"
                .format(badge.badgeName))
            continue
        except Staff.MultipleObjectsReturned:
            messages.error(
                request,
                u"{0} was added to staff multiple times! - dedupe and try again."
                .format(badge.attendee))
            continue

        tags.append({
            'name': cgi.escape(badge.badgeName),
            'number': badgeNumber,
            'level': 'Staff',
            'title': cgi.escape(staff.title),
            'age': get_attendee_age(badge.attendee)
        })
        badge.printed = True
        badge.save()
    con.nametags(tags, theme=badge.event.badgeTheme)
    # serve up this file
    pdf_path = con.pdf.split('/')[-1]
    response = HttpResponseRedirect(reverse(views.printNametag))
    url_params = {'file': pdf_path, 'next': request.get_full_path()}
    response['Location'] += '?{}'.format(urlencode(url_params))
    return response
Exemplo n.º 13
0
def assign_numbers_and_print(modeladmin, request, queryset):
    nonstaff = Attendee.objects.filter(staff=None)
    firstBadge = queryset[0]
    badges = Badge.objects.filter(attendee__in=nonstaff, event=firstBadge.event)
    highest = badges.aggregate(Max('badgeNumber'))['badgeNumber__max']

    for badge in queryset.order_by('registeredDate'):
        if badge.badgeNumber: continue
        if badge.effectiveLevel() == None: continue
        highest = highest + 1
        badge.badgeNumber = highest
        badge.save()

    con = printing.Main(local=True)
    tags = []
    for badge in queryset:
        #print the badge
        if badge.badgeNumber is None:
            badgeNumber = ''
        else:
            badgeNumber = '{:04}'.format(badge.badgeNumber)
        tags.append({
            'name'   : cgi.escape(badge.badgeName),
            'number' : badgeNumber,
            'level'  : cgi.escape(str(badge.effectiveLevel())),
            'title'  : '',
            'age'    : get_attendee_age(badge.attendee)
        })
        badge.printed = True
        badge.save()
    con.nametags(tags, theme=badge.event.badgeTheme)
    # serve up this file
    pdf_path = con.pdf.split('/')[-1]
    response = HttpResponseRedirect(reverse(views.printNametag))
    url_params = {
        'file' : pdf_path,
        'next' : request.get_full_path()
    }
    response['Location'] += '?{}'.format(urlencode(url_params))
    return response
Exemplo n.º 14
0
def assign_numbers_and_print(modeladmin, request, queryset):
    nonstaff = Attendee.objects.filter(staff=None)
    firstBadge = queryset[0]
    badges = Badge.objects.filter(attendee__in=nonstaff, event=firstBadge.event)
    highest = badges.aggregate(Max('badgeNumber'))['badgeNumber__max']

    for badge in queryset.order_by('registeredDate'):
        if badge.badgeNumber: continue
        if badge.effectiveLevel() == None: continue
        highest = highest + 1
        badge.badgeNumber = highest
        badge.save()

    con = printing.Main(local=True)
    tags = []
    for badge in queryset:
        #print the badge
        if badge.badgeNumber is None:
            badgeNumber = ''
        else:
            badgeNumber = '{:04}'.format(badge.badgeNumber)
        tags.append({
            'name'   : cgi.escape(badge.badgeName),
            'number' : badgeNumber,
            'level'  : cgi.escape(str(badge.effectiveLevel())),
            'title'  : '',
            'age'    : get_attendee_age(badge.attendee)
        })
        badge.printed = True
        badge.save()
    con.nametags(tags, theme=badge.event.badgeTheme)
    # serve up this file
    pdf_path = con.pdf.split('/')[-1]
    response = HttpResponseRedirect(reverse(views.printNametag))
    url_params = {
        'file' : pdf_path,
        'next' : request.get_full_path()
    }
    response['Location'] += '?{}'.format(urlencode(url_params))
    return response
Exemplo n.º 15
0
def print_staff_badges(modeladmin, request, queryset):
    con = printing.Main(local=True)
    tags = []
    for badge in queryset:
        #print the badge
        if badge.badgeNumber is None:
            badgeNumber = ''
        else:
            badgeNumber = 'S-{:03}'.format(badge.badgeNumber)
        try:
            staff = Staff.objects.get(attendee=badge.attendee,event=badge.event)
        except Staff.DoesNotExist:
            messages.warning(request, u"{0} is not on staff, so we skipped printing a staff badge for them".format(badge.badgeName))
            continue
        except Staff.MultipleObjectsReturned:
            messages.error(request, u"{0} was added to staff multiple times! - dedupe and try again.".format(badge.attendee))
            continue

        tags.append({
            'name'   : cgi.escape(badge.badgeName),
            'number' : badgeNumber,
            'level'  : 'Staff',
            'title'  : cgi.escape(staff.title),
            'age'    : get_attendee_age(badge.attendee)
        })
        badge.printed = True
        badge.save()
    con.nametags(tags, theme=badge.event.badgeTheme)
    # serve up this file
    pdf_path = con.pdf.split('/')[-1]
    response = HttpResponseRedirect(reverse(views.printNametag))
    url_params = {
        'file' : pdf_path,
        'next' : request.get_full_path()
    }
    response['Location'] += '?{}'.format(urlencode(url_params))
    return response
Exemplo n.º 16
0
 def position_link(self, obj):
   url = (reverse("admin:workers_position_changelist") + "?" + urlencode({"courses__id": f"{obj.id}"}))
   return format_html('<a href="{}">{} user</a>', url, obj.position)
Exemplo n.º 17
0
 def show_cases_number(self, obj):
     url = reverse("admin:projects_case_changelist") + "?" + urlencode({"envoy_id": f"{obj.id}"})
     count = Case.objects.filter(envoy=obj).only("id").count()
     return format_html('<a href="{}">{} Cases</a>', url, count)
Exemplo n.º 18
0
def render_table_display_server_side(
    request,
    workflow,
    columns,
    formula,
    view_id=None,
) -> http.JsonResponse:
    """Render the appropriate subset of the data table.

    Use the search string provided in the UI + the filter (if applicable)
    taken from a view.

    :param request: AJAX request
    :param workflow: workflow object
    :param columns: Subset of columns to consider
    :param formula: Expression to filter rows
    :param view_id: ID of the view restricting the display (if any)
    :return: JSON response
    """
    # Check that the GET parameter are correctly given
    dt_page = DataTablesServerSidePaging(request)
    if not dt_page.is_valid:
        return http.JsonResponse(
            {'error': _('Incorrect request. Unable to process')}, )

    # Get columns and names
    column_names = [col.name for col in columns]

    # See if an order has been given.
    order_col_name = None
    if dt_page.order_col:
        # The first column is ops
        order_col_name = column_names[dt_page.order_col - 1]

    qs = sql.search_table(
        workflow.get_data_frame_table_name(),
        dt_page.search_value,
        columns_to_search=column_names,
        filter_formula=formula,
        order_col_name=order_col_name,
        order_asc=dt_page.order_dir == 'asc',
    )

    # Find the first key column
    key_name, key_idx = next(
        ((col.name, idx) for idx, col in enumerate(columns) if col.is_key),
        None)
    key_name = escape(key_name)

    # Post processing + adding operation columns and performing the search
    final_qs = []
    nitems = 0  # For counting the number of elements in the result
    for row in qs[dt_page.start:dt_page.start + dt_page.length]:
        nitems += 1
        new_element = {}
        if view_id:
            stat_url = reverse('table:stat_table_view', kwargs={'pk': view_id})
        else:
            stat_url = reverse('table:stat_table')

        # Transform key name and key value into escaped strings
        key_value = escape(row[key_idx])
        ops_string = render_to_string(
            'table/includes/partial_row_ops.html',
            {
                'stat_url':
                stat_url +
                '?{0}'.format(urlencode({
                    'key': key_name,
                    'val': key_value
                }, )),
                'edit_url':
                reverse('dataops:rowupdate') +
                '?{0}'.format(urlencode({
                    'k': key_name,
                    'v': key_value
                }, )),
                'delete_key':
                '?{0}'.format(
                    urlencode({
                        'key': key_name,
                        'value': key_value
                    }, )),
                'view_id':
                view_id,
            },
        )

        # Element to add to the final queryset
        new_element['Operations'] = ops_string
        column_values = [
            rval.astimezone(timezone(
                settings.TIME_ZONE, )).strftime('%Y-%m-%d %H:%M:%S  %z')
            if isinstance(rval, datetime) else rval for rval in list(row)
        ]
        new_element.update(zip(column_names, column_values))

        # Create the list of elements to display and add it ot the final QS
        final_qs.append(new_element)

        if nitems == dt_page.length:
            # We reached the number or requested elements, abandon.
            break

    return http.JsonResponse({
        'draw': dt_page.draw,
        'recordsTotal': workflow.nrows,
        'recordsFiltered': len(qs),
        'data': final_qs,
    })
Exemplo n.º 19
0
 def employee_link(self, obj):
     url = (reverse("admin:teams_employee_changelist") + "?" +
            urlencode({"courses__id": f"{obj.id}"}))
     return format_html('<a href="{}">{}</a>', url, obj.employee)