def unapprove_attendees(modeladmin, request, queryset): if request.user.has_perm('cal.add_event'): queryset.update(attendees_approved=False) else: messages.set_level(request, messages.ERROR) messages.error(request, 'You do not have permission to edit events') pass
def admin_ui_deletion(request, objects_to_delete, single_model=None): """ Helper method to delete objects selected in the Django admin interface and display the proper message based on the status of their deletion :param objects_to_delete: iterable of Objects selected in admin UI, or a single object instance if `delete_model:admin_ui_deletion` is called with `single_model` having a truthy value :param request: the request Obj :param single_model: Set this to true when calling from a overridden `delete_model` method in the admin.py code """ def create_delete_response_message(del_response): if del_response[0]: messages.success(request, del_response[1]) else: messages.error(request, del_response[1]) # If this method is triggered from an Admin UI 'delete_selected' call if not single_model: for instance in objects_to_delete.all(): delete_response = instance.delete() create_delete_response_message(delete_response) # If this method is triggered from an Admin UI 'delete_model' call else: delete_response = objects_to_delete.delete() if not delete_response[0]: # Fix for multiple messages displaying messages.set_level(request, messages.ERROR) create_delete_response_message(delete_response)
def save_model(self, request, obj, form, change): if not request.user.has_perm('cal.add_event'): messages.set_level(request, messages.ERROR) messages.error(request, 'You do not have permission to edit events') pass else: return super(EventAdmin, self).save_model(request, obj, form, change)
def really_delete_selected(self, request, queryset): for obj in queryset: if obj.classi == 'LAN' or not str(request.user) == 'admin': messages.set_level(request, messages.ERROR) self.message_user( request, "Questo elemento non puo' essere rimosso, apartiene al sistema", level=messages.ERROR) else: data = ''.join(str(datetime.today())[:-7].split(':')).replace( ' ', '-') tmp_sql = '/tmp/._.sql' os.system( 'mysqldump -u %s -h %s --password=%s %s --ignore-table=%s.aron_logs > %s' % (settings.DATABASES.values()[0]['USER'], settings.DATABASES.values()[0]['HOST'], settings.DATABASES.values()[0]['PASSWORD'], settings.DATABASES.values()[0]['NAME'], settings.DATABASES.values()[0]['NAME'], tmp_sql)) file_data = 'config.aron.prx-%s' % data file_save = gzip.open( settings.STATICFILES_DIRS[0] + '/' + file_data, 'wb') file_save.write(bf.crypt(open(tmp_sql, 'r').read())) file_save.close() os.unlink(tmp_sql) obj.delete() message_bit = "Elementi cancellato/i" self.message_user(request, "%s" % message_bit)
def messages_test_view(request): messages.set_level(request, messages.DEBUG) messages.add_message( request, messages.SUCCESS, mark_safe('Success. You are no longer observing contest ' '<strong>Data Science Cup</strong>.')) messages.add_message( request, messages.SUCCESS, mark_safe( '<p>Success</p><p>You have changed the contests. ' 'Lorem ipsum dolor sit' 'amet augue at tortor. Praesent et magnis dis parturient montes,' 'nascetur rig di amet.</p>' '<p>Lorem ipsum Fugiat culpa mollit Duis enim dolor proident et' 'elit adipisicing velit est pariatur dolor cupidatat Duis' 'incididunt consequat Ut ullamco commodo aliquip esse officia' ' cupidatat in aute irure dolor consequat minim.</p>')) messages.add_message( request, messages.DEBUG, mark_safe('This is a debug message. <pre>blebleble</pre>')) messages.add_message( request, messages.INFO, mark_safe('This is an info message. The weather is nice today.')) messages.add_message(request, messages.WARNING, mark_safe("Warning: It's a trap!")) messages.add_message(request, messages.ERROR, mark_safe("Error. Something blew up badly.")) return render( request, 'system/title_and_text.html', { 'title': title('Message Test'), 'content_title': 'Message Test', 'text': "Nothing to do here" })
def store(self, *args, **kwargs): """ Custom save object by calling the object.save function. Creating this custom save function is far easier than overriding forms.ModelForm.save(). store() is unemcumbered by underlying code implementation of save(). """ if settings.TESTING: cookie_string = hash_md5_random_hexdigest() else: cookie_string = self.request.session.session_key if not self._errors: topic = self.Meta.model() topic.save( topic, { 'topic_title': self.cleaned_data.get('topic_title'), 'topic_slug': self.cleaned_data.get('topic_slug'), 'cookie_string': cookie_string }) if topic.check_model_save and topic.check_model_save.if_error: self._errors['cookie_string'] = mark_safe(''.join([ '<ul class="errorlist"><li>', ''.join(self._errors.get('cookie_string', '')), ' ', topic.check_model_save.get_error_msg, '</li></ul>' ])) if not settings.TESTING: messages.set_level(self.request, messages.DEBUG) messages.info(self.request, self._errors['cookie_string'])
def clean(self): cleaned_data = super(TopicModelForm, self).clean() cleaned_data['topic_title'] = strip_extra_spaces( cleaned_data.get('topic_title')) cleaned_data['topic_slug'] = slugify( unicode(cleaned_data['topic_title'])) cleaned_data['public_key'] = mark_safe(settings.PUBLIC_KEY) ########## debugger on ########## #~ from pudb import set_trace; set_trace() if not settings.TESTING: challenge_field = cleaned_data.get('recaptcha_challenge_field') response_field = cleaned_data.get('recaptcha_response_field') remote_address = self.request.META.get('REMOTE_ADDR') captcha_ok = (challenge_field and response_field and remote_address) if captcha_ok: # Call google's recaptcha server and check for proper entries. response = captcha.submit(challenge_field, response_field, settings.PRIVATE_KEY, remote_address) if not (captcha_ok and response.is_valid): self._errors['recaptcha_response_field'] = mark_safe(''.join([ '<ul class="errorlist"><li>', 'Recaptcha is required entry.</li></ul>' ])) messages.set_level(self.request, messages.DEBUG) messages.info(self.request, self._errors['recaptcha_response_field']) return cleaned_data
def clean(self): cleaned_data = super(VoteModelForm, self).clean() if not settings.TESTING: challenge_field = cleaned_data.get('recaptcha_challenge_field') response_field = cleaned_data.get('recaptcha_response_field') remote_address = self.request.META.get('REMOTE_ADDR') captcha_ok = (challenge_field and response_field and remote_address) if captcha_ok: response = captcha.submit(challenge_field, response_field, settings.PRIVATE_KEY, remote_address) if not (captcha_ok and response.is_valid): self._errors['recaptcha_response_field'] = mark_safe(''.join([ '<ul class="errorlist"><li>', 'Recaptcha is required entry.</li></ul>' ])) messages.set_level(self.request, messages.DEBUG) messages.info(self.request, self._errors['recaptcha_response_field']) return cleaned_data
def save_model(self, request, obj, form, change): ''' Enforce superuser permissions checks and send notification emails for other account updates ''' if change and obj.is_superuser and not request.user.is_superuser: messages.set_level(request, messages.ERROR) msg = 'Non-superusers cannot modify superuser accounts.' self.message_user(request, msg, messages.ERROR) else: super().save_model(request, obj, form, change) if change and (not obj.is_active or "is_superuser" in form.changed_data or \ "is_staff" in form.changed_data): if not obj.is_active: context = { 'subject': gettext("Account Deactivated"), 'changed_item': gettext("account"), 'changed_status': gettext("deactivated") } else: context = { 'subject': gettext("Account updated"), 'changed_item': gettext("account"), 'changed_status': gettext("updated"), 'changed_list': self._get_changed_message(form.changed_data, obj) } send_user_account_updated.delay(obj, context)
def dashboard(request): success, code, msg = test_connection() if not success: messages.error( request, _("Unable to connect (HTTP %(code)s) to API at <code>%(url)s</code>%(msg)s") % { "url": settings.CARDSHOP_API_URL, "code": code, "msg": " -- " + msg if msg else "", }, ) return redirect("admin") context = { "channels": as_items_or_none(*get_channels_list()) or None, "warehouses": as_items_or_none(*get_warehouses_list()) or None, "users": as_items_or_none(*get_users_list()) or None, "workers": as_items_or_none(*get_workers_list()) or None, "images": as_items_or_none(*get_autoimages_list()) or None, "api_url": settings.CARDSHOP_API_URL_EXTERNAL, } forms_map = { "channel_form": ChannelForm, "user_form": UserForm, "warehouse_form": WarehouseForm, "image_form": ImageForm, } for key, value in forms_map.items(): context[key] = value(prefix=key, client=request.user.profile) if request.method == "POST" and request.POST.get("form") in forms_map.keys(): # which form is being saved? form_key = request.POST.get("form") context[form_key] = forms_map.get(form_key)( request.POST, prefix=form_key, client=request.user.profile ) if context[form_key].is_valid(): try: res = context[form_key].save() except Exception as exp: logger.error(exp) messages.error(request, _("Error while saving… %(err)s") % {"err": exp}) else: messages.success(request, context[form_key].success_message(res)) return redirect("scheduler") if success: messages.set_level(request, messages.DEBUG) messages.debug( request, _("Connected to Scheduler API at <code>%(url)s</code>") % {"url": settings.CARDSHOP_API_URL}, ) return render(request, "scheduler.html", context)
def save_model(self, request, *args, **kwargs): try: return super(QuestionAdmin, self).save_model(request, *args, **kwargs) except Exception as e: messages.set_level(request, messages.ERROR) self.message_user(request, e, messages.ERROR)
def save_model(self, request, obj, form, change): with transaction.atomic(): try: super().save_model(request, obj, form, change) except Exception as e: messages.set_level(request, messages.ERROR) messages.error(request, e)
def save_model(self, request, obj, form, change): if (obj.customer_name) and (not name_regex.match(obj.customer_name)): messages.set_level(request, messages.ERROR) msg = 'Please enter a valid customer name. Customer Name cannot contain numbers. (Entered Customer Name is %s)' % obj.customer_name messages.error(request, msg) return if obj.phone_no: phone_no = str(obj.phone_no) if len(phone_no) != 10: messages.set_level(request, messages.ERROR) msg = 'Enter valid Phone No. Entered Phone No. is %s and consists of %s digits. Phone No. should have 10 Digits' % ( phone_no, len(phone_no)) messages.error(request, msg) return phone_initial_digit = phone_no[:1] if int(phone_initial_digit) not in INDIAN_PHONE_INITIAL_NUMBERS: messages.set_level(request, messages.ERROR) msg = 'Please enter valid Indian Phone No. Entered Phone No. is %s. Phone No. should start with 9/8/7/6' % ( phone_no) messages.error(request, msg) return if obj.aadhar_ID: addhard_id = str(obj.aadhar_ID) if len(addhard_id) != 12: messages.set_level(request, messages.ERROR) msg = 'Enter valid Adhaar No. Entered Adhaar No. is %s and consists of %s digits. Adhaar No. should have 12 Digits' % ( addhard_id, len(addhard_id)) messages.error(request, msg) return if (obj.email_ID) and (not email_id_regex.match(obj.email_ID)): messages.set_level(request, messages.ERROR) msg = 'Enter a valid Email ID. Example: [email protected] or [email protected] (Entered email ID %s)' % obj.email_ID messages.error(request, msg) return obj.save()
def list(request): success, code, msg = test_connection() if not success: messages.error( request, "Unable to connect (HTTP {code}) to API at <code>{url}</code>{msg}" .format( url=settings.CARDSHOP_API_URL, code=code, msg=" -- " + msg if msg else "", ), ) return redirect("admin") items = OrdersQuerySet("/orders/") page = request.GET.get("page") paginator = Paginator(items, 10) orders_page = paginator.get_page(page) context = { "orders_page": orders_page, "orders": orders_page.object_list, } if success: messages.set_level(request, messages.DEBUG) messages.debug( request, "Connected to Scheduler API at <code>{url}</code>".format( url=settings.CARDSHOP_API_URL), ) return render(request, "all_orders.html", context)
def detail(request, order_id): success, code, msg = test_connection() if not success: messages.error( request, _("Unable to connect (HTTP %(code)s) to API at <code>%(url)s</code>%(msg)s") % { "url": settings.CARDSHOP_API_URL, "code": code, "msg": " -- " + msg if msg else "", }, ) return redirect("admin") retrieved, order = get_order(order_id) context = {"orderdata": OrderData(order)} if success: messages.set_level(request, messages.DEBUG) messages.debug( request, _("Connected to Scheduler API at <code>%(url)s</code>") % {"url": settings.CARDSHOP_API_URL}, ) return render(request, "all_orders-detail.html", context)
def list(request): success, code, msg = test_connection() if not success: messages.error( request, _("Unable to connect (HTTP %(code)s) to API at <code>%(url)s</code>%(msg)s") % { "url": settings.CARDSHOP_API_URL, "code": code, "msg": " -- " + msg if msg else "", }, ) return redirect("admin") items = OrdersQuerySet("/orders/") page = request.GET.get("page") paginator = Paginator(items, 10) orders_page = paginator.get_page(page) context = { "orders_page": orders_page, "orders": orders_page.object_list, } if success: messages.set_level(request, messages.DEBUG) messages.debug( request, _("Connected to Scheduler API at <code>%(url)s</code>") % {"url": settings.CARDSHOP_API_URL}, ) return render(request, "all_orders.html", context)
def save_quick_question(request, mcq_list, question_set): # return 1 # print ("\n\n ******** mcq added to question set ********") cur_mcq = "" line = 10 try: for mcq in mcq_list: cur_mcq = mcq mcq.save() mcq.update_date() line += 1 # question_set.mcq_question.add(mcq) # question_set.save() except IntegrityError as e: messages.set_level(request, messages.ERROR) storage = messages.get_messages(request) # print (storage) messages.error(request, "There Is An Error At Line No: %s" % str(line)) messages.error(request, "The Error MCQ Is %s " % cur_mcq) messages.error(request, e.message) # return e.message return 0 return (line - 10)
def save_model(self, request, obj, form, change): """ Overridden save method so corresponding restaurant object can update its categories field; also checks to make sure signature dish and popular dish limits are obeyed """ food = obj restaurant = Restaurant.objects.filter(_id=food.restaurant_id).first() if (food.category == 'Signature Dish' and Food.objects.filter(restaurant_id=food.restaurant_id, category='Signature Dish').count() == 1): messages.set_level(request, messages.ERROR) messages.error(request, 'A restaurant can only have 1 signature dish.') elif (food.category == 'Popular Dish' and Food.objects.filter(restaurant_id=food.restaurant_id, category='Popular Dish').count() == 6): if food._id not in list( Food.objects.filter(restaurant_id=food.restaurant_id, category='Popular Dish').values_list( '_id', flat=True)): messages.set_level(request, messages.ERROR) messages.error( request, 'A restaurant can only have up to 6 popular dishes.') else: food.clean() food.clean_fields() food.save() restaurant.categories = Food.get_all_categories(food.restaurant_id) restaurant.clean() restaurant.clean_fields() restaurant.save()
def save_model(self, request, obj, form, change): cursor = connection.cursor() cursor.execute( 'select bookstore from bookmanagement_bookinfo where bookname=\'%s\';' % obj.bookinfos.bookname) curentstore = cursor.fetchone()[0] delta = datetime.timedelta(hours=-8) utctime = obj.obtime + delta print(utctime.strftime("%Y-%m-%d %H:%M:%S")) cursor.execute( 'select obnum from bookmanagement_bookobsoinfo where obtime=\'%s\';' % utctime.strftime("%Y-%m-%d %H:%M:%S")) cur = cursor.fetchone() if cur != None: print("not none!") updateOrnew = cur[0] updatedstore = curentstore - obj.obnum + updateOrnew else: updatedstore = curentstore - obj.obnum if updatedstore >= 0: cursor.execute( 'update bookmanagement_bookinfo set bookstore=%d where bookname =\'%s\';' % (updatedstore, obj.bookinfos.bookname)) super().save_model(request, obj, form, change) else: messages.error(request, "库存不足,请重新设置,谢谢!") messages.set_level(request, messages.ERROR)
def detail(request, order_id): success, code, msg = test_connection() if not success: messages.error( request, "Unable to connect (HTTP {code}) to API at <code>{url}</code>{msg}" .format( url=settings.CARDSHOP_API_URL, code=code, msg=" -- " + msg if msg else "", ), ) return redirect("admin") retrieved, order = get_order(order_id) context = {"orderdata": OrderData(order)} if success: messages.set_level(request, messages.DEBUG) messages.debug( request, "Connected to Scheduler API at <code>{url}</code>".format( url=settings.CARDSHOP_API_URL), ) return render(request, "all_orders-detail.html", context)
def save_model(self, request, obj, form, change): if form.is_valid(): if not change: super().save_model(request, obj, form, change) related_parent = [obj.id] if form.cleaned_data["parent"]: parent = form.cleaned_data["parent"] related_parent = self.get_related_parent(parent, related_parent) obj.related_parent = json.dumps(related_parent) super().save_model(request, obj, form, change) else: if obj.id is not None and obj.parent is not None: if obj.id == obj.parent.id: messages.error(request, "保存失败!%s 的上级部门不可为 %s,请重新设置!" % (obj.name, form.cleaned_data["parent"].name)) messages.set_level(request, messages.ERROR) return if Team.objects.get(id=obj.id).parent != obj.parent: if not obj.parent: super().save_model(request, obj, form, change) self.delete_included_related_parent(obj.id) else: related_parent = [obj.id] parent = obj.parent related_parent = self.get_related_parent(parent, related_parent) self.change_included_related_parent(obj.id, related_parent) obj.related_parent = json.dumps(related_parent) super().save_model(request, obj, form, change)
def save_model(self, request, obj, form, change): try: super(LegalPersonAdmin, self).save_model(request, obj, form, change) except Exception as e: messages.set_level(request, messages.ERROR) messages.error(request, e)
def save_model(self, request, obj, form, change): if (change == True) or (Kandydat.objects.count() < 2): super(kandydatAdmin, self).save_model(request, obj, form, change) else: messages.set_level(request, messages.ERROR) messages.error(request, "Nie możesz dodać więcej niż dwóch kandydatów!")
def save_model(self, request, obj, form, change): suma_wydanych = Karty.objects.filter(gmina=obj.gmina)[0].liczba # Ochrona przed ponownym dodaniem glosow dla danej gminy wyniki_dla_gminy = Glosy.objects.filter(gmina=obj.gmina).count() # Jeżeli user próbuje dodać nowe dane dla gminy, # która nie ma jeszcze wprowadzonych danych # lub próbuje zmienić dane if (change == False and wyniki_dla_gminy == 0) or change == True: if suma_wydanych >= obj.wazne and obj.wazne >= obj.glosy_na_wybranego_kanydata: # wydanych >= oddanych # oddanych >= ważnych super(glosyAdmin, self).save_model(request, obj, form, change) else: messages.set_level(request, messages.ERROR) messages.error( request, "Nie możesz oddać więcej głosów niż liczba wydanych kart!") else: # User próbuje dodać dane dla gminy, która ma już dodane głosy messages.set_level(request, messages.ERROR) messages.error( request, "Nie możesz dodać głosów po raz drugi dla tej samej gminy!")
def create(request): #user registration if request.method == "POST": errors = users.objects.user_validator(request.POST) category = 0 key_prev = 'j' if len(errors): for key, value in errors.items(): messages.set_level( request, category) #otherwise will ignore add message if key_prev != key: #allows for multiple errors to display over one box key_prev = key category += 1 print(key, value, category) messages.add_message(request, category, value) print('ERROR::', errors) return redirect('/') else: #create user hash_pw = bcrypt.hashpw(request.POST['password'].encode(), bcrypt.gensalt()) user = users.objects.create(fname=request.POST['first_name'], lname=request.POST['last_name'], email=request.POST['email'], pw_hash=hash_pw) user_id = user.id request.session['create'] = True request.session['user_id'] = user_id print('CREATED::', user) return redirect("/quotes") else: return redirect('/')
def store(self, *args, **kwargs): """ Custom save object by calling the object.save function. Creating this custom save function is far easier than overriding forms.ModelForm.save(). store() is unemcumbered by underlying code implementation of save(). """ if settings.TESTING: cookie_string = hash_md5_random_hexdigest() else: cookie_string = self.request.session.session_key if not self._errors: topic = self.Meta.model() topic.save(topic, { 'topic_title' : self.cleaned_data.get('topic_title'), 'topic_slug' : self.cleaned_data.get('topic_slug'), 'cookie_string' : cookie_string}) if topic.check_model_save and topic.check_model_save.if_error: self._errors['cookie_string'] = mark_safe(''.join(['<ul class="errorlist"><li>', ''.join(self._errors.get('cookie_string', '')), ' ', topic.check_model_save.get_error_msg, '</li></ul>'])) if not settings.TESTING: messages.set_level(self.request, messages.DEBUG) messages.info(self.request, self._errors['cookie_string'])
def clean(self): cleaned_data = super(TopicModelForm, self).clean() cleaned_data['topic_title'] = strip_extra_spaces(cleaned_data.get('topic_title')) cleaned_data['topic_slug'] = slugify(unicode(cleaned_data['topic_title'])) cleaned_data['public_key'] = mark_safe(settings.PUBLIC_KEY) ########## debugger on ########## #~ from pudb import set_trace; set_trace() if not settings.TESTING: challenge_field = cleaned_data.get('recaptcha_challenge_field') response_field = cleaned_data.get('recaptcha_response_field') remote_address = self.request.META.get('REMOTE_ADDR') captcha_ok = (challenge_field and response_field and remote_address) if captcha_ok: # Call google's recaptcha server and check for proper entries. response = captcha.submit(challenge_field, response_field, settings.PRIVATE_KEY, remote_address) if not (captcha_ok and response.is_valid): self._errors['recaptcha_response_field'] = mark_safe(''.join(['<ul class="errorlist"><li>', 'Recaptcha is required entry.</li></ul>'])) messages.set_level(self.request, messages.DEBUG) messages.info(self.request, self._errors['recaptcha_response_field']) return cleaned_data
def save_model(self, request, obj, form, change): if change: obj.save() super(TransactionUserAdmin, self).save_model(request, obj, form, change) if not change: if str(obj.status) == 'Deposit': obj.save() send_mail('Deposit Amount', 'Hello '+str(obj.name)+'.Your transaction with deposit is '+str(obj.amount)+'Rs.', settings.EMAIL_HOST_USER, ['*****@*****.**'], fail_silently=False) super(TransactionUserAdmin, self).save_model(request, obj, form, change) if str(obj.status) == 'Withdraw': depo_amt=[] withdraw_amt=[] amounts_w = TransactionUser.objects.filter(account_no=obj.account_no,status='Withdraw').values_list('amount', flat=True) amounts_d = TransactionUser.objects.filter(account_no=obj.account_no,status='Deposit').values_list('amount', flat=True) total = sum(amounts_d)-sum(amounts_w) if total < 1: messages.set_level(request, messages.ERROR) messages.error(request, 'No amount is available for withdraw !') else: obj.save() send_mail('Withdraw Amount', 'Hello '+str(obj.name)+'.Your transaction with withdraw is '+str(obj.amount)+'Rs.', settings.EMAIL_HOST_USER, ['*****@*****.**'], fail_silently=False) super(TransactionUserAdmin, self).save_model(request, obj, form, change)
def save_model(self, request, obj, form, change): tempEntryDate = obj.EntryDate engTargObje = EngTarget.objects.filter( EngUser=request.user, EntryDate__month=tempEntryDate.month, EntryDate__year=tempEntryDate.year) if not engTargObje: messages.set_level(request, messages.ERROR) messages.error( request, "Your Target yest not set. Please contact system Admin.") return else: fObje = TsaTarget.objects.filter( TsaTsoUser=obj.TsaTsoUser, EntryDate__month=tempEntryDate.month, EntryDate__year=tempEntryDate.year) if fObje: messages.set_level(request, messages.ERROR) messages.error( request, "For this TSA/TSO target already exists in this month.") return else: return super(TsaTargetAdmin, self).save_model(request, obj, form, change)
def addquote(request, user_id): if request.method == "POST": errors = quotes.objects.quote_validator(request.POST) category = 0 key_prev = 'j' if len(errors): for key, value in errors.items(): messages.set_level( request, category) #otherwise will ignore add message if key_prev != key: #allows for multiple errors to display over one box key_prev = key category += 1 print(key, value, category) messages.add_message(request, category, value) print('ERROR::', errors) return redirect('/quotes') else: #create quote poster = users.objects.get(id=user_id) print(poster) this_quote = quotes.objects.create( quotee=request.POST['quotee'], quote=request.POST['quote'], poster=poster) #poster likes his own posts automatically return redirect('/quotes') else: return redirect('/quotes')
def browse(request, category=None): if not category: category = 'latest' if category == 'latest': return list_detail.object_list( request, queryset=Project.objects.all().order_by('-modified'), template_name='gamecc/project_list.html', ) elif category == 'popular': return list_detail.object_list( request, queryset=Project.objects.all().order_by('-modified'), template_name='gamecc/project_list.html', ) elif category == 'categories': return list_detail.object_list( request, queryset=Category.objects.all(), template_name='gamecc/categories.html', ) else: try: cat = Category.objects.get(slug__iexact=category) return list_detail.object_list( request, queryset=cat.project_set, template_name='gamecc/category.html' ) except Category.DoesNotExist: messages.set_level(request, messges.ERROR) messages.error(request, 'That category doesn\'t exist') return HttpResponseRedirect('/browse/categories/')
def list(request): success, code, msg = test_connection() if not success: messages.error( request, "Unable to connect (HTTP {code}) to API at <code>{url}</code>{msg}" .format( url=settings.CARDSHOP_API_URL, code=code, msg=" -- " + msg if msg else "", ), ) return redirect("admin") orders = sorted( [OrderData(order) for order in as_items_or_none(*get_orders_list())], key=lambda item: item["statuses"][0]["on"], reverse=True, ) context = {"orders": orders or None} if success: messages.set_level(request, messages.DEBUG) messages.debug( request, "Connected to Scheduler API at <code>{url}</code>".format( url=settings.CARDSHOP_API_URL), ) return render(request, "all_orders.html", context)
def save_model(self, request, obj, form, change): if obj.status != const.WORK_TYPE_SMALL_0: messages.add_message(request, messages.ERROR, '提出済记录が編集できません') return # 名前、ID if obj.user_id == const.DEF_USERID: obj.user_id = request.user.id obj.name = Employee.objects.get(user=request.user.id).name # 実働時間计算 end_time = datetime.strptime(str(obj.end_time), "%H:%M:%S") sumTime1 = end_time - timedelta(hours=obj.start_time.hour, minutes=obj.start_time.minute, seconds=obj.start_time.second) sum_hour = sumTime1.hour sum_minute = sumTime1.minute if sum_minute != 0: sum_hour_dcm = sum_minute / 60 else: sum_hour_dcm = 0 sumTime2 = sum_hour + sum_hour_dcm float_rest = float(obj.rest) #休憩時間の制御 sumTime3 = sumTime2 - float_rest obj.working_time = sumTime3 try: with transaction.atomic(): super().save_model(request, obj, form, change) return except: messages.set_level(request, messages.ERROR) temp_errMsg = str(obj.date) + 'の勤務記録は既に存在します,修正してください。' messages.error(request, temp_errMsg) return
def edit_user(request): if request.session['user_id'] != -1: user_id = request.session['user_id'] else: messages.add_message(request, 0, 'you must log in') return redirect('/users/login_page') if request.method == "POST": errors = users.objects.edit_validator(request.POST) category = 0 key_prev = 'j' if len(errors): for key, value in errors.items(): messages.set_level( request, category) #otherwise will ignore add message if key_prev != key: #allows for multiple errors to display over one box key_prev = key category += 1 print(key, value, category) messages.add_message(request, category, value) print('ERROR::', errors) return redirect("/users/" + str(user_id) + '/edit') else: #update user this_user = users.objects.get(id=str(user_id)) this_user.fname = request.POST['first_name'] this_user.lname = request.POST['last_name'] this_user.email = request.POST['email'] this_user.save() #put into DB return redirect("/users/" + str(user_id)) else: return redirect('/')
def save_model(self, request, obj, form, change): try: with transaction.atomic(): if obj.gender.name == 'Hombre' and obj.carrer.places_h > 0 or obj.gender.name == 'Mujer' and obj.carrer.places_m > 0: obj.save() # Restamos lugares por género if obj.gender.name == 'Hombre': obj.carrer.places_h = obj.carrer.places_h - 1 obj.carrer.save() d = obj.carrer.places_h else: obj.carrer.places_m = obj.carrer.places_m - 1 obj.carrer.save() d = obj.carrer.places_m messages.set_level(request, messages.WARNING) g = obj.gender.name c_c = Carrer.objects.filter(name=obj.carrer.name).count() c = c_c + d a = obj.carrer.name messages.warning( request, 'Arma : {} - Lugares disponibles {} - Género {} - Cuota: {}' .format(a, d, g, c)) else: messages.set_level(request, messages.ERROR) messages.error( request, 'No hay cuota disponible para {}'.format( obj.carrer.name)) return HttpResponseRedirect(request.path) except DatabaseError as e: # logger.exception("Naming update transaction DB error") messages.error(request, 'Error en la transacción {}'.format(e)) return HttpResponseRedirect(request.path)
def get_queryset(self): place = get_object_or_404(Space, url=self.kwargs['space_name']) if settings.DEBUG: messages.set_level(self.request, messages.DEBUG) messages.debug(self.request, "Succesful query.") return Post.objects.all().filter(space=place).order_by('-pub_date')
def kitchen_sink(request): messages.set_level(request, messages.DEBUG) messages.add_message(request, messages.DEBUG, 'Debug Message') messages.add_message(request, messages.INFO, 'Info Message') messages.add_message(request, messages.SUCCESS, 'Success Message') messages.add_message(request, messages.WARNING, 'Warning Message') messages.add_message(request, messages.ERROR, 'Error Message') return render(request, 'demo/kitchensink.html', {})
def save_model(self, request, obj, form, change): try: if not (request.user == obj.user) and (not request.user.is_superuser): raise ValidationError( _('user_without_permissions') % {'user':request.user.username} ) obj.save() except ValidationError as e: messages.set_level(request, messages.ERROR) messages.error(request,"%s" % e[0])
def messages_example(request): messages.set_level(request, messages.DEBUG) messages.debug(request, 'This is a debug message') messages.info(request, 'This is an informational message. It also happens to be a decently long one just to see how everything looks when it has to wrap to multiple lines') messages.success(request, '<strong>Great success!</strong> Whatever you did seems to have worked out!') messages.warning(request, 'Better watch out! This is a warning.') messages.error(request, 'Bad bad bad! Something really awful happened!') messages.add_message(request, 8000, 'Custom message level') pass
def dispatch(self, request, *args, **kwargs): messages.set_level(request, messages.DEBUG) if request.session.test_cookie_worked(): request.session.delete_test_cookie() else: messages.info(request, 'This website uses cookies.') request.session.set_test_cookie() return super(SessionViewMixin, self).dispatch(request, *args, **kwargs)
def test(request): messages.set_level(request, messages.DEBUG) messages.debug(request, 'This is a debug alert') messages.info(request, 'This is an info alert') messages.success(request, 'This is a success alert') messages.warning(request, 'This is a warning alert') messages.error(request, 'This is an error alert') return render(request, 'alerts/test.html')
def voir_messages(request): articles = Article.objects.all() messages.set_level(request, messages.DEBUG) # je suis obligé de le faire sinon je n'ai pas les debug... messages.add_message(request, messages.INFO, 'Bonjour visiteur !') messages.debug(request, '%s requêtes SQL ont été exécutées.' % articles) messages.info(request, 'Rebonjour !') messages.success(request, 'Votre article a bien été mis à jour.') messages.warning(request, 'Votre compte expire dans 3 jours.') messages.error(request, 'Cette image n\'existe plus.') return render(request, 'blog/messages.html')
def service_add(request): form = ServiceForm() messages.set_level(request, messages.DEBUG) if request.method == 'POST': form = ServiceForm(request.POST) if form.is_valid(): form.save() messages.success(request, 'Serviço cadastrado com successo.') return HttpResponseRedirect(reverse('service_list'), request) return render(request, 'service_add.html', {'form': form})
def index(request): n = random.randrange(0, 5) if n==0: messages.set_level(request, messages.DEBUG) elif n==1: messages.set_level(request, messages.INFO) elif n==2: messages.set_level(request, messages.SUCCESS) elif n==3: messages.set_level(request, messages.WARNING) elif n==4: messages.set_level(request, messages.ERROR) # Logged in User Name Info if request.user.username: name = 'Are You {}? If not I am in big trouble'.format(request.user.username) else: name = "I don't know You! Can you please log in! I would like to know more about you." # request.META Info meta = "You are now using {}.".format(request.META['HTTP_USER_AGENT']) # Users Info how_many_users = len(User.objects.all()) latest_one_user = User.objects.order_by("-date_joined")[0] users = "We have {} registered users! The latest registered one is {}.".format(how_many_users, latest_one_user) # Blog Info post_id = random.randrange(1, len(Post.objects.all())+1) blog_post = Post.objects.get(pk=post_id) # Polls Info pk_q = random.randrange(1, len(Poll.objects.all())+1) question = Poll.objects.get(pk=pk_q) number = random.randrange(0, len(question.choice_set.all())) votes = question.choice_set.order_by('-votes')[number] messages.debug(request, name) messages.info(request, meta) messages.success(request, users) messages.warning(request, 'Intrested in "{}" ? Read the blog !'.format(blog_post)) messages.error(request, '{} {}. --> Disagree? Vote!'.format(question, votes)) return render(request, 'flash_message/index.html')
def upload(request): filename = 'card_data_tmp.csv' if request.method == 'POST': form = UploadFileForm(request.POST, request.FILES) if form.is_valid(): store_file(request.FILES['file'], filename) res = list(import_data(filename)) messages.set_level(request, messages.DEBUG) messages.info(request, str(res[0]), 'done') messages.error(request, str(res[1]), 'exist') return HttpResponseRedirect(reverse('code_check:uploaded')) else: form = UploadFileForm() context = { 'form': form, } return render(request, template_name='code_check/upload.html', context=context)
def form_valid(self, form): monfiles = [] netid = int(self.kwargs.get('id','1')) messages.set_level(self.request, messages.DEBUG) def msg(how, what): log = getattr(logger,how) log(what); mes = getattr(messages,how) mes(self.request,what) for f in form.files.getlist('filename'): try: msg('debug','Verwerking van MON file %s' % f.name) mon, saved = monfile.save(self.request,f,net=netid) if saved: msg('info','Bestand toegevoegd: %s' % mon.file) monfiles.append(mon) else: msg('warning','Identiek bestand bestaat al: %s' % mon.file) continue except Exception as e: msg('error',e) continue for mon in monfiles: # actualiseren PRESSURE tijdreeksen for s in mon.datasource.getseries(): msg('debug','Tijdreeks actualiseren: %s' % s) try: s.update() except Exception as e: msg('error','Fout bij actualisatie van tijdreeks %s: %s' %(s, e)) locs = set([mon.meetlocatie() for mon in monfiles]) for loc in locs: # dependent series (LEVEL) actualiseren voor alle geactualiseerde meetlocaties for fm in loc.formula_set.all(): msg('debug','Berekenen van tijdreeks %s (%s)' % (fm,fm.locatie.name)) try: fm.update() except Exception as e: msg('error','Fout bij berekening van tijdreeks %s: %s' % (fm, e)) break return super(UploadFileView,self).form_valid(form)
def process_request(self, request): """ set the django message level by user type use system preferences. """ # Get the system preferences system_preferences = request.PYLUCID.preferences # get the level by user type and system preferences if request.user.is_superuser: level = system_preferences["message_level_superuser"] elif request.user.is_staff: level = system_preferences["message_level_staff"] elif request.user.is_authenticated(): level = system_preferences["message_level_normalusers"] else: level = system_preferences["message_level_anonymous"] # Set the current used message level messages.set_level(request, level)
def test_high_level(self): request = self.get_request() storage = self.storage_class(request) request._messages = storage self.assertTrue(set_level(request, 30)) self.assertEqual(get_level(request), 30) add_level_messages(storage) self.assertEqual(len(storage), 2)
def test_low_level(self): request = self.get_request() storage = self.storage_class(request) request._messages = storage self.assert_(set_level(request, 5)) self.assertEqual(get_level(request), 5) add_level_messages(storage) self.assertEqual(len(storage), 6)
def clean(self): cleaned_data = super(VoteModelForm, self).clean() if not settings.TESTING: challenge_field = cleaned_data.get('recaptcha_challenge_field') response_field = cleaned_data.get('recaptcha_response_field') remote_address = self.request.META.get('REMOTE_ADDR') captcha_ok = (challenge_field and response_field and remote_address) if captcha_ok: response = captcha.submit(challenge_field, response_field, settings.PRIVATE_KEY, remote_address) if not (captcha_ok and response.is_valid): self._errors['recaptcha_response_field'] = mark_safe(''.join(['<ul class="errorlist"><li>', 'Recaptcha is required entry.</li></ul>'])) messages.set_level(self.request, messages.DEBUG) messages.info(self.request, self._errors['recaptcha_response_field']) return cleaned_data
def gestion_maj(request): """vue qui gere les maj""" messages.set_level(request, messages.INFO) try: with transaction.atomic(): config = models.Config.objects.get_or_create(id=1, defaults={'id': 1})[0] lastmaj = config.derniere_import_money_journal if lastmaj.tzinfo is None: lastmaj = tz.make_aware(lastmaj, timezone=tz.utc) messages.info(request, "dernière mise à jour: %s" % tz.localtime(lastmaj)) messages.info(request, "From PC to iphone") nb_export = export(lastmaj, request) if int(nb_export['ope']) > 0: messages.success(request, "opérations exportées: %s" % nb_export['ope']) if nb_export['compte'] > 0: messages.success(request, "comptes exportés: %s" % nb_export['compte']) if nb_export['cat'] > 0: messages.success(request, "catégories exportées: %s" % nb_export['cat']) if int(nb_export['ope']) == 0 and nb_export['compte'] == 0 and nb_export['cat'] == 0: messages.success(request, "Rien d'exporté") messages.info(request, "From iphone to PC") nb_import = import_items(lastmaj, request) if int(nb_import['ope']) > 0: messages.success(request, "opérations importées: %s" % nb_import['ope']) if nb_import['compte'] > 0: messages.success(request, "comptes importés: %s" % nb_import['compte']) if nb_import['cat'] > 0: messages.success(request, "catégories importées: %s" % nb_import['cat']) if int(nb_import['ope']) == 0 and nb_import['compte'] == 0 and nb_import['cat'] == 0: messages.success(request, "Rien d'importé") if nb_import["deja"] > 0: messages.info(request, "%s éléments du répertoire money journal déja mises à jour" % nb_import['deja']) #on gere ceux qu'on elimine car deja pris en en compte config.derniere_import_money_journal = utils.now() config.save() except Lecture_plist_exception as exc: messages.error(request, exc.msg) return render_to_response('generic.djhtm', {'titre': 'intégration des maj recues', }, context_instance=RequestContext(request))
def dashboard(request): """ l'accueil """ c = {'category': 'dashboard'} c.update(csrf(request)) try: last_new = News.objects.latest('id') c.update({"last_new": last_new}) except: c.update({"message_empty_c": "Pas de comminiqué"}) president = Member.objects.get(post__slug="president") president.url_display = reverse("display_member", args=[president.id]) reports = Report.objects.all().order_by('-date')[:3] try: textstatic = TextStatic.objects.get(slug='dashboard') except: textstatic = None for report in reports: report.url_report_date = reverse("report", args=[report.id]) message_empty_r = "Pas de rapport" c.update({"reports": reports, "message_empty_r": message_empty_r, "textstatic": textstatic, "president": president}) if request.method == 'POST': form = Newsletterform(request.POST) if form.is_valid(): form.save() messages.success(request, u"Votre email a été bien enregistre") messages.set_level(request, messages.WARNING) return redirect('dashboard') else: form = Newsletterform() c.update({'form': form}) return render(request, 'dashboard.html', c)
def save_model(self, request, obj, form, change): """Users can't edit anything if 'parking_number' and 'parking_number_year' are set. (except setting to inactive) Auto set user field to logged in user. We want to send an email if a new registration is added OR a record's agree_to_TOS goes from False to True """ msg_part = "" #store additional no save message if change: #update vr = VehicleRegistration.objects.get(pk=obj.id) if vr.parking_number and vr.parking_number_year: if vr.active and not form.cleaned_data['active']: #always allow setting a registration to inactive #(I'm just going to save on the model instance directly #and short-circuit the whole admin save process to I can #make sure only this one field is getting changed.) vr.active = False vr.save() messages.warning(request, "Registration %s was set to inactive." % (vr)) msg_part = "other " #Hide success messages so it doesn't say succeeded when I'm failing it messages.set_level(request, messages.WARNING) messages.error(request, "Once a Parking Permit has been assigned, no %sdata can be changed. Please contact security if you need to change your information." % msg_part) else: #An existing record without an assigned parking number and year is being changed if not vr.agree_to_TOS and form.cleaned_data['agree_to_TOS']: #Send an email if user has agreed to TOS obj.send_created_email() super(MyVehiclesAdmin, self).save_model(request, obj, form, change) else: #new record obj.user = request.user super(MyVehiclesAdmin, self).save_model(request, obj, form, change) #Send email to notify of new record if obj.active and obj.agree_to_TOS: obj.send_created_email()
def save_model(self, request, obj, form, change): """for getting rid of messages""" messages.set_level(request, messages.ERROR) obj.user = request.user obj.save()
def save_model(self, request, obj, form, change): ldap_user_name = str(obj.ldap_user_name) if obj.ldap_user_name else None udn = Person.ldap_udn_for( ldap_user_name ) try: if (not ldap_user_name) or (ldap_user_name is None): logging.warning("An LDAP user was not given. It is not updated!") super(PersonAdmin, self).save_model(request, obj, form, change) return if Person.exists_in_ldap(ldap_user_name): # actualizar ldap_person = Person.get_from_ldap(ldap_user_name) # update data ldap_person.update_ldap_data_from(obj) # update password only for superuser if str(ldap_person.ldap_user_password) != str(obj.ldap_user_password) \ and request.POST.has_key('ldap_user_password_check'): if request.user.is_superuser: logging.warning("User '%s' already exists in Ldap. changing password.." % ldap_user_name) Person.update_ldap_user_password ( ldap_user_name, str(obj.ldap_user_password) ) else: raise ValidationError( _('cant_change_password') ) # update group only for superuser if str(ldap_person.group_id) != str(obj.group_id): if request.user.is_superuser: logging.warning("User '%s' already exists in Ldap. Changing group '%s' by '%s'.." % \ (ldap_user_name,ldap_person.group_id, obj.group_id ) ) Group.add_member_to(ldap_user_name, {'group_id': str(obj.group_id)}) Group.remove_member_of(ldap_user_name, ldap_person.group_id) ldap_person.update_ldap_gidgroup( str(obj.group_id) ) else: raise ValidationError( _('cant_change_group') ) else: # crear nuevo new_uid_number = Person.next_ldap_uidNumber() if not (new_uid_number > 0): logging.error( "The following 'ldap user uid' could not be determined. " \ "The value obtained was %s" % str(new_uid_number)) raise ValidationError( _('without_ldap_user_uid') ) if Person.exist_ldap_uidNumber(new_uid_number): logging.error("The ldap user uidNumber '%s' already exist!." % str(new_uid_number)) new_uid_number = 0 raise ValidationError( _('uidnumber_already_exist') % {'uidnumber':str(new_uid_number)} ) # Create new ldapp user cnuser = LdapConn.parseattr( "%s %s" % (obj.name, obj.surname) ) snuser = LdapConn.parseattr( "%s" % obj.surname ) new_user = [ ('objectclass', settings.LDAP_PEOPLE_OBJECTCLASSES), ('cn', [cnuser]), ('sn', [snuser]), ('givenName', [ LdapConn.parseattr(obj.name)] ), ('paisdoc', [settings.LDAP_PEOPLE_PAISDOC] ), ('tipodoc', [str(obj.document_type)] ), ('numdoc', [str(obj.document_number)] ), ('uidNumber', [str(new_uid_number)] ), ('userPassword', [str(obj.ldap_user_password)] ), ('homedirectory', [str('%s%s' % ( settings.LDAP_PEOPLE_HOMEDIRECTORY_PREFIX, ldap_user_name))]), ('gidNumber', [str(obj.group_id)] ), ('loginShell', [str(settings.LDAP_PEOPLE_LOGIN_SHELL)]),] if obj.position: new_user.append(('employeeType', [str(obj.position)] )) if obj.area: new_user.append(('destinationIndicator', [str(obj.area)])) if obj.floor: new_user.append(('departmentNumber', [str(obj.floor)] )) if obj.work_phone: new_user.append(('telephoneNumber', [str(obj.work_phone)])) if obj.home_phone: new_user.append(('homePhone', [str(obj.home_phone)])) if obj.office_name(): new_user.append(('physicalDeliveryOfficeName', [str(LdapConn.parseattr(obj.office_name()))])) if obj.email: mails = [] mails.append(str(obj.email)) if obj.alternative_email: mails.append(str(obj.alternative_email)) new_user.append(('mail',mails)) Person.create_ldap_user( ldap_user_name, new_user ) # Update ldap groups cn_group = Group.cn_group_by_gid(obj.group_id) cn_groups = ['%s' % str(cn_group)] if settings.LDAP_DEFAULT_GROUPS: cn_groups += settings.LDAP_DEFAULT_GROUPS Group.add_member_in_groups( ldap_user_name, cn_groups ) obj.save() except ValidationError as e: messages.set_level(request, messages.ERROR) messages.error(request,"%s" % e[0])
def pushMessage(request, msgType, msg): messages.set_level(request, msgType) messages.add_message(request, msgType, msg)