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
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
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
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
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
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
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)
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)
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
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)
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
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
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
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)
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)
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, })
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)