示例#1
0
    def check_basket_is_valid(self, request):
        """
        Check that the basket is permitted to be submitted as an order. That
        is, all the basket lines are available to buy - nothing has gone out of
        stock since it was added to the basket.

        检查允许将购物篮作为订单提交。 也就是说,所有购物篮行都可以买到 - 因为
        它被添加到购物篮里,所以没有任何东西已经缺货。
        """
        messages = []
        strategy = request.strategy
        for line in request.basket.all_lines():
            result = strategy.fetch_for_line(line)
            is_permitted, reason = result.availability.is_purchase_permitted(
                line.quantity)
            if not is_permitted:
                # Create a more meaningful message to show on the basket page
                # 创建更有意义的消息以显示在购物篮页面上
                msg = _(
                    "'%(title)s' is no longer available to buy (%(reason)s). "
                    "Please adjust your basket to continue"
                ) % {
                    'title': line.product.get_title(),
                    'reason': reason}
                # '%(标题)s'不再可供购买(%(原因)s)。 请调整你的购物篮继续
                messages.append(msg)
        if messages:
            raise exceptions.FailedPreCondition(
                url=reverse('basket:summary'),
                messages=messages
            )
示例#2
0
文件: views.py 项目: ekr/ietfdb
def get_document_emails(ipr):
    """Returns a list of messages to inform document authors that a new IPR disclosure
    has been posted"""
    messages = []
    for rel in ipr.iprdocrel_set.all():
        doc = rel.document.document

        if is_draft(doc):
            doc_info = 'Internet-Draft entitled "{}" ({})'.format(
                doc.title, doc.name)
        else:
            doc_info = 'RFC entitled "{}" (RFC{})'.format(
                doc.title, get_rfc_num(doc))

        addrs = gather_address_lists('ipr_posted_on_doc',
                                     doc=doc).as_strings(compact=False)

        author_names = ', '.join(
            a.person.name
            for a in doc.documentauthor_set.select_related("person"))

        context = dict(doc_info=doc_info,
                       to_email=addrs.to,
                       to_name=author_names,
                       cc_email=addrs.cc,
                       ipr=ipr)
        text = render_to_string('ipr/posted_document_email.txt', context)
        messages.append(text)

    return messages
示例#3
0
    def register(self, postData):
        print 'First name: ', postData['first_name']
        messages = []

        if (len(postData['first_name']) < 2) and (len(postData['last_name']) <
                                                  2):
            messages.append(
                'First and last name must be longer than two characters')
        elif (not NAME_REGEX.match(postData['first_name'])) and (
                not NAME_REGEX.match(postData['last_name'])):
            messages.append(
                'Name cannot contain numbers or special characters')
        if not EMAIL_REGEX.match(postData['email']):
            messages.append('Please enter a valid email address')
        if (len(postData['password']) < 7):
            messages.append('Password must be at least 8 characters long')
        elif not postData['password'] == postData['confirm_pw']:
            messages.append('Passwords must match')

        if len(messages) != 0:
            return (False, messages)

        else:
            pw_hash = bcrypt.hashpw(str(postData['password']),
                                    bcrypt.gensalt())

            user = User.objects.create(first_name=postData['first_name'],
                                       last_name=postData['last_name'],
                                       email=postData['email'],
                                       password=pw_hash)
            return (True, user)
示例#4
0
    def sendWelcomeEmail(self, request, queryset):
        """Generates a random password for, and sends a welcome e-mail to, the selected users"""
        messages = []
        subject = get_template('users/email/welcome-email-subject.txt').render(Context({}))
        appUrl = request.build_absolute_uri(reverse('webapp:app'))
        fromAddr = getattr(settings, 'EMAIL_FROM', None)

        for user in queryset:
            # Check user has an e-mail address
            if user.email == '':
                self.message_user(request, 'User %s has no e-mail address' % user.username, ERROR)
                continue

            # Assign new password
            newPassword = User.objects.make_random_password()
            user.set_password(newPassword)
            user.save()

            # Prepare e-mail
            context = {
                'appUrl': appUrl,
                'user': user,
                'password': newPassword
            }
            message = get_template('users/email/welcome-email.txt').render(Context(context))
            messages.append((subject, message, fromAddr, [user.email]))
        
        # Send messages
        if len(messages) > 0:
            sent = send_mass_mail(messages, fail_silently=True)
            self.message_user(request, '%d e-mails sent' % sent)
        else:
            self.message_user(request, 'No e-mails sent', WARNING)
示例#5
0
def get_document_emails(ipr):
    """Returns a list of messages to inform document authors that a new IPR disclosure
    has been posted"""
    messages = []
    for rel in ipr.iprdocrel_set.all():
        doc = rel.document.document
        authors = doc.authors.all()
        
        if is_draft(doc):
            doc_info = 'Internet-Draft entitled "{}" ({})'.format(doc.title,doc.name)
        else:
            doc_info = 'RFC entitled "{}" (RFC{})'.format(doc.title,get_rfc_num(doc))

        addrs = gather_address_lists('ipr_posted_on_doc',doc=doc).as_strings(compact=False)
        author_names = ', '.join([a.person.name for a in authors])
    
        context = dict(
            doc_info=doc_info,
            to_email=addrs.to,
            to_name=author_names,
            cc_email=addrs.cc,
            ipr=ipr)
        text = render_to_string('ipr/posted_document_email.txt',context)
        messages.append(text)
    
    return messages
示例#6
0
    def send(self, force=False, test=True):
        final_receivers = []
        if self.pk:
            activate_url = re.search(r'\*\|ACTIVATE_URL\|\*', self.template)
            archive_url = re.search(r'\*\|ARCHIVE\|\*', self.template)
            mc_subject = re.search(r'\*\|MC:SUBJECT\|\*', self.template)

            receivers = self.receivers_test if test else self.receivers
            receivers = receivers.split(',')
            messages = []

            irange = 0

            for receiver in receivers:
                receiver = receiver.strip()
                if is_valid_email(receiver):

                    html = self.template
                    html = set_mailchimp_vars(html)

                    if activate_url:
                        activation_token, created = EmailingUserActivationToken.objects.get_or_create(email=receiver)
                        html = html.replace(activate_url.group(0), activation_token.get_activate_url() )

                    # if archive_url:
                    #     html = html.replace(archive_url.group(0), self. )

                    if mc_subject:
                        html = html.replace(mc_subject.group(0), self.subject )

                    html = clean_html_for_email(html)

                    if not test:
                        transaction, created = EmailingTransaction.objects.get_or_create(
                            receiver=receiver,
                            emailing=self
                        )
                    else:
                        created = True
                    if irange < self.send_range and (created or transaction.send_count == 0):
                        message = HtmlTemplateEmail(
                            subject=self.subject,
                            sender=self.sender,
                            receivers=[receiver],
                            html=html,
                        )
                        messages.append(message)
                        final_receivers.append(receiver)
                        if not test:
                            transaction.send_count += 1
                            transaction.save()
                        irange += 1

            send_mass_email(messages)
            if test:
                self.test_count += 1
            else:
                self.send_count += 1
            self.save()
        return final_receivers
示例#7
0
def get_new_message(request):
    messages = []
    try:
        room_id = request.GET.get('room_id')
        user = request.user

        messagestemp = Message.objects.filter(read='0')
        for message in messagestemp:
            if int(message.user_id) == int(user.id):
                pass
            else:
                if message.read == "0":
                    data = {}
                    data['message_id'] = message.id
                    data['room_id'] = message.room_id
                    data['user_name'] = CustomUser.objects.get(
                        id=message.user_id).username
                    if CustomUser.objects.get(id=message.user_id).avatar:
                        data['avatar'] = CustomUser.objects.get(
                            id=message.user_id).avatar.url
                    else:
                        data['avatar'] = ""
                    data['message'] = message.content
                    data['created_at'] = get_different_time(message.created_at)
                    if CustomUser.objects.get(
                            id=message.user_id).username == user.username:
                        data['me'] = "1"
                    else:
                        data['me'] = "0"
                    messages.append(data)
                else:
                    pass
        return JsonResponse({'messages': messages})
    except:
        return JsonResponse({'messages': messages})
