def index(request):
    context = dict()
    if request.method == 'POST':

        if 'delete_tweet' in request.POST:
            _id = request.GET.get('id', None)
            Tweet.objects.filter(id=_id).delete()
            messages.success(request, "Tweet successfully deleted")
            return redirect('index')

        form = TweetForm(request.POST)

        if form.is_valid():
            new_tweet = Tweet(username=request.user,
                              tweet=request.POST['tweet'])
            try:
                new_tweet.full_clean()
                new_tweet.save()
            except ValidationError as e:
                context['error'] = e.message_dict['tweet'][0]
            else:
                messages.success(request, "Tweet Created!")
                return redirect('index')
    else:
        form = TweetForm()

    context['form'] = form
    context['tweets'] = Tweet.objects.filter(
        username=request.user).order_by('-post_date')

    return render(request, 'authenticated_user_feed.html', context)
def home(request):
	if request.method == "POST":
		canTweet = True
		error_tweet_30 = ""
		
		(canTweet, error_tweet_30) = userCanTweet(request)
		
		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})
Exemple #3
0
def add_tweet(request):
    # Get the context from the request.
    context = RequestContext(request)

    # A HTTP POST?
    if request.method == 'POST':
        form = TweetForm(request.POST)

        # Have we been provided with a valid form?
        if form.is_valid():
            # Save the new category to the database.
            form.save(commit=True)

            # Now call the index() view.
            # The user will be shown the homepage.
            return HttpResponseRedirect('/twitter/')
        else:
            # No form passed - ignore and keep going.
            pass
    else:
        # If the request was not a POST, display the form to enter details.
        form = TweetForm()

    # Bad form (or form details), no form supplied...
    # Render the form with error messages (if any).
    return render_to_response('twitter/add_tweet.html', {'form': form}, context)
Exemple #4
0
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'))
Exemple #5
0
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'))
Exemple #6
0
def submit(request):
    if request.method == 'POST':
        tweet_form = TweetForm(data=request.POST)
        next_url = request.POST.get('next_url', '/')
        if tweet_form.is_valid():
            tweet = tweet_form.save(commit=False)
            tweet.user = request.user
            tweet.save()
            return redirect(next_url)
        return public(request, tweet_form)
    return redirect('/')
Exemple #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)
Exemple #8
0
def new_tweet(request, user_name):
    if request.method == "GET":
        tweet_form = TweetForm()
        return render(request, "twitter/new_tweet.html",
                      {"tweet_form": tweet_form})
    else:
        user = User.objects.get_by_natural_key(user_name)
        tweet_form = TweetForm(data=request.POST)
        tweet = tweet_form.save(commit=False)
        tweet.user = user
        tweet.save()
        return HttpResponse("success")
Exemple #9
0
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')
Exemple #10
0
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)
Exemple #11
0
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')
Exemple #12
0
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)
Exemple #13
0
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
			print datetime.datetime.today()
			print old_time
			print delta
			print delta.total_seconds()
			print delta.seconds
			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})
Exemple #14
0
 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)
Exemple #15
0
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})
Exemple #16
0
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})
Exemple #17
0
def reply(request, tweet_id):
    tweet = Tweet.objects.get(pk=tweet_id)
    user = request.user
    original_tweet = post.get_original(tweet)
    if request.method == 'POST':
        reply_form = TweetForm(request.POST)
        if reply_form.is_valid():
            new_reply = reply_form.save(commit=False)

            reply = post.create_tweet(user,
                                      new_reply.content,
                                      original_tweet=None)
            replyship = Replyship(
                tweet=original_tweet,
                reply=reply,
                tweet_user=original_tweet.author,
                reply_user=user,
            )
            replyship.save()

            notify.notify_reply(reply, original_tweet)

            stream.create_streams(reply, Stream.REPLY)
    else:
        reply_form = TweetForm()
    return redirect(request.META.get('HTTP_REFERER'))
Exemple #18
0
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
            print datetime.datetime.today()
            print old_time
            print delta
            print delta.total_seconds()
            print delta.seconds
            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
        })
    def dispatch(self, request, *args, **kwargs):
        form = TweetForm()

        if request.method == "POST":
            form = TweetForm(request.POST)

            if form.is_valid():
                form.instance.author = request.user
                form.instance.created_date = datetime.now()
                form.save()
                return redirect("new_page")

        return render(request, self.template_name, {"form": form})
Exemple #20
0
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)
Exemple #21
0
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,
    })
Exemple #22
0
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)
Exemple #23
0
def home(request):
    f = TweetForm()
    tweets = Tweet.objects.order_by("-published_on")[:5]
    return render(request, 'twitter/home.html', {"tweets": tweets, "f": f})
Exemple #24
0
 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')