コード例 #1
0
ファイル: views.py プロジェクト: kell18/PythonTasks
def home(request):
    if request.method == "POST":
        canTweet = True
        error_tweet_30 = ""
        if request.session.has_key("time_of_last_tweet"):
            old_time = datetime.datetime.strptime(
                request.session["time_of_last_tweet"], "%d %m %Y %H:%M:%S")

            delta = datetime.datetime.today() - old_time
            if delta.total_seconds() < 30:
                canTweet = False
                error_tweet_30 = "You have tweeted " + str(int(delta.total_seconds())) + \
                  " seconds ago."
        if canTweet:
            f = TweetForm(request.POST)
            if f.is_valid():
                t = Tweet()
                t.user = request.user
                t.text = f.cleaned_data["text"]
                d = datetime.datetime.today()
                t.published_on = d
                t.save()
                request.session["time_of_last_tweet"] = d.strftime(
                    "%d %m %Y %H:%M:%S")
                return HttpResponseRedirect(reverse("twitter:home"))
            else:
                tweets = Tweet.objects.order_by("-published_on")[:5]
                return render(request, 'twitter/home.html', {
                    "tweets": tweets,
                    "user": request.user,
                    "f": f
                })
        else:
            f = TweetForm()
            tweets = Tweet.objects.order_by("-published_on")[:5]
            return render(
                request, 'twitter/home.html', {
                    "tweets": tweets,
                    "user": request.user,
                    "f": f,
                    "er30": error_tweet_30
                })
    else:
        f = TweetForm()
        tweets = Tweet.objects.order_by("-published_on")[:5]
        return render(request, 'twitter/home.html', {
            "tweets": tweets,
            "user": request.user,
            "f": f
        })
コード例 #2
0
ファイル: pages.py プロジェクト: ainesmile/djangotwitter
def post_tweet(request):
    login_user = request.user
    if request.method == 'POST':
        form = TweetForm(request.POST)
        if form.is_valid():
            tweet = form.save(commit=False)
            new_tweet = post.create_tweet(login_user, tweet.content, None)
            notify.notify(login_user, new_tweet, Notification.MENTION)
            stream.create_streams(new_tweet, Stream.TWEET)
            return redirect('profile', username=login_user.username)
    else:
        form = TweetForm()
    return render(request, 'twitter/post_tweet.html', {
        'form': form,
    })
コード例 #3
0
ファイル: views.py プロジェクト: LEngelbrecht/ProjectDjango
def envoyer_tweet(request):
	if request.user.is_authenticated():
		login= UserProfil.objects.get(pk = request.user.pk)
		if request == "POST":
			tweet_form = TweetForm(request.POST)
			if tweet_form.is_valide():
				tweet = Tweet()
				tweet.message = tweet_form.cleaned_data['message']
				tweet.date = datetime.date.today()
				tweet.user = login
				tweet.save()
				return redirect(user_profil)
		else:
			tweet_form = TweetForm()
	tweets = Tweet.objects.all().order_by('date')
	contexte = {'tweets': tweets, 'tweet_form' : tweet_form}
	return render(request,'bienvenue.html', contexte)
コード例 #4
0
ファイル: views.py プロジェクト: Martulla/twitter
 def get(self, request, id):
     user = id
     # template_name = "tweet_form.html" nie potrzebujemy template_name ponieważ mamy template odpowiednio nazwany i Django sam go wyszuka.
     form = TweetForm(
     )  # normalnie nie wymaga formularza ale tu zmienaimy wiget na textarea, żeby mieć większe okienko do wpisywania treści tweet
     user_id = User.objects.get(id=user)
     posts = Tweet.objects.filter(author=user_id)
     ctx = {'form': form, 'posts': posts}
     return render(request, 'twitter/tweet_form.html', ctx)
コード例 #5
0
ファイル: views.py プロジェクト: kell18/PythonTasks
def tweet(request):
    f = TweetForm(request.POST)
    if f.is_valid():
        t = Tweet()
        t.user = request.user
        t.text = f.cleaned_data["text"]
        t.published_on = datetime.datetime.today()
        t.save()
    return HttpResponseRedirect(reverse('twitter:home'))
コード例 #6
0
ファイル: views.py プロジェクト: kell18/PythonTasks
def home(request):
    if request.method == "POST":
        f = TweetForm(request.POST)
        if f.is_valid():
            t = Tweet()
            t.user = request.user
            t.text = f.cleaned_data["text"]
            t.published_on = datetime.datetime.today()
            t.save()
        else:
            tweets = Tweet.objects.order_by("-published_on")[:5]
            return render(request, 'twitter/home.html', {
                "tweets": tweets,
                "f": f
            })
    else:
        f = TweetForm()
        tweets = Tweet.objects.order_by("-published_on")[:5]
        return render(request, 'twitter/home.html', {"tweets": tweets, "f": f})