示例#8
0
def questions(request):
    if not request.user.is_authenticated():
        messageform = None
    else:
        messageform = MessageForm()

    link = Links_Tables.objects.get(Src_name="QUESTIONS", Dst_name="MESSAGES")
    metalinks = Metalinks.objects.filter(Link_tables=link)

    mess = []
    #выбрать все "вопросы", привязанные металинками
    for m in metalinks:
        mess.append(Message.objects.get(id=m.Dst_id))

    messages = []
    for m in mess:
        req = list(Message.objects.filter(Parent=m))
        req.insert(0, m)
        messages.append(req)

    template = get_template("questions.html")
    context = RequestContext(request, {
        'messageform': messageform,
        'ms': messages
    })
    return HttpResponse(template.render(context))
示例#9
0
def get_posted_emails(ipr):
    """Return a list of messages suitable to initialize a NotifyFormset for
    the notify view when a new disclosure is posted"""
    messages = []

    addrs = gather_address_lists('ipr_posting_confirmation',ipr=ipr).as_strings(compact=False)
    context = dict(
        to_email=addrs.to,
        to_name=ipr.submitter_name,
        cc_email=addrs.cc,
        ipr=ipr)
    text = render_to_string('ipr/posted_submitter_email.txt',context)
    messages.append(text)
    
    # add email to related document authors / parties
    if ipr.iprdocrel_set.all():
        messages.extend(get_document_emails(ipr))
    
    # if Generic disclosure add message for General Area AD
    if isinstance(ipr, (GenericIprDisclosure,NonDocSpecificIprDisclosure)):
        role = Role.objects.filter(group__acronym='gen',name='ad').first()
        context = dict(
            to_email=role.email.address,
            to_name=role.person.name,
            ipr=ipr)
        text = render_to_string('ipr/posted_generic_email.txt',context)
        messages.append(text)
        
    return messages
示例#10
0
文件: views.py 项目: ekr/ietfdb
def get_posted_emails(ipr):
    """Return a list of messages suitable to initialize a NotifyFormset for
    the notify view when a new disclosure is posted"""
    messages = []

    addrs = gather_address_lists('ipr_posting_confirmation',
                                 ipr=ipr).as_strings(compact=False)
    context = dict(to_email=addrs.to,
                   to_name=ipr.submitter_name,
                   cc_email=addrs.cc,
                   ipr=ipr)
    text = render_to_string('ipr/posted_submitter_email.txt', context)
    messages.append(text)

    # add email to related document authors / parties
    if ipr.iprdocrel_set.all():
        messages.extend(get_document_emails(ipr))

    # if Generic disclosure add message for General Area AD
    if isinstance(ipr, (GenericIprDisclosure, NonDocSpecificIprDisclosure)):
        role = Role.objects.filter(group__acronym='gen', name='ad').first()
        context = dict(to_email=role.email.address,
                       to_name=role.person.name,
                       ipr=ipr)
        text = render_to_string('ipr/posted_generic_email.txt', context)
        messages.append(text)

    return messages
示例#11
0
    def get(self, request):
        codigos = Codigos.objects.all().exists()
        laboratorios = Laboratorio.objects.all().exists()
        tipos_estudios = Tipos_Estudios.objects.all().exists()
        sub_tipos_estudios = Sub_Tipos_Estudios.objects.all().exists()
        nomina = Nomina.objects.all().exists()
        messages = []
        sub_tipos_estudios_message = 'El administrador no ha resistrado sub tipos de estudios.'
        tipos_estudios_message = 'El administrador no ha resistrado tipos de estudios.'
        laboratorios_message = 'El administrador no ha resistrado laboratorios.'
        codigos_message = 'El administrador no ha resistrado codigos.'
        nomina_message = 'El administrador no ha resistrado nomina.'

        if not codigos:
            messages.append({'message': codigos_message})

        if not laboratorios:
            messages.append({'message': laboratorios_message})

        if not tipos_estudios:
            messages.append({'message': tipos_estudios_message})

        if not sub_tipos_estudios:
            messages.append({'message': sub_tipos_estudios_message})

        if not nomina:
            messages.append({'message': nomina_message})
        print messages
        return Response(messages, status=status.HTTP_200_OK)
示例#12
0
def send_newsletter(request):
    charity = get_object_or_404(Charity, user=request.user)
    favorited = charity.favorite.all()
    email_list = []
    for user in favorited:
        email_list.append(user.email)
    email_list.append(request.user.email)
    if request.method == 'GET':
        form = EmailForm()
    else:
        form = EmailForm(request.POST)
        if form.is_valid():
            subject = form.cleaned_data['subject']
            message = form.cleaned_data['message']
            try:
                messages = []
                for email in email_list:
                    message_to_send = (charity.charity_name + ': ' + subject,
                                       message, '*****@*****.**',
                                       [email])
                    messages.append(message_to_send)
                #send_mail(charity.charity_name +': '+subject, message, '*****@*****.**', email_list)
                send_mass_mail(messages, fail_silently=False)
            except BadHeaderError:
                return HttpResponse('Invalid header found.')
            return redirect('charities:charity_dashboard')
    return render(request, "users/charities/email.html", {'form': form})
示例#13
0
 def post(self, userData):
     messages = []
     if len(userData['secret_post']) == 0:
         messages.append('Enter a valid secret')
         return messages
     else:
         return True
示例#14
0
def get_group_messages(request, group):

    messages = []

    if group == "global":
        try:
            targetgroup = Chat_group.objects.get(global_group=True)
        except:
            return HttpResponse(json.dumps(messages))
    else:
        targetgroup = Chat_group.objects.get(pk=group)

    query_data = GroupChatMessage.objects.filter(
        group=targetgroup).order_by('-created')[:20]

    for item in query_data:
        messages.append({
            "created": item.created.strftime("%Y-%m-%d %H:%M"),
            "message": item.message,
            "group": item.group.pk,
            "username": item.user.username,
            "profile_photo": str(item.user.profile.profile_photo),
            "user_id": item.user.pk,
            "content_type": item.content_type,
            "message_pk": item.pk
        })

    return HttpResponse(json.dumps(messages))
示例#15
0
def get_stored_message_nav(request):
    user = request.user
    messages = []
    try:
        roomtemp = Room.objects.filter(who=user.id) | Room.objects.filter(
            whom=user.id).order_by('-created_at')
        for room in roomtemp:
            rows = Message.objects.filter(room_id=room.id).exclude(
                user_id=user.id)
            if len(messages) < 4:
                if rows.count() > 0:
                    data = {}
                    count_message = rows.count()
                    first_message = rows.order_by('-created_at').first()
                    data['room_id'] = room.id
                    data['full_name'] = CustomUser.objects.get(
                        id=first_message.user_id
                    ).first_name + " " + CustomUser.objects.get(
                        id=first_message.user_id).last_name
                    if CustomUser.objects.get(id=first_message.user_id).avatar:
                        data['user_avatar'] = CustomUser.objects.get(
                            id=first_message.user_id).avatar.url
                    else:
                        data['user_avatar'] = ""
                    data['cnt_message'] = count_message
                    data['message'] = first_message.content
                    data['created_at'] = get_different_time(
                        first_message.created_at)
                    messages.append(data)
        return JsonResponse({'messages': messages})
    except:
        return JsonResponse({'messages': messages})
