Exemple #1
0
def create_message(auteur, contenu, thread, isnewthread=False):
    newmessage = Message(auteur=auteur, contenu=contenu, thread=thread)
    newmessage.save()
    LogActivity.recordActivity(qui=auteur, quoi=newmessage, comment="a publi&eacute; un nouveau message : <a href='%s'>%s</a>" % (newmessage.thread.get_absolute_url(), newmessage.thread.titre))
    subscribe_thread_message(newmessage)
    ThreadMail(message=newmessage, isnewthread=isnewthread).start()
    return newmessage
def post_create_thread(request):
    errors = []
    params = deepValidateAndFetch(request, errors)

    if len(errors) == 0:

        with transaction.atomic():
            thread = Thread(title=params['title'],
                            author=params['author'],
                            section_id=params['section'])

            if params['visibility'] == 'private':
                thread.recipient = params['recipient']

            if params['visibility'] == 'class':
                thread.lesson = params['lesson']

            if params['visibility'] == 'public':
                thread.professor = params['professor']

            thread.save()

            if params['skills_fetched']:
                thread.skills = params['fetched_skills']
                thread.save()

            sendNotification(getWSNotificationForNewThread(thread))

            original_message = Message(
                content=params['content'],
                thread=thread,
                author=params['author'],
                created_date=utc.localize(datetime.now()),
                modified_date=utc.localize(datetime.now()))
            original_message.save()

            sendNotification(getNotificationForNewMessage(original_message))

        return redirect(thread)

    else:
        skills, sections = get_skills(request)
        params['skills'] = skills
        params['sections'] = sections

        if params['skills_fetched']:
            params['selected_skills'] = map(lambda x: x.id,
                                            params['fetched_skills'])
        else:
            params['selected_skills'] = []

        if params['section'] is not None:
            params['selected_section'] = int(params['section'])

        return render(request, "forum/new_thread.haml", {
            "errors": errors,
            "data": params
        })
Exemple #3
0
 def form_valid(self, form):
     #此处有待加强安全验证
     sender = LoginUser.objects.get(username=self.request.user)
     receiver_id = int(self.kwargs.get('pk'))
     receiver = LoginUser.objects.get(id=receiver_id)
     formdata = form.cleaned_data
     formdata['sender'] = sender
     formdata['receiver'] = receiver
     m = Message(**formdata)
     m.save()
     return HttpResponse("消息发送成功!")
Exemple #4
0
 def form_valid(self, form):
     #此处有待加强安全验证
     sender = LoginUser.objects.get(username=self.request.user)
     receiver_id = int(self.kwargs.get('pk'))
     receiver = LoginUser.objects.get(id=receiver_id)
     formdata = form.cleaned_data
     formdata['sender'] = sender
     formdata['receiver'] = receiver
     m = Message(**formdata)
     m.save()
     return HttpResponse("消息发送成功!")
Exemple #5
0
def add_message():
    text = request.form['text']
    tag = request.form['tag']
    db.session.add(Message(text, tag))
    db.session.commit()

    return redirect(url_for('main'))
Exemple #6
0
def generate_fake_messages(count=1000):
    seed()
    for i in range(count):
        u1, u2 = User.query.order_by(func.random()).limit(2).all()
        m = Message(title=forgery_py.lorem_ipsum.title()[:128],
                    body=forgery_py.lorem_ipsum.sentences(randint(10, 20)),
                    created_at=forgery_py.date.date(True),
                    author=u1,
                    receiver=u2)
        db.session.add(m)
    db.session.commit()
Exemple #7
0
def inform_send_message_view(request, menu, inform_type, unread):
    if request.method == 'POST':
        result = {'success': False, 'message': ''}
        to_user_str = request.POST['to_user'].strip().strip(';')
        message = strip_tags(request.POST['message'].strip()).replace(
            '\n', '<br>')
        name_type = request.POST['name_type']
        if not to_user_str or not message:
            result['message'] = u'收件人和消息内容是必填内容'
        else:
            names = set(to_user_str.split(';'))
            if name_type == 'name':
                to_user = MyUser.objects.filter(name__in=names)
            else:
                to_user = MyUser.objects.filter(nick_name__in=names)
            if len(to_user) == 0:
                result['message'] = u'找不到符合条件的收件人'
            elif len(to_user) != len(names):
                result['message'] = u'找不到收件人,一个或多个收件人姓名(昵称)不正确'
            elif request.user in to_user:
                result['message'] = u'不能发送给自己'
            else:
                data_list = []
                time = datetime.datetime.now()
                # message = pickle.dumps(message)
                for user in to_user:
                    data_list.append(
                        Message(from_user=request.user,
                                to_user=user,
                                time=time,
                                content=message))
                Message.objects.bulk_create(data_list)
                result['success'] = True
        return HttpResponse(json.dumps(result, ensure_ascii=False),
                            content_type='application/json')
    to = request.GET.get('to', '')
    to_user = None
    if to:
        to_user = MyUser.objects.values('id', 'name', 'nick_name').get(name=to)
    return render_to_response('account/inform_send_message.html', {
        'config': config,
        'menu': menu,
        'inform_type': inform_type,
        'to_user': to_user,
        'unread': unread
    },
                              context_instance=RequestContext(request))