コード例 #7
0
def post_tweet(request):
    form = TweetForm(request.data)
    if form.is_valid():
        tweet = form.save()
        mentions = get_all_profiles_mentioned_in_tweet(
            request.data.get('content'))
        hashtags = get_all_hashtags_in_tweet(request.data.get('content'), True)
        tweet.mentions.set(mentions)
        tweet.hashtags.set(hashtags)

    return Response(data={}, status=status.HTTP_201_CREATED)
コード例 #8
0
ファイル: routes.py プロジェクト: VBV-121/Twitter-Clone
def new_tweet():
    form = TweetForm()
    if form.validate_on_submit():
        post = Post(content=form.content.data, author=current_user)
        db.session.add(post)
        db.session.commit()
        flash(f'Your tweet has been posted!', 'success')
        return redirect(url_for('home'))
    return render_template('create_tweet.html',
                           title='New Tweet',
                           form=form,
                           legend='New Tweet')
コード例 #9
0
ファイル: routes.py プロジェクト: VBV-121/Twitter-Clone
def home():
    form = TweetForm()
    if form.validate_on_submit():
        post = Post(content=form.content.data, author=current_user)
        db.session.add(post)
        db.session.commit()
        print('got in home')
        flash(f'Your tweet has been posted!', 'success')
        return redirect(url_for('home'))
    page = request.args.get('page', 1, type=int)
    posts = Post.query.order_by(Post.date_posted.desc()).paginate(page=page,
                                                                  per_page=5)
    return render_template("home.html", posts=posts, form=form)
コード例 #10
0
ファイル: routes.py プロジェクト: VBV-121/Twitter-Clone
def update_tweet(post_id):
    post = Post.query.get_or_404(post_id)
    if post.author != current_user:
        abort(403)
    form = TweetForm()
    if form.validate_on_submit():
        post.content = form.content.data
        db.session.commit()
        flash('Your tweet has been updated!', 'success')
        return redirect(url_for('tweet', post_id=post.id))
    elif request.method == 'GET':
        form.content.data = post.content
    return render_template('create_tweet.html',
                           title='Update Tweet',
                           form=form,
                           legend='Update Tweet')
コード例 #11
0
ファイル: views.py プロジェクト: LEngelbrecht/ProjectDjango
def create_account(request):
   if request.method == 'POST':
   	inscription_form = InscriptionForm(request.POST)
	if inscription_form.is_valid():
		user = UserProfil()
		user.last_name = inscription_form.cleaned_data["last_name"]
		user.first_name = inscription_form.cleaned_data["first_name"]
		user.username = inscription_form.cleaned_data["username"]
		user.email = inscription_form.cleaned_data["email"]
		user.set_password(inscription_form.cleaned_data["password"])
		user.Avatar = inscription_form.cleaned_data["Avatar"]
		user.save()
		tweet_form = TweetForm()
		contexte = {'user' : user, 'tweet_form' : tweet_form }
		return render(request, 'bienvenue.html', contexte)
   else:
   	inscription_form = InscriptionForm()
   contexte = {'inscription_form' : inscription_form}
   return render(request, 'create.html', contexte)
コード例 #12
0
ファイル: views.py プロジェクト: LEngelbrecht/ProjectDjango
def connection(request):
    if request.method == 'POST':
	username = request.POST['username']
	password = request.POST['password']
	user = authenticate(username = username, password = password)
	if user is not None:
		if user.is_active:
			login(request, user)
			tweet_form = TweetForm()
			tweets = Tweet.objects.all().order_by('date')
			contexte = {'user' : user, 'tweet_form' : tweet_form, 'tweets' : tweets}
			return render(request, 'bienvenue.html', contexte)
		else:
			login_form = LoginForm()
	else:
		login_form = LoginForm()
    else:
	login_form = LoginForm()

    contexte = {'login_form' : login_form}
    return render(request, 'login.html', contexte)
コード例 #13
0
ファイル: views.py プロジェクト: Martulla/twitter
 def post(self, request, id):
     form = TweetForm(request.POST)
     if form.is_valid():
         form.instance.author = request.user  # wyciagamy autora z requesta, nie może go sam wpisywać bo mógłby się podszyć pod kogoś.
         form.save()
         return redirect('twitter/twitter:index')
コード例 #14
0
ファイル: views.py プロジェクト: kell18/PythonTasks
def home(request):
    f = TweetForm()
    tweets = Tweet.objects.order_by("-published_on")[:5]
    return render(request, 'twitter/home.html', {"tweets": tweets, "f": f})