示例#16
0
def login_page(request, message=None, error=None):
    "Displays the login form and handles the login action."
    redirect_to = request.GET.get('next', '')

    if request.method == 'POST':
        form = LoginForm(request.POST)
        if form.is_valid():
            auth.login(request, form.cleaned_data['user'])
            return HttpResponseRedirect(redirect_to or '/')
    else:
        form = LoginForm()

    info = {
        'form': form,
        'next': redirect_to,
        'site_name': Site.objects.get_current().name,
    }

    messages = info['messages'] = []
    if message:
        message.append(message)
    url_message = request.GET.get('message')
    if url_message:
        messages.append(url_message)

    if error:
        info['reset_error'] = error
    return render(request, 'registration/login.html', info)
示例#17
0
def save_ajax(request):
    if not request.method == 'POST':
        return _get_http_response({'errors': 'It is not a POST request'})
    adaptor = _get_adaptor(request, 'POST')
    if not adaptor:
        return _get_http_response({'errors': 'Params insufficient'})
    if not adaptor.can_edit():
        return _get_http_response({'errors': 'You can not edit this content'})
    value = adaptor.loads_to_post(request)
    new_data = get_dict_from_obj(adaptor.obj)
    form_class = adaptor.get_form_class()
    field_name = adaptor.field_name
    new_data['in_menus'] = ''
    form = form_class(data=new_data, instance=adaptor.obj)
    try:
        value_edit = adaptor.get_value_editor(value)
        value_edit_with_filter = apply_filters(value_edit, adaptor.filters_to_edit)
        new_data[field_name] = value_edit_with_filter
        if form.is_valid():
            adaptor.save(value_edit_with_filter)
            return _get_http_response({'errors': False,
                                        'value': adaptor.render_value_edit()})
        messages = [] # The error is for another field that you are editing
        for field_name_error, errors_field in form.errors.items():
            for error in errors_field:
                messages.append("%s: %s" % (field_name_error, unicode(error)))
        message_i18n = ','.join(messages)
        return _get_http_response({'errors': message_i18n})
    except ValidationError as error: # The error is for a field that you are editing
        message_i18n = ', '.join([u"%s" % m for m in error.messages])
        return _get_http_response({'errors': message_i18n})
示例#18
0
def process(request, methods=['POST']):
    context = {}
    try:
        request.session['counter'] += 1
    except Exception as e:
        request.session['counter'] = 1

    try:
        yourName = request.POST['yourName']
        dojoLocation = request.POST['dojoLocation']
        favLanguage = request.POST['favLanguage']
        comment = request.POST['comment']
    except Exception as e:
        messages.append("Exception thrown:", str(e))
        return redirect('/')
    if len(yourName) == 0:
        messages.debug(request, 'Your Name can not be blank.')
    if len(dojoLocation) == 0:
        messages.debug(request, 'Dojo Location can not be blank.')
    if len(favLanguage) == 0:
        messages.debug(request, 'Fav Language can not be blank.')
    if len(comment) == 0:
        messages.debug(request, 'Comment can not be blank.')
    if len(comment) > 640:
        messages.debug(request,
                       'Comment can not be more thanb 640 characters.')

    request.session['yourName'] = yourName
    request.session['dojoLocation'] = dojoLocation
    request.session['favLanguage'] = favLanguage
    request.session['comment'] = comment
    return redirect('/results')
示例#19
0
 def check_basket_is_valid(self, request):
     """
     Check that the basket is permitted to be submitted as an order. That
     is, all the basket lines are available to buy - nothing has gone out of
     stock since it was added to the basket.
     """
     messages = []
     strategy = request.strategy
     for line in request.basket.all_lines():
         result = strategy.fetch_for_line(line)
         is_permitted, reason = result.availability.is_purchase_permitted(
             line.quantity)
         if not is_permitted:
             # Create a more meaningful message to show on the basket page
             msg = _(
                 "'%(title)s' is no longer available to buy (%(reason)s). "
                 "Please adjust your basket to continue"
             ) % {
                 'title': line.product.get_title(),
                 'reason': reason}
             messages.append(msg)
     if messages:
         raise exceptions.FailedPreCondition(
             url=reverse('basket:summary'),
             messages=messages
         )
示例#20
0
def invite_participants(modeladmin, request, queryset):
    messages = []
    for user in queryset:
        # user = user.user
        # print(user.user.pk)
        user.is_active = False
        current_site = get_current_site(request)
        mail_subject = 'Activate your online examinations account.'
        message = render_to_string('participants/acc_active_email.html', {
            'user': user.user,
            'domain': current_site.domain,
            'uid': urlsafe_base64_encode(force_bytes(user.user.pk)),
            'token':account_activation_token.make_token(user),
        })
        to_email = user.email
        email = EmailMessage(
            mail_subject, message, to=[to_email], reply_to=['*****@*****.**'],
    headers={'Message-ID': 'foo'},
        )
        email.content_subtype = "html"
        messages.append(email)
    connection = mail.get_connection(fail_silently=True)
    print(messages)
    connection.open()
    connection.send_messages(messages)
示例#21
0
 def get_upsell_messages(self, basket):
     offers = Applicator().get_offers(self.request, basket)
     messages = []
     for offer in offers:
         if offer.is_condition_partially_satisfied(basket):
             data = {"message": offer.get_upsell_message(basket), "offer": offer}
             messages.append(data)
     return messages
示例#22
0
def reviewers_message(reviewers):
    messages = []
    for role, reviewers in group_reviewers(reviewers).items():
        message = ', '.join(str(reviewer) for reviewer in reviewers)
        if role:
            message += ' as ' + str(role)
        message += '.'
        messages.append(message)
    return messages
示例#23
0
def chatRoom(request, id1, id2):
    messages = list()
    num = User.objects.latest('id').id
    lastmessages = list()
    friend = User.objects.get(id=id2).profile.nickname

    notices = Notice.objects.filter(user_to=request.user, feed=None)
    for notice in notices:
        notice.checked = True
        notice.save()

    for i in range(1, num + 1):
        if Message.objects.filter(
                user_to_id=i,
                user_from_id=id1).count() > 0 and Message.objects.filter(
                    user_to_id=id1, user_from_id=i).count() > 0:
            if Message.objects.filter(user_to_id=i, user_from_id=id1).order_by(
                    '-created_at')[0].created_at < Message.objects.filter(
                        user_to_id=id1,
                        user_from_id=i).order_by('-created_at')[0].created_at:
                lastmessages.append(
                    Message.objects.filter(
                        user_to_id=id1,
                        user_from_id=i).order_by('-created_at')[0])
            else:
                lastmessages.append(
                    Message.objects.filter(
                        user_to_id=i,
                        user_from_id=id1).order_by('-created_at')[0])
        elif Message.objects.filter(
                user_to_id=i,
                user_from_id=id1).count() > 0 and Message.objects.filter(
                    user_to_id=id1, user_from_id=i).count() == 0:
            lastmessages.append(
                Message.objects.filter(
                    user_to_id=i, user_from_id=id1).order_by('-created_at')[0])
        elif Message.objects.filter(
                user_to_id=i,
                user_from_id=id1).count() == 0 and Message.objects.filter(
                    user_to_id=id1, user_from_id=i).count() > 0:
            lastmessages.append(
                Message.objects.filter(
                    user_to_id=id1, user_from_id=i).order_by('-created_at')[0])

    for message in Message.objects.filter(user_to_id=id2, user_from_id=id1):
        messages.append(message)
    for message in Message.objects.filter(user_to_id=id1, user_from_id=id2):
        messages.append(message)

    return render(
        request, 'accounts/chatroom.html', {
            'chat_from': id1,
            'chat_to': id2,
            'lastmessages': lastmessages,
            'messages': messages,
            'friend': friend
        })
示例#24
0
def component(request, uuid):
    messages = []
    fields_saved = False

    # get set/field data and initialize dict of form field values
    metadata_set, created = models.TransferMetadataSet.objects.get_or_create(
        pk=uuid, defaults={'createdbyuserid': request.user.id})
    if created:
        metadata_set.save()
    fields = models.TransferMetadataField.objects.all().order_by('sortorder')
    values = {}  # field values
    options = []  # field options (for value selection)

    for field in fields:
        if field.optiontaxonomy is not None:
            # check for newly added terms
            new_term = request.POST.get('add_to_' + field.pk, '')
            if new_term != '':
                term = models.TaxonomyTerm()
                term.taxonomy = field.optiontaxonomy
                term.term = new_term
                term.save()
                messages.append('Term added.')

            # load taxonomy terms into option values
            optionvalues = ['']
            for term in field.optiontaxonomy.taxonomyterm_set.iterator():
                optionvalues.append(term.term)
            options.append({'field': field, 'options': optionvalues})

            # determine whether field should allow new terms to be specified
            field.allownewvalue = True
            # support allownewvalue
            # by loading taxonomy and checked if it's open
        try:
            field_value = models.TransferMetadataFieldValue.objects.get(
                field=field, set=metadata_set)
            values[(field.fieldname)] = field_value.fieldvalue
        except models.TransferMetadataFieldValue.DoesNotExist:
            if request.method == 'POST':
                field_value = models.TransferMetadataFieldValue()
                field_value.field = field
                field_value.set = metadata_set
            else:
                values[(field.fieldname)] = ''
        if request.method == 'POST':
            field_value.fieldvalue = request.POST.get(field.fieldname, '')
            field_value.save()
            fields_saved = True
            values[(
                field.fieldname
            )] = field_value.fieldvalue  # override initially loaded value, if any

    if fields_saved:
        messages.append('Metadata saved.')

    return render(request, 'transfer/component.html', locals())
示例#25
0
def get_form_message(competition, distance_id, year, insurance_id=None):
    totals = get_total(competition, distance_id, year, insurance_id)
    if totals:
        messages = [_("<div class='entry'>Entry fee: <span>%(entry_fee)s€</span></div>") % totals, ]
        if insurance_id:
            messages.append(_("<div class='insurance'>Insurance fee: <span>%(insurance_fee)s€</span></div>") % totals)
        messages.append(_("<div class='total'>Total: <span>%(total)s€</span></div>") % totals)
    else:
        messages = [_("This distance isn't available for birth year %(year)s.") % {'year': year}, ]
    return messages
示例#26
0
文件: utils.py 项目: Ameriks/velo.lv
def get_form_message(competition, distance_id, year, insurance_id=None):
    totals = get_total(competition, distance_id, year, insurance_id)
    if totals:
        messages = [_("<div class='fs12 fw700 c-white--70 uppercase text-align--right bottom-margin--10'>Entry fee - <span>%(entry_fee)s€</span></div>") % totals, ]
        if insurance_id:
            messages.append(_("<div class='fs12 fw700 c-white--70 uppercase text-align--right bottom-margin--10'>Insurance fee - <span>%(insurance_fee)s€</span></div>") % totals)
        messages.append(_("<div class='fs14 fw700 c-white uppercase text-align--right'>Total - <span class='c-yellow'>%(total)s€</span></div>") % totals)
    else:
        messages = [_("<div class='fs14 fw700 c-white uppercase text-align--right'>This distance isn't available for birth year %(year)s.</div>") % {'year': year}, ]
    return messages
示例#27
0
def pastChat(request, uuid):
    if request.method == 'POST':
        vote_form = whichVote(request.POST, request.FILES)
        pastDebate = PastDebates.objects.get(id=uuid)
        numUser = vote_form.data['vote']
        numUser = numUser[:1]
        if numUser == '1':
            pastDebate.user1votes = pastDebate.user1votes + 1
            pastDebate.save()
        else:
            pastDebate.user2votes = pastDebate.user2votes + 1
            pastDebate.save()
        return HttpResponseRedirect("/discourz/debate")
    else:
        pastDebate = []
        otherUsername = ''
        topic = ''
        user1 = ''
        user2 = ''
        user1votes = 0
        user2votes = 0
        category = ''
        try:
            pastDebate = PastDebates.objects.get(id=uuid)
            topic = pastDebate.topic
            user1 = pastDebate.user1
            user2 = pastDebate.user2
            user1votes = pastDebate.user1votes
            user2votes = pastDebate.user2votes
            category = pastDebate.tags 
        except PastDebates.DoesNotExist:
            raise Http404('Topic does not exist')
        
        chatList = Chat.objects.filter(debates=pastDebate)

        usernames = []
        messages = []

        for chat in chatList:
            usernames.append(chat.username)
            messages.append(chat.message)

        chats = zip(usernames, messages)

        context = {
            'chats': chats,
            'topic': topic,
            'user1': user1,
            'user2': user2,
            'user1votes': user1votes,
            'user2votes': user2votes,
            'tagList': pastDebate.get_tag_list(),
            'uuid': uuid
        }
        return render(request, 'pastChatTemplate.html', context=context)
示例#28
0
 def get_upsell_messages(self, basket):
     offers = Applicator().get_offers(self.request, basket)
     messages = []
     for offer in offers:
         if offer.is_condition_partially_satisfied(basket):
             data = {
                 'message': offer.get_upsell_message(basket),
                 'offer': offer
             }
             messages.append(data)
     return messages
示例#29
0
def Checkout(request):
    trolley = request.session['cart']
    if request.method == 'POST':
        form = CheckoutForm(request.POST)
        details = {}
        if form.is_valid():
            details['Street_Address'] = form.cleaned_data['Street_Address']
            details['Suburb'] = form.cleaned_data['Suburb']
            details['City'] = form.cleaned_data['City']
            details['ZipCode'] = form.cleaned_data['ZipCode']
            cart_account = get_object_or_404(Account, user=request.user)
            shoppingcart = ShoppingCartOrder.objects.create(Owner=cart_account)
            messages = []
            for key, value in trolley.items():
                p = Product.objects.get(id=int(value['item_id']))
                orderitem = OrderItem.objects.create(
                    product=p,
                    quantity=value['quantity'],
                    attribute=ProductImage.objects.get(id=int(key)).name,
                    size=value['size'])
                shoppingcart.CartOrder.add(orderitem.id)
            shoppingcart.save()
            messages.append(shoppingcart.ReferenceNumber())
            logging.basicConfig(filename='Checkout.log',
                                level=logging.INFO,
                                format='%(message)s')
            logging.info(f'{messages}')
            cart_id = shoppingcart.id
            progress_bar = ProgressBar.objects.create(account=cart_account,
                                                      cart_id=cart_id)
            progress_bar.save()
            for item in shoppingcart.CartOrder.all():
                obj = item.product
                shop = obj.shop
                inventory = get_object_or_404(Inventory, shop=shop)
                item_id = item.id
                inventory.Messages(cart_id, item_id)
            request.session['shipping'] = details
            request.session['cart'] = {}
            request.session.modified = True
            #add a flash message here to tell the user their order is being processed and they will
            #find their reference number below.
            return redirect('account')
    else:
        form = CheckoutForm()
        cost = 0
        number = 0
        for vars in trolley.values():
            cost = cost + int(vars['quantity']) * float(vars['Price'])
            request.session['cost'] = cost
            request.session.modified = True
            number += 1
    context = {'form': form, 'cost': cost, 'number': number}
    return render(request, 'ecommerce/checkout.html', context)
示例#30
0
def check_headers(user_specs):
    headers = set(user_specs.fieldnames)

    illegal_headers = headers - allowed_headers
    missing_headers = required_headers - headers

    messages = []
    for header_set, label in (missing_headers, 'required'), (illegal_headers, 'illegal'):
        if header_set:
            messages.append('The following are %s column headers: %s.' % (label, ', '.join(header_set)))
    if messages:
        raise Exception('\n'.join(messages))
示例#31
0
    def add(self, content, rating, user, book):
        messages = []
        if len(content) == 0:
            messages.append("Reviews can not be blank!")
            return (False, messages)

        elif len(content) > 0:
            review = Review.reviewsManager.create(content=content,
                                                  rating=rating,
                                                  user_id=user,
                                                  book_id=book)
        return (True, review)
示例#32
0
def messages(request):
    # Remove duplicate messages
    messages = []
    unique_messages = []
    for m in get_messages(request):
        if m.message not in messages:
            messages.append(m.message)
            unique_messages.append(m)

    return {
        'messages': unique_messages,
        'DEFAULT_MESSAGE_LEVELS': DEFAULT_LEVELS,
    }
示例#33
0
    def dw_repeat_task(self):
        monthly_users = SpotifyUser.objects.filter(dw_monthly=True)
        yearly_users = SpotifyUser.objects.filter(dw_yearly=True)
        messages = []

        if monthly_users:
            for spotify_user in monthly_users:
                messages.append(self.dw_monthly_task(spotify_user.user_id))
        if yearly_users:
            for spotify_user in yearly_users:
                messages.append(self.dw_yearly_task(spotify_user.user_id))

        return messages
示例#34
0
def logout_view(request):
    try:
        name = request.user.full_name
        logout(request)
        messages = []
        messages.append(
            name +
            ' has successfully logged out. Than you for using the MTA Assistant App!'
        )
        return render(request, 'Train_Website/landing.html',
                      {'messages': messages})
    except:
        return render(request, 'Train_Website/landing.html')
示例#35
0
    def add(self, title, author):
        messages = []
        if len(title) == 0:
            messages.append("You must enter a book title!")
            return (False, messages)

        if len(author) == 0:
            messages.append("You must enter or select an author!")
            return (False, messages)

        else:
            book = Book.booksManager.create(title=title, author=author)
            return (True, book)
示例#36
0
def registerA(request):
    messages = []
    if request.method == 'POST':
        form = UserRegisterForm(request.POST)
        profile_form = ProfileRegisterForm(request.POST)
        if form.is_valid() and profile_form.is_valid():
            user = form.save()
            profile = profile_form.save(commit=False)
            profile.user = user
            academic_position = profile_form.cleaned_data.get(
                'academic_position')
            article_reviewed = profile_form.cleaned_data.get(
                'article_reviewed')
            keywords = str(random.sample(words, json["keywords_num"]))
            keywords = keywords.replace("'", "").replace("]",
                                                         "").replace("[", "")
            range_a, range_b = json['range']
            prices = random.choices(range(range_a, range_b), k=550)
            for i, val in enumerate(prices):
                if val > json["max"]:
                    prices[i] = json["max"]
                elif val < json["min"]:
                    prices[i] = json["min"]
            prices = str(prices).replace("]", "").replace("[", "")
            profile = Profile(user=user,
                              group='A',
                              keywords=keywords,
                              prices=prices,
                              academic_position=academic_position,
                              article_reviewed=article_reviewed)
            profile.save()

            username = form.cleaned_data.get('username')
            raw_password = form.cleaned_data.get('password1')
            user = authenticate(username=username, password=raw_password)
            login(request, user)
            return redirect('blog-instructionsbefore')
        else:
            for error in form.errors.values():
                messages.append(error[0])

    else:
        form = UserRegisterForm()
        profile_form = ProfileRegisterForm()

    context = {
        'form': form,
        'profile_form': profile_form,
        'messages': messages
    }
    return render(request, 'users/registerA.html', context)
示例#37
0
    def login(self, email, password):
        messages = []
        invalid = False
        if len(email) < 1:
            invalid = True
            messages.append("You must enter an email address!")

        if len(password) < 1:
            invalid = True
            messages.append("You must enter a password!")

        if invalid:
            return (False, messages)

        else:
            user = Users.usersManager.filter(email = email)

            if len(user) == 0:
                messages.append('The email submitted does not match our records.')
                return (False, messages)

            elif bcrypt.checkpw(password.encode(), user[0].password.encode()):
                return (True, user[0])

            else:
                messages.append('Incorrect password!')
                return (False, messages)
示例#38
0
def show_messages(request):
    if request.is_ajax():
        username = request.GET.get('user')
        user = get_object_or_404(User, username=username)
        conversation = Message.objects.filter(
            (Q(receiver=request.user) & Q(sender=user)) | (Q(receiver=user) & Q(sender=request.user))).order_by(
            '-created_at')[:50]
        messages = list()
        for message in conversation:
            if message.sender == request.user:
                messages.append({"user": "******", "message": message.msg_content, "created_at": message.created_at})
            else:
                messages.append({"user": "******", "message": message.msg_content, "created_at": message.created_at})
        return HttpResponse(json.dumps(messages, cls=DjangoJSONEncoder), content_type='application/json')
示例#39
0
    def insert(request, data):
        messages = []

        if len(data['title']) == 0:
            messages.append('You suck, y u no give title')

        if len(data['description']) == 0:
            messages.append('Add a message!')

        if len(messages) > 0:
            return messages
        else:
            new_note = Note.objects.create(title=data['title'], description=data['description'])
            return new_note.id
示例#40
0
文件: views.py 项目: min-ye/northhr
def person_edit(request, id):
    if request.user.is_authenticated:
        messages = []
        try:
            person = Person.objects.get(id=id)
        except Person.DoesNotExist:
            url = "/person/unknown/"
            return HttpResponseRedirect(url)
        if request.method == 'POST':
            form = PersonForm(request.POST)
            if form.is_valid():
                data = form.cleaned_data
                try:
                    person = Person(id=id,
                                    name=data['name'],
                                    code=data['code'],
                                    unit=data['unit'],
                                    serial=data['serial'],
                                    id_number=data['id_number'])
                    person.save()
                    personLog = PersonLog(user=request.user,
                                          person=person,
                                          name=person.name,
                                          code=person.code,
                                          unit=person.unit,
                                          serial=person.serial,
                                          id_number=person.id_number,
                                          operation='update')
                    personLog.save()
                    messages.append('保存成功')
                    url = "/person/detail/%s" % (id)
                    return HttpResponseRedirect(url)
                except:
                    messages.append('保存失败')
            else:
                messages.append('保存失败,请检查输入数据')
            return render_to_response('person_edit.html', {
                'user': request.user,
                'form': form,
                'messages': messages
            })
        else:
            messages.append('找到记录')
            form = PersonForm(
                initial={
                    'name': person.name,
                    'code': person.code,
                    'unit': person.unit,
                    'serial': person.serial,
                    'id_number': person.id_number
                })
            return render_to_response('person_edit.html', {
                'user': request.user,
                'form': form,
                'messages': messages
            })
    else:
        url = "/login/"
        return HttpResponseRedirect(url)
 def _get(self, *args, **kwargs):
     """
     Retrieves a list of stored messages. Returns a tuple of the messages
     and a flag indicating whether or not all the messages originally
     intended to be stored in this storage were, in fact, stored and
     retrieved; e.g., ``(messages, all_retrieved)``.
     """
     if not get_user(self.request).is_authenticated():
         return super(PersistentMessageStorage, self)._get(*args, **kwargs)
     messages = []
     for message in self._message_queryset():
         if not message.is_persistent():
             self.non_persistent_messages.append(message)
         messages.append(message)
     return (messages, True)
    def _get(self, *args, **kwargs):
        """
        Retrieves a list of stored messages. Returns a tuple of the messages
        and a flag indicating whether or not all the messages originally
        intended to be stored in this storage were, in fact, stored and
        retrieved: `(messages, all_retrieved)`

        This is called by BaseStorage._loaded_messages
        """
        if self.is_anonymous:
            return super(PersistentMessageStorage, self)._get(*args, **kwargs)

        messages = []
        for message in self._message_queryset():
            if not message.is_persistent():
                self.non_persistent_messages.append(message)
            messages.append(message)
        return (messages, True)
示例#43
0
 def process_remove_time(self):
     """
     Receives the data input in the Time Process view,
     retrieves the associated Order Process instance, and
     calls helper function to remove the start time of the
     retrieved Order Process instance.
     """
     # call helper function to process input
     order_process, messages = (
         OrderController.process_input_time_view(self))
     # call helper function to remove time
     msg = OrderController.remove_start_time(order_process)
     messages.append(msg)
     # load context
     context = {'order_process': order_process}
     # add messages
     context['messages'] = messages
     return SimpleTemplateResponse(
         template='control_produccion/time_processes_result.html',
         context=context)
示例#44
0
def update_cart(request):
    if not request.method == 'POST':
        raise Http404
    mess = []
    try:
        quantity = int(request.POST.get('quantity', 1))
        product_id = int(request.POST.get('product_id', None))
    except ValueError:
        mess.append(_('Data entry errors'))
    else:
        try:
            product = Product.objects.get(pk=product_id, is_active=True)
        except Product.DoesNotExist:
            messages.append(_('Product not found'))
        else:
            if quantity > 0:
                cart = ExtCart(request)
                cart.update(product, quantity)
                messages.info(request, _("Number of %(name)s updated by %(count)s") % {'name': product.name, 'count': quantity})
    return redirect_to_back(request)
示例#45
0
文件: views.py 项目: iwwwwwwi/ralph
    def get_messages(self):
        days=datetime.timedelta(days=7)
        last_week_puppet_errors = db.CIChangePuppet.objects.filter(
                ci=self.ci,
                time__range=(datetime.datetime.now(), datetime.datetime.now() - days)
        ).count()

        incidents = db.CIIncident.objects.filter(
                ci=self.ci,
        ).count()

        problems = db.CIProblem.objects.filter(
                ci=self.ci,
        ).count()
        messages=[]
        if last_week_puppet_errors:
            messages.append(dict(
                message="Puppet reported %d errors since last week." % ( last_week_puppet_errors ),
                title='Warning',
                type='warning',
            ))
        if incidents:
            messages.append(dict(
                message="This CI has %d incidents." % ( incidents ),
                title='Be carefull.',
                type='error',
            ))
        if problems:
            messages.append(dict(
                message="This CI has %d problems." % ( problems ),
                title='Be carefull.',
                type='error',
            ))

        return messages
示例#46
0
文件: views.py 项目: annttu/RenkiWeb
def domain_edit(request, domain_id, **kwargs):
    messages = []
    try:
        srv = get_srv(request)
        domain = srv.domains.get(domain_id=domain_id)
    except Exception as e:
        logging.exception(e)
        raise Http404
    if request.method == 'POST':
        form = DomainForm(request.POST)
        if form.is_valid():
            domain.dns = form.cleaned_data['dns']
            domain.shared = form.cleaned_data['shared']
            domain.refresh_time = form.cleaned_data['refresh_time']
            domain.retry_time = form.cleaned_data['retry_time']
            domain.expire_time = form.cleaned_data['expire_time']
            domain.minimum_cache_time = form.cleaned_data['minimum_cache_time']
            domain.ttl = form.cleaned_data['ttl']
            domain.domain_type = form.cleaned_data['domain_type']
            domain.allow_transfer = []
            for a in form.cleaned_data['allow_transfer'].strip(',').split(','):
                domain.allow_transfer.append(a)
            domain.masters = []
            for m in form.cleaned_data['masters'].strip(',').split(','):
                domain.masters.append(m)
            srv.session.add(domain)
            try:
                srv.session.commit()
                messages.append(_('Succeed to save data'))
            except Exception as e:
                srv.log.exception(e)
                messages.append(_('Failed to save data'))
        else:
            messages.append(_('Form contain errors'))
    else:
        masters = ''
        try:
            for m in domain.masters:
                masters += '%s,' % m
            masters = masters.strip(',')
        except:
            masters = None
        try:
            allow_transfer = ''
            for m in domain.allow_transfer:
                allow_transfer += '%s,' % m
            allow_transfer = allow_transfer.strip(',')
        except:
            pass
        form = DomainForm(initial = {'shared':domain.shared, 'dns': domain.dns, 'refresh_time' : domain.refresh_time,
            'retry_time': domain.retry_time, 'expire_time': domain.expire_time,
            'minimum_cache_time': domain.minimum_cache_time, 'ttl':domain.ttl,
            'domain_type':domain.domain_type, 'masters': masters, 'allow_transfer': allow_transfer})
        form.fields['shared'].initial = domain.shared
        form.fields['dns'].initial = domain.dns
        print("FORM: %s" % vars(form.fields['dns']))
        form.fields['minimum_cache_time'].initial = domain.minimum_cache_time
    return render_to_response('renki/domains_edit.html',{'domain':domain, 'form':form, 'messages': messages},
        context_instance=RequestContext(request))
示例#47
0
def create_fatlink_view(request):
    logger.debug("create_fatlink_view called by user %s" % request.user)
    if request.method == 'POST':
        logger.debug("Post request to create_fatlink_view by user %s" % request.user)
        form = FatlinkForm(request.POST)
        if 'submit_fat' in request.POST:
            logger.debug("Submitting fleetactivitytracking by user %s" % request.user)
            if form.is_valid():
                fatlink = Fatlink()
                fatlink.name = slugify(form.cleaned_data["fatname"])
                fatlink.fleet = form.cleaned_data["fleet"]
                fatlink.duration = form.cleaned_data["duration"]
                fatlink.fatdatetime = timezone.now()
                fatlink.creator = request.user
                fatlink.hash = ''.join(random.choice(string.ascii_letters + string.digits) for i in range(10))
                try:
                    fatlink.full_clean()
                    fatlink.save()
                except ValidationError as e:
                    form = FatlinkForm()
                    messages = []
                    for errorname, message in e.message_dict.items():
                        messages.append(message[0].decode())
                    context = {'form': form, 'errormessages': messages}
                    return render(request, 'fleetactivitytracking/fatlinkformatter.html', context=context)
            else:
                form = FatlinkForm()
                context = {'form': form, 'badrequest': True}
                return render(request, 'registered/fatlinkformatter.html', context=context)
            return redirect('auth_fatlink_view')

    else:
        form = FatlinkForm()
        logger.debug("Returning empty form to user %s" % request.user)

    context = {'form': form}

    return render(request, 'fleetactivitytracking/fatlinkformatter.html', context=context)
示例#48
0
def write_review(request):
    context = {}
    forms = get_forms(request)
    if(request.POST.has_key('submit_review')):
        form = form_clean(request, forms)
        if form._get_errors():
            messages = []
            errors = form._get_errors()
            for key, value in errors.items():
                messages.append("%s - %s\t" % (form.fields[key].label, value[0]))
            context['review_error'] = messages
            context['review_form'] = form
            context['section_form'] = None if len(forms) <= 1 else forms[1]
        else:
            forms = get_forms(request)
            if len(forms) > 1:
                context['section_form'] = forms[1]
            context['review_form'] = forms[0]
        return context
    if len(forms) > 1:
        context['section_form'] = forms[1]
    context['review_form'] = forms[0]
    return context
示例#49
0
def call_api_hybrid_view_for_api(func, request, *args, **kwargs):
    response = func(request, *args, **kwargs)
    if isinstance(response, APIHybridResponse):
        result = OrderedDict(response.get_api_response(request))

        messages = []
        for message in get_messages(request):
            messages.append({
                'level': DEFAULT_MESSAGE_TAGS[message.level],
                'message': message.message
            })
        if messages:
            result['messages'] = messages
            result.move_to_end('messages', last=False)

        api_response = APIResponse(result, status=response.status_code)
        if request.method == 'GET':
            response.add_headers(api_response)
        return api_response
    elif isinstance(response, HttpResponse) and response.status_code in (304, 412):
        # 304 Not Modified, 412 Precondition Failed
        return response
    raise NoAPIHybridResponse
示例#50
0
    def _get_alert_messages(self):
        """
        Generates 'bootstrap' Alert, Info, etc... messages if any part of 
        the Hotel's required configuration is not set, and gives the User 
        a link to navigate to, to set the needed configuration.
        """
        messages = []

        subaccount = self.hotel.get_subaccount()
        if subaccount and not subaccount.active:
            messages.append(no_funds_alert()) # 'subaccount' gets deactivated when there's
                                              # isufficient funds
        if not self.hotel.customer:
            messages.append(no_customer_alert())

        if not self.hotel.twilio_ph_sid:
            messages.append(no_twilio_phone_number_alert())

        return messages
示例#51
0
文件: views.py 项目: DevangS/CoralNet
def request_invite(request):

     #messages = []

     if request.method == 'POST':
        form = RequestInviteForm(request.POST)

        if form.is_valid():
            email = form.cleaned_data.pop('email')
            username = form.cleaned_data.pop('username')
            firstname = form.cleaned_data.pop('first_name')
            lastname = form.cleaned_data.pop('last_name')
            reason = form.cleaned_data.pop('reason_for_requesting_an_account')
            affiliation = form.cleaned_data.pop('affiliation')
            project_description = form.cleaned_data.pop('project_description')
            how_did_you_hear_about_us = form.cleaned_data.pop('how_did_you_hear_about_us')
            policy_agree = form.cleaned_data.pop('agree_to_data_policy')
            response_field =  request.POST.get("recaptcha_response_field")
            challenge_field = request.POST.get("recaptcha_challenge_field") 
            
            try:
                client_ip = request.META['HTTP_X_FORWARDED_FOR']
            except:
                client_ip = request.META['REMOTE_ADDR']
            print client_ip

            message = 'Email: ' + email + '\n' + \
                      'Username: '******'\n' + \
                      'First name: ' + firstname + '\n' + \
                      'Last name: ' + lastname + '\n' + \
                      'Reason: ' + reason + '\n' + \
                      'affiliation: ' + affiliation + '\n' + \
                      'project_description: ' + project_description +'\n'+\
                      'how_did_you_hear_about_us: ' + how_did_you_hear_about_us + '\n'+\
                      'agree_to_data_policy: ' + str(policy_agree) + '\n'

            params = urllib.urlencode ({
              'privatekey': encode_if_necessary(CAPTCHA_PRIVATE_KEY),
              'remoteip' :  encode_if_necessary(client_ip),
              'challenge':  encode_if_necessary(challenge_field),
              'response' :  encode_if_necessary(response_field),
            })

            captcha_verify = urllib2.Request (
                url = "http://www.google.com/recaptcha/api/verify",
                data = params,
                headers = {
                    "Content-type": "application/x-www-form-urlencoded",
                    "User-agent": "CoralNet"
                }
            )
    
            httpresp = urllib2.urlopen (captcha_verify)
            return_values = httpresp.read ().splitlines ();
            httpresp.close();
            return_code = return_values [0]

            try:
               if (return_code == "true"):
                   mail_admins('User Account Requested', message)
                   messages.success(request, 'Your request was sent!')
                   # messages.append('Your request was sent!')
                   return HttpResponseRedirect(reverse('request_account_confirm'))
               else:
                   messages.error(request, 'Invalid Captcha')
            except BadHeaderError:
                messages.append('Invalid header found.')

        else:
            messages.error(request, 'Make sure all fields are entered and valid.')
     else:
        form = RequestInviteForm()

     
     return render_to_response('requests/request_invite.html', {
        'form': form,
        'public_key': CAPTCHA_PUBLIC_KEY,
        },
        context_instance=RequestContext(request)
     )
示例#52
0
         _('<a href="{async_url}">{name}</a> is running on the background'),
         _('<a href="{async_url}">{async} backends</a> are running on the background'),
         async)
 if errors:
     if total == 1:
         msg = _('<a href="{url}">{name}</a> has fail to execute')
     else:
         msg = ungettext(
             _('<a href="{url}">{errors} out of {total} backends</a> has fail to execute'),
             _('<a href="{url}">{errors} out of {total} backends</a> have fail to execute'),
             errors)
     if async_msg:
         msg += ', ' + str(async_msg)
     msg = msg.format(errors=errors, async=async, async_url=async_url, total=total, url=url,
         name=log.backend)
     messages.append(('error', msg + '.'))
 elif successes:
     if async_msg:
         if total == 1:
             msg = _('<a href="{url}">{name}</a> has been executed')
         else:
             msg = ungettext(
                 _('<a href="{url}">{successes} out of {total} backends</a> has been executed'),
                 _('<a href="{url}">{successes} out of {total} backends</a> have been executed'),
                 successes)
         msg += ', ' + str(async_msg)
     else:
         msg = ungettext(
             _('<a href="{url}">{name}</a> has been executed'),
             _('<a href="{url}">{total} backends</a> have been executed'),
             total)
示例#53
0
def home(request):
    
    form_class = ContactForm
    
    category_list = Category.objects.order_by('-id').reverse()
    work_list = Job.objects.order_by('-id').reverse()
    
    context = {'category_list': category_list, 'work_list': work_list}
    
    errors = []
    messages = []
        
    # new logic!
    if request.method == 'POST':
        form = form_class(data=request.POST)
        
        
        if form.is_valid():
            contact_name = request.POST.get('contact_name', '')
            contact_email = request.POST.get('contact_email', '')
            form_content = request.POST.get('content', '')
            
            # Add message to database
            contact = Contact(name=contact_name, message=form_content, sender=contact_email)
            contact.save()
            
    
#             # Email the message
#             template = get_template('commons/contact_template.txt')
#             mail_context = Context({
#                 'contact_name': contact_name,
#                 'contact_email': contact_email,
#                 'content': form_content,
#             })
#             
#             content = template.render(mail_context)
#             send_mail(
#                 'Subject here',
#                 content,
#                 '*****@*****.**',
#                 ['*****@*****.**'],
#                 fail_silently=False,
#             )

            
            sg = sendgrid.SendGridAPIClient(apikey=os.environ.get("SENDGRID_API_KEY"))
            from_email = Email("*****@*****.**")
            to_email = Email("*****@*****.**")
            subject = "I've seen your Website!"
            content = Content(form_content + "\n\n  Contact name: " + contact_name + " Email:" + contact_email)
            
            
            mail = Mail(from_email, subject, to_email, content)
            response = sg.client.mail.send.post(request_body=mail.get())
            
            print(response.status_code)
            print(response.body)
            print(response.headers)
             
    
            
                        
            messages.append('Form submission successful!')
        
        else:
            errors.append('Form not properly submitted!')
    
    context = {'category_list': category_list, 'work_list': work_list, 'messages':messages, 'errors':errors}
    return render(request, 'commons/home.html', context)
示例#54
0
    def tick(cls):
        """
        Tick the game state forward one day.
        """
        from messaging.models import Message

        # Resolve auctions.

        auctioned_items = Item.objects.filter(id__in=ItemBid.objects.filter(day=GameDay.get_day()).values('item'))

        for item in auctioned_items:
            bids = ItemBid.objects.filter(day=GameDay.get_day(), item=item, character__alive=True).order_by('-amount')
            winning = bids[0]
            winner = winning.character
            winning.won = True
            winning.resolved = True
            winning.save()
            NodeEvent.objects.create(
                where=winning.node,
                who=winner,
                day=GameDay.get_day(),
                type=EVENT_AUCTION,
                who_disguised=bids[0].disguised
            )

            Message.mail_to(winner, "Congratulations! You won %s!" % item.name,
                            "You've won %s at a cost of %s.<br />Here's what you've won:<br/><br/>%s"
                            % (item.name, winning.amount, item.post_buy), sender="Bakaara Market")
            losers = bids[1:]
            for loser in losers:
                loser.won = False
                loser.resolved = True
                loser.save()
                Message.mail_to(loser.character, "Sorry, you didn't win %s." % item.name,
                                "You didn't win %s.  Add %s back to your budget. Better luck next time!"
                                % (item.name, loser.amount), sender="Bakaara Market")
            item.valid = False
            item.save()

        for char in Character.objects.all():
            char.points = char.market_stat()
            char.save()

        for w in CharNodeWatch.objects.filter():
            messages = []
            events = {0:set(), 1:set(), 2:set()}
            for e in NodeEvent.objects.filter(where=w.node, day=GameDay.get_day()):
                events[0].update([e])
            nodes = set()
            for n in w.node.get_all_neighbors():
                for e in NodeEvent.objects.filter(where=n, day=GameDay.get_day()):
                    if not e in events[0]:
                        events[1].update([e])
                nodes.update(n.get_all_neighbors())
            for n in nodes:
                for e in NodeEvent.objects.filter(where=n, day=GameDay.get_day()):
                    if not e in events[0] or e in events[1]:
                        events[2].update([e])
            for ed in events:
                for e in events[ed]:
                    messages.append(e.display_for(ed, w.char))
            random.shuffle(messages)
            Message.mail_to(w.char, "Agent report from %s" % w.node.name,
                            "I saw the following things: <ul>" + "".join(("<li>%s</li>" % a) for a in messages) + "</ul>",
                            sender="Bakaara Market")

        for item in Item.objects.filter(valid=True):
            if item.rarity_class == RARITY_SCARCE:
                num_purchase_events = NodeEvent.objects.filter(day__gte=(GameDay.get_day() - 1), item=item).count()
                if num_purchase_events > 0:
                    if reduce(lambda a, b: a or b,
                              [random.random() < item.rarity_prob for _foo in range(num_purchase_events)],
                              False):  # Roll num_purchase_events random()s. If any come up True, item vanishes. So sad.
                        item.valid = False
                        item.save()

        gameday = GameDay.objects.get()
        gameday.day += 1
        gameday.save()

        debug("TICK.  Day is now %d." % gameday.day)
示例#55
0
 def get_and_delete_messages(self):
     messages = []
     for m in self.message_set.all():
         messages.append(m.message)
         m.delete()
     return messages
示例#56
0
文件: views.py 项目: twneale/hangman
def messages_ctx(request):
    messages = []
    for message in RequestContext(request)['messages']:
        message = dict(tags=message.tags, message=message.message)
        messages.append(message)
    return messages
示例#57
0
 def handle_form(self, form, files):
     action = form.cleaned_data['action']
     path = form.cleaned_data['path']
     name = form.cleaned_data['name']
     ufile = form.cleaned_data['ufile']
     file_or_dir = form.cleaned_data['file_or_dir']
     self.current_path = form.cleaned_data['current_path']
     messages = []
     if name and file_or_dir == 'dir' and not re.match(r'[\w\d_ -]+', name).group(0) == name:
         messages.append(_('Invalid folder name') + ' : ' + name)
         return messages
     if name and file_or_dir == 'file' and (
         re.search('\.\.', name) or not re.match(r'[\w\d_ -.]+', name).group(0) == name):
         messages.append(_('Invalid file name') + ' : ' + name)
         return messages
     if not re.match(r'[\w\d_ -/]+', path).group(0) == path:
         messages.append(_('Invalid path') + ' : ' + path)
         return messages
     if action == 'upload':
         for f in files.getlist('ufile'):
             if re.search('\.\.', f.name) or not re.match('[\w\d_ -/.]+', f.name).group(0) == f.name:
                 messages.append(_('File name is not valid') + ' : ' + f.name)
             elif f.size > self.maxfilesize * 1024:
                 messages.append(_('File size exceeded') + ' ' + str(self.maxfilesize) + " KB : " + f.name)
             elif (settings.FILEMANAGER_CHECK_SPACE and
                       ((self.get_size(self.basepath) + f.size) > self.maxspace * 1024)):
                 messages.append(_('Total Space size exceeded') + ' ' + str(self.maxspace) + " KB : " + f.name)
             elif self.extensions and len(f.name.split('.')) > 1 and f.name.split('.')[-1] not in self.extensions:
                 messages.append(_('File extension not allowed') + ' (.' + f.name.split('.')[-1] + ') : ' + f.name)
             elif self.extensions and len(f.name.split('.')) == 1 and f.name.split('.')[-1] not in self.extensions:
                 messages.append(_('No file extension in uploaded file') + ' : ' + f.name)
             else:
                 filepath = self.basepath + path + self.rename_if_exists(self.basepath + path, f.name)
                 with open(filepath, 'wb') as dest:
                     for chunk in self.read_in_chunks(f):
                         dest.write(chunk)
                 f.close()
         if len(messages) == 0:
             messages.append(_('All files uploaded successfully'))
     elif action == 'add':
         os.chdir(self.basepath)
         no_of_folders = len(list(os.walk('.')))
         if (no_of_folders + 1) <= self.maxfolders:
             try:
                 os.chdir(self.basepath + path)
                 os.mkdir(name)
                 messages.append(_('Folder created successfully') + ' : ' + name)
             except:
                 messages.append(_('Folder couldn\'t be created') + ' : ' + name)
         else:
             messages.append(_('Folder couldn\' be created because maximum number of folders exceeded') + ' : ' +
                 str(self.maxfolders))
     elif action == 'rename' and file_or_dir == 'dir':
         oldname = path.split('/')[-2]
         path = os.sep.join(path.split('/')[:-2])
         try:
             os.chdir(self.basepath + path)
             os.rename(oldname, name)
             messages.append(_('Folder renamed successfully from') + ' ' + oldname + ' ' + _('to') + ' ' + name)
         except:
             messages.append(_('Folder couldn\'t renamed to') + ' ' + name)
     elif action == 'delete' and file_or_dir == 'dir':
         if path == '/':
             messages.append(_('Root folder can\'t be deleted'))
         else:
             name = path.split('/')[-2]
             path = os.sep.join(path.split('/')[:-2])
             try:
                 os.chdir(self.basepath + path)
                 shutil.rmtree(name)
                 messages.append(_('Folder deleted successfully') + ' : ' + name)
             except:
                 messages.append(_('Folder couldn\'t deleted') + ' : ' + name)
     elif action == 'rename' and file_or_dir == 'file':
         oldname = path.split('/')[-1]
         old_ext = oldname.split('.')[1] if len(oldname.split('.')) > 1 else None
         new_ext = name.split('.')[1] if len(name.split('.')) > 1 else None
         if old_ext == new_ext:
             path = os.sep.join(path.split('/')[:-1])
             try:
                 os.chdir(self.basepath + path)
                 os.rename(oldname, name)
                 messages.append(_('File renamed successfully from') + ' ' + oldname + ' ' + _('to') + ' ' + name)
             except:
                 messages.append(_('File couldn\'t be renamed to') + ' ' + name)
         else:
             if old_ext:
                 messages.append(_('File extension should be same') + ' : .' + old_ext)
             else:
                 messages.append(_('New file extension didn\'t match with old file extension'))
     elif action == 'delete' and file_or_dir == 'file':
         if path == '/':
             messages.append(_('Root folder can\'t be deleted'))
         else:
             name = path.split('/')[-1]
             path = os.sep.join(path.split('/')[:-1])
             try:
                 os.chdir(self.basepath + path)
                 os.remove(name)
                 messages.append(_('File deleted successfully') + ' : ' + name)
             except:
                 messages.append(_('File couldn\'t deleted') + ' : ' + name)
     elif action == 'move' or action == 'copy':
         # from path to current_path
         if self.current_path.find(path) == 0:
             messages.append(_('Cannot move/copy to a child folder'))
         else:
             path = os.path.normpath(path)  # strip trailing slash if any
             if os.path.exists(self.basepath + self.current_path + os.path.basename(path)):
                 messages.append(_('ERROR: A file/folder with this name already exists in the destination folder.'))
             else:
                 if action == 'move':
                     method = shutil.move
                 else:
                     if file_or_dir == 'dir':
                         method = shutil.copytree
                     else:
                         method = shutil.copy
                 try:
                     method(self.basepath + path, self.basepath + self.current_path + os.path.basename(path))
                 except:
                     messages.append(_('File/folder couldn\'t be moved/copied.'))
     return messages