Ejemplo n.º 1
0
 def post(self, request):
     """
     Crea un post en base a la información POST
     :param request: HttpRequest
     :return: HttpResponse
     """
     success_message = ''
     blog = UserUtils.getUserBlog(request.user.username)
     post_with_blog = Post()
     post_with_blog.blog = blog
     form = PostForm(request.POST, instance=post_with_blog) # Coge los datos del formulario sobreescribe los campos que tiene el objeto 'photo_with_owner'
     if form.is_valid():
         new_post = form.save() # Guarda el objeto en BB.DD. y me lo devuelve
         form = PostForm() # Forzamos a que el formulario se vacie si la creacion de la foto ha sido satisfactoria
         success_message = 'Guardado con éxito!'
         success_message += '<a href = "{0}">'.format(
             reverse('post_detail', args=[new_post.blog.author.username,new_post.pk])
         )
         success_message += 'Ver post'
         success_message += '</a>'
     context = {
         'form': form,
         'success_message': success_message
     }
     return self.render(request, context)
Ejemplo n.º 2
0
    def post(self, request):
        """
        Muestra un formulario para crear un nuevo post.
        :param request: HttpRequest
        :return: HttpResponse
        """
        success_message = ''

        form_with_blog = Post()
        posible_blog = Blog.objects.filter(owner=request.user)
        blog = posible_blog[0] if len(posible_blog) == 1 else None
        if blog is not None:
            form_with_blog.blog = blog
            form = PostForm(request.POST, instance=form_with_blog)
            if form.is_valid():
                new_post = form.save()
                form = PostForm()
                success_message = 'Guardado con éxito!'
        else:
            form = PostForm()
        context = {
            'form': form,
            'success_message': success_message
        }

        return render(request, 'posts/new_post.html', context)
Ejemplo n.º 3
0
def newPost(request):
   """

   :param request:
   :return:
   """
   success_message=''
   categorias =Categoria.objects.all()
   if request.method == 'GET':
       form=PostForm()
   else:
       post_with_owner = Post()
       post_with_owner.owner=request.user
       form=PostForm(request.POST,instance=post_with_owner)
       if form.is_valid():
           new_post=form.save()
           username=new_post.owner
           postid=new_post.pk
           success_message = 'Guardado con éxito'
           success_message += '<a href="{0}">'.format(reverse('post_detail',kwargs={'username':username,'postid':postid}))
           success_message += 'Ver Post'
           success_message += '</a>'
           form = PostForm()
   context = {
       'form' : form,
       'categorias' : categorias,
       'success_message' : success_message
   }
   return render(request, 'posts/new-post.html',context)
Ejemplo n.º 4
0
def add_post(request):
    """Submit a new post.
    """
    if request.method == 'POST':
        form = PostForm(request.POST)
        if form.is_valid():
            # Save the submission
            post = form.save(commit=False)
            post.created_by = request.user
            post.save()
            # Notify managers of new submission
            c = Context({'post': post})
            t = loader.get_template('posts/post_email.txt')
            text_message = t.render(c)
            t = loader.get_template('posts/post_email.html')
            html_message = t.render(c)
            mail_managers('New post submission', text_message,
                          fail_silently=True, html_message=html_message)
            # Confirm submission
            messages.success(request, 
                             'Thank you. Your post has been submitted.')
            return HttpResponseRedirect(reverse('post_list_view'))
    else:
        form = PostForm()
    return render_to_response('posts/post_add.html',
                              {'form': form},
                              context_instance=RequestContext(request))
Ejemplo n.º 5
0
    def post(self, request, pk, idPost):
        """
        Actualiza un post en base a la información POST
        :param request: HttpRequest
        :return: HttpResponse
        """
        success_message = ''
        blog = UserUtils.getUserBlog(request.user.username)
        post_with_blog = Post()
        post_with_blog.blog = blog
        form = PostForm(request.POST, instance=post_with_blog) # Coge los datos del formulario sobreescribe los campos que tiene el objeto 'photo_with_owner'
        if form.is_valid():
            new_post = form.save() # Guarda el objeto en BB.DD. y me lo devuelve
            form = PostForm() # Forzamos a que el formulario se vacie si la creacion de la foto ha sido satisfactoria
            success_message = 'Guardado con éxito!'
            success_message += '<a href = "{0}">'.format(
                reverse('post_detail', args=[new_post.blog.author.username,new_post.pk])
            )
            success_message += 'Ver post'
            success_message += '</a>'

            blog = UserUtils.getUserBlog(pk)
            possible_posts = self.get_posts_queryset(request).filter(blog__name=blog.name, pk=idPost).order_by('-publication_date')
            post_to_delete = possible_posts[0] if len(possible_posts) >= 1 else None
            if post_to_delete is not None:
                post_to_delete.delete()
        context = {
            'form': form,
            'success_message': success_message
        }
        return self.render(request, context)
Ejemplo n.º 6
0
 def form_valid(self, form):
     form = PostForm(self.request.POST)
     if form.is_valid():
         soup = BeautifulSoup(form.instance.content, 'html.parser')
         form.instance.image = soup.img.get('src')
         form.instance.user = self.request.user
         form.save()
     return super(PostCreateView, self).form_valid(form)
Ejemplo n.º 7
0
def create_view (request):
  if request.method == 'POST':
    form = PostForm (request.POST)
    if (form.is_valid()):
      save_form_data (form, Post())
      return HttpResponseRedirect ('/posts')
  else:
    form = PostForm ()
  return render (request, 'posts/edit.html',
      { 'form': form })
Ejemplo n.º 8
0
 def post(self, request):
     # This method creates the new blog post if the entries are valid and
     # redirects the user to the main page
     # If the form entries are not valid, errors are shown on the same page
     form = PostForm(request.POST)
     if form.is_valid():
         form.save()
         return redirect("/posts")
     else:
         return render(request, "posts/newpost.html", {"form": form})
Ejemplo n.º 9
0
 def post(self, request, post_id):
     # This method submits the edits made to the post and redirects to the
     # main post page if valid
     post = Post.objects.get(id=post_id)
     form = PostForm(request.POST or None, instance=post)
     if form.is_valid():
         form.save()
         return redirect("/posts/{}".format(post.titleslug))
     else:
         return render(request, "posts/editpost.html", {"form": form})
Ejemplo n.º 10
0
def submit(request):
    if request.method == 'POST':
        post = Post()
        form = PostForm(request.POST, instance=post)
        if form.is_valid():
            p = form.save()
            messages.success(request, "Submission successful!")
            return redirect('posts:index')
    else:
        form = PostForm()
    return render(request, 'submit.html', {'form': form})
Ejemplo n.º 11
0
def edit(request, post_id):
    instance = get_object_or_404(Post, id=post_id)
    form = PostForm(request.POST or None, instance=instance)
    if form.is_valid():
        form.save()
        for cat in form.cleaned_data.get("categories"):
            instance.categories.add(PostsCategories.objects.get(title=cat))
        instance.save()
        return redirect("posts:get_post", post_id=post_id)
    return render(request, 'posts/create.html', {'form': form, 'button_name': "Змінити", "title":
                                                 "Створити лист"})
Ejemplo n.º 12
0
def edit_view (request, post_id):
  post = Post.objects.get(id=post_id)
  if request.method == 'POST':
    form = PostForm (request.POST)
    if (form.is_valid()):
      save_form_data (form, post)
      return HttpResponseRedirect ('/posts/%s' % post_id)
  else:
    form = PostForm ({'title': post.title,
                      'author': post.author.id,
                      'content': post.content})
  return render (request, 'posts/edit.html',
      { 'form': form })
Ejemplo n.º 13
0
def school(request, internalName):
	user = request.user
	posts = Post.objects.filter(school = School.objects.get(internalName = internalName))

	if request.method == 'POST':
		postForm = PostForm(request.POST)
		if postForm.is_valid():
			post = Post(title = postForm.cleaned_data['title'], user = user, school = user.get_profile().school, seekingFemale = postForm.cleaned_data['seekingFemale'], seekingMale = postForm.cleaned_data['seekingMale'], seekingTransgendered = postForm.cleaned_data['seekingTransgendered'], type = postForm.cleaned_data['hookupType'], allowOtherSchools = postForm.cleaned_data['allowOtherSchools'], text = postForm.cleaned_data['text'])
			post.save()
			return HttpResponseRedirect('')
		else:
			return render_to_response('schools/school.html', {'posts':  posts, 'postForm':  postForm, 'user':  user, 'loginform':  AuthenticationForm, 'logoSize':  50}, context_instance = RequestContext(request))
	else:
		return render_to_response('schools/school.html', {'posts':  posts, 'postForm':  PostForm(), 'user':  user, 'loginform':  AuthenticationForm, 'logoSize':  50}, context_instance = RequestContext(request))
Ejemplo n.º 14
0
def post_update(request, id=None):
    instance = get_object_or_404(Post, id=id)
    form = PostForm(request.POST or None, instance=instance)
    if form.is_valid():
        instance = form.save(commit=False)
        instance.save()
        messages.success(request, "Successfully Updated")
        return HttpResponseRedirect(instance.get_absolute_url())
    else:
        messages.error(request, "Failed to Update")
        
    context_data = {'title':instance.title, 'instance':instance, 'form':form}
    
    return render(request, 'post_forms.html', context_data)
Ejemplo n.º 15
0
def new(request):
    """
    Used to add new posts
    """

    post = Post(author = request.user)
    form = PostForm(request.POST or None, instance = post)

    if form.is_valid():
        form.save()
        messages.success(request, u'Post deleted successfully')
        return redirect('posts:my_posts')

    return render(request, 'posts/new.html', locals())
Ejemplo n.º 16
0
def post(request):
	if request.method == 'POST':
		form = PostForm(request.POST)
		if form.is_valid():
			post = form.save(commit=False)#creating the post but do not save yet to the database so we could set the user_posting just before we commit #
			post.user_posting = request.user
			post.save()
			return HttpResponseRedirect('/')#in case of successfull same go bak to the wall page with the new post in it#
	else:
		form = PostForm
		
	return render_to_response('posts/post.html',
							  {'form': form}, 
							  context_instance=RequestContext(request))
Ejemplo n.º 17
0
def add_post():
    form = PostForm(request.form)
    if form.validate():
        post = Post(bleach.clean(form.content.data), current_user.id, datetime.datetime.utcnow())
        words = form.content.data.split()
        for tag in Tag.parse_tags(words):
            db_session.add(tag)
            post.tags.append(tag)
        db_session.add(post)
        db_session.commit()
        flash("Successful!")
    else:
        flash("Something went wrong. Make sure that your tweet's length is less than 140 characters", 'error')
    return redirect(url_for('main.hello'))
Ejemplo n.º 18
0
def create(request):
    if request.POST:
        form = PostForm(request.POST)
        if form.is_valid():
            print(form.cleaned_data)
            new_user = form.new_user(request.user)
            new_user.save()
            for cat in form.cleaned_data.get("categories"):
                new_user.categories.add(PostsCategories.objects.get(title=cat))
            new_user.save()

            return redirect("posts:all")
    else:
        form = PostForm()
    return render(request, "posts/create.html", {"form": form, "button_name": "Створити"})
Ejemplo n.º 19
0
def post_update(request, id=None):
    instance = get_object_or_404(Post, id=id)
    form = PostForm(request.POST or None, instance=instance)
    if form.is_valid():
        instance = form.save(commit=False)
        instance.save()
        # message success
        messages.success(request, "Successfully updated")
        return HttpResponseRedirect(instance.get_absolute_url())
    context = {
        "title": "Detail",
        "instance": instance,
        "form": form,
    }
    return render(request, "post_form.html", context)
Ejemplo n.º 20
0
def create(request):
    context = {}
    if request.method == 'POST':
        form = PostForm(request.POST, request.FILES)
        if form.is_valid():
            context['post'] = form.save(commit=False)
            form.save()
    """
    if 'post' in context:
        return render(request, 'posts/_post.html', context)
    else:
        return HttpResponse()
    """

    return HttpResponseRedirect(reverse('index'))
Ejemplo n.º 21
0
def create_post_view(request):
    params = dict(current_page='create_post')
    if request.method == 'POST':
        form = PostForm(request.POST, auto_id=False)
        if form.is_valid():
            slug = form.cleaned_data['slug']
            text = form.cleaned_data['text']
            post = Post(slug=slug, text=text)
            try:
                post.user = request.user
                post.save()
                return redirect('post_detail_view', post.slug)
            except Exception, e:
                messages.error(request, "create post errors: %s" % e)
        else:
            messages.error(request, "form errors: %s" % form.errors)
Ejemplo n.º 22
0
def post_create(request):
    if request.method == 'POST':
        print request.POST.get('title')
        print request.POST.get('content')
    
    form = PostForm(request.POST or None)
    if form.is_valid():
        instance = form.save(commit=False)
        instance.save()
        messages.success(request, "Successfully Created")
        return HttpResponseRedirect(instance.get_absolute_url())
    else:
        messages.error(request, "Not Successfully Created")
    context_data = {'form':form}
#     return HttpResponse("<h1>hello create</h1>")
    return render(request, 'post_forms.html', context_data)
Ejemplo n.º 23
0
    def post(self, request):

        post_with_owner = Post()
        post_with_owner.owner = request.user
        form = PostForm(request.POST, instance=post_with_owner)

        if form.is_valid():
            new_post = form.save()
            form = PostForm()


        context = {

                'form': form,
        }

        return render(request, 'posts/new_post.html',context)
Ejemplo n.º 24
0
def write_post(request):
    layout = 'vertical'

    if request.method == 'POST':
        form = PostForm(request.POST)
        if form.is_valid():
            new_post = form.save(commit=False)
            new_post.author = request.user
            new_post.save()
            return show_timeline(request)
    else:
        form = PostForm()

    return render_to_response('posts/form.html', RequestContext(request, {
        'form': form,
        'layout': layout,
        }))
Ejemplo n.º 25
0
def create_post(request):
    """
    Muestra un formulario para crear un nuevo post y lo crea si la petición es POST
    :param request: HttpRequest
    :return: HttpResponse
    """
    success_message = []
    if request.method == 'GET':
        form = PostForm()
    else:
        form = PostForm(request.POST)
        if form.is_valid():
            post_with_owner = Post()
            post_with_owner.owner = request.user # asigno como propietario del post, el usuario autenticado
            form = PostForm(request.POST, instance=post_with_owner)
            if form.is_valid():
                new_post = form.save() # Guarda el objeto Post y lo devuelve
                form = PostForm()
                success_message = '¡Post creado con éxito!'
                success_message += '<br><a href="{0}">'.format(
                    reverse('post_detail', args=[new_post.pk])
                )
                success_message += 'Ver foto'
                success_message += '</a>'
    context = {
        'form': form,
        'success_message': success_message
    }
    return render(request, 'posts/new_post.html', context)
Ejemplo n.º 26
0
def post_publish(request):
    if(request.method == 'POST'):
        form = PostForm(request.POST)
        if(form.is_valid()):
            ctx = BlogInfoContext(request, {
                   'form': form
                })
            post = Post()
            post.content = form['content'].value()
            post.title = form['title'].value()
            post.published = datetime.datetime.now()
            post.save()
            return HttpResponseRedirect("/")
    else:
        form = PostForm()
    return render_to_response('post_create.html',{
                'form': form
            })
Ejemplo n.º 27
0
def get_post(request):
    if request.method == 'POST':
        form = PostForm(request.POST)
        if form.is_valid():
            # process data in form.cleaned_data
            name = form.cleaned_data['name']
            link = form.cleaned_data['link']

            p = Post(name=name, link=link, publisher_id=request.user.id)
            p.save();

            #redirect
            return HttpResponseRedirect('/posts')

    else:
        form = PostForm()

    return render(request, 'posts/post.html', {'form': form})
Ejemplo n.º 28
0
def post_create(request):
    if not request.user.is_authenticated():
        raise Http404
    # if not request.user.is_staff or not request.user.is_superuser:
    #     raise Http404
    form = PostForm(request.POST or None, request.FILES or None)
    if form.is_valid():
        instance = form.save(commit=False)
        instance.user = request.user
        instance.save()
        # message success
        messages.success(request, "Successfully Created")
        return HttpResponseRedirect(instance.get_absolute_url())

    context = {
        "form": form,
    }
    return render(request, "post_form.html", context)
def post_create(request):
    if not request.user.is_staff: #or not request.user.is_admin:
        raise Http404
    form = PostForm(request.POST or None, request.FILES or None)
    if form.is_valid():
        instance = form.save(commit=False)
        instance.user = request.user
        instance.save()
        #message success pops out
        messages.success(request, 'Post Created Successfully!')
        return HttpResponseRedirect(instance.get_absolute_url())

    if request.method == "POST":
        print request.POST
    context = {
        "form": form,
    }
    return render (request, "post_form.html", context)
    def post(self, request):
        """
        Crea un post en base a la información POST. Con el decorador @login_required() nos va a ejecutar esta función
        solamente en el caso de que el usuario esté autenticado. En caso contrario, redirigirá a una url del paquete
        django.contrib.auth que redefinimos en el settings.py LOGIN_URL. Esta es la magia que hace Django para
        redireccionar al usuario a una url en el caso de que intente acceder a una url protegida sólo accesible si
        está autenticado.
        :param request: Objeto HttpRequest con la petición
        :return: HttpResponse
        """
        success_message = ''

        # Creo un post vacío y le asigno el blog actual.
        post_with_blog = Post()
        post_with_blog.blog = request.user.blog

        # Le pedimos al formulario que en vez de usar la instancia que él crea, utilice la que le
        # indicamos con el post_with_blog. Con esto, guarda la instancia con todos los campos del
        # formulario, excepto del blog, que coge el que le indicamos nosotros que ha sido creado.
        form = PostForm(request.POST, instance=post_with_blog)

        if form.is_valid():
            # Si se valida correctamente creamos objeto post, lo guardamos en DB y lo devolvemos
            # Obtenemos el blog del usuario autenticado para guardarlo automáticamente.
            new_post = form.save()

            # Reiniciamos formulario y componemos mensaje con enlace al nuevo post creado. Para acceder a una url
            # nombrada en un controlador utilizamos la función reverse, con los argumentos de la url nombrada, en este
            # caso, el nombre del blog, y la pk del post.
            # Como por defecto Django escapa el HTML, necesitamos indicar que el enlace al nuevo post no escape HTML.
            # Lo indicamos en la plantilla con el |safe en el mensaje. Lo normal es que este trabajo se haga en el
            # template
            form = PostForm()
            success_message = '¡Post creado con éxito!  '
            success_message += '<a href="{0}">'.format(reverse('post_detail', args=[new_post.blog, new_post.pk]))
            success_message += 'Ver post'
            success_message += '</a>'

        context = {
            'form': form,
            'success_message': success_message
        }

        return self.renderize(request, context)
Ejemplo n.º 31
0
 def test_valid_form(self):
     form = PostForm(data={'title': 'Title', 'body': 'Hello world!'})
     assert form.is_valid(
     ) is True, 'Should be valid if body message is not too short'
Ejemplo n.º 32
0
 def setUpClass(cls):
     super().setUpClass()
     cls.form = PostForm()
Ejemplo n.º 33
0
 def get(self, request):
     form = PostForm()
     return render(request, 'post_form.html', {'form': form})
Ejemplo n.º 34
0
 def post(self, request):
     form = PostForm(request.POST, request.FILES)
     if form.is_valid():
         form.save()
         return redirect('posts:feed')
Ejemplo n.º 35
0
def home(request):
    utc = pytz.UTC

    # TODO: If the user is not authenticated then don't show the home page,
    # but instead show soe other page reporting the error. (Maybe just the login page).

    streamlist = []
    instance = None
    if request.method == "POST":
        data = request.POST.copy()
        data['user'] = request.user.id
        data['publish'] = datetime.now()
        form = PostForm(data, request.FILES or None)
        if form.is_valid():
            instance = form.save()
            form = PostForm()
        print(form.errors)
        user = request.user

        privacy = request.GET.get('privacy', None)
        if privacy is not None:
            streamlist = Post.objects.filter(privacy=privacy)
            print("GET", streamlist)
        else:
            streamlist = Post.objects.filter_user_visible_posts(
                user=request.user)
        """
			Allows you to search for the titles of post
		"""
        query = request.GET.get("query")
        if query:
            streamlist = streamlist.filter(content__icontains=query)
        print("Stream list len: ", len(streamlist))
        print("Stream list: ", streamlist)

        #Cast QuerySet into a list for Github
        streamlist = list(streamlist)

        #TODO: increase rate limit with OAuth?
        #if so, do pagination of API call
        #make call to Github API
        build_request = 'https://api.github.com/users/' + request.user.github + '/events'
        r = requests.get(build_request)
        response = r.json()

        if r.status_code == 200:
            for event in response:
                #parse through output of API call and formulate into readable message
                event_type = ''
                #Parse event type into multiple words
                #eg: PushEvent -> Push event
                #https://stackoverflow.com/questions/2277352/split-a-string-at-uppercase-letters
                #Credit: Mark Byers (https://stackoverflow.com/users/61974/mark-byers)
                for word in re.findall('[A-Z][^A-Z]*', event['type']):
                    event_type += word + ' '
                #Parse date into more readbale format
                #https://stackoverflow.com/questions/18795713/parse-and-format-the-date-from-the-github-api-in-python
                #Credit: IQAndreas (https://stackoverflow.com/users/617937/iqandreas)
                date = datetime.strptime(event['created_at'],
                                         "%Y-%m-%dT%H:%M:%SZ")
                event_datetime = date.strftime('%A %b %d, %Y at %H:%M GMT')
                #Parse url
                event_repo = 'https://github.com/' + event['repo']['name']
                message = "You had a " + event_type + 'on ' + event_datetime + ' for repo ' + event_repo

                #Flag for determining if a github event is older than all posts
                is_oldest = True
                #sort based on datetime
                for item in streamlist:
                    if isinstance(item, Post):
                        #Note that the time returned by the github api is timezone naive
                        #We must give it local timezone information in order to compare with timestamp
                        #of a post
                        #https://stackoverflow.com/questions/15307623/cant-compare-naive-and-aware-datetime-now-challenge-datetime-end
                        #Credit: Viren Rajput (https://stackoverflow.com/users/997562/viren-rajput)
                        if item.timestamp < utc.localize(date):
                            is_oldest = False
                            streamlist.insert(streamlist.index(item), message)
                            break

                if is_oldest:
                    streamlist.append(message)

        # context = {
        # 	"object_list": streamlist,
        # 	"user": user,
        # 	"form": form,
        # }

        return HttpResponseRedirect('/home/')
    else:

        form = PostForm()
        user = request.user

        privacy = request.GET.get('privacy', None)
        if privacy is not None:
            streamlist = Post.objects.filter(privacy=privacy)
            print("GET", streamlist)
        else:
            print(request.user)
            streamlist = Post.objects.filter_user_visible_posts(
                user=request.user)
        """
			Allows you to search for the titles of post
		"""
        query = request.GET.get("query")
        if query:
            streamlist = streamlist.filter(content__icontains=query)

        #print("Stream list len: ", len(streamlist))
        #print("Stream list: ", streamlist)

        #Cast QuerySet to list for Github
        streamlist = list(streamlist)

        #TODO: increase rate limit with OAuth?
        #if so, do pagination of API call
        #Validate user github?
        #make call to Github API
        build_request = 'https://api.github.com/users/' + request.user.github + '/events'
        r = requests.get(build_request)
        response = r.json()

        if r.status_code == 200:
            for event in response:
                #parse through output of API call and formulate into readable message
                event_type = ''
                #Parse event type into multiple words
                #eg: PushEvent -> Push event
                #https://stackoverflow.com/questions/2277352/split-a-string-at-uppercase-letters
                #Credit: Mark Byers (https://stackoverflow.com/users/61974/mark-byers)
                for word in re.findall('[A-Z][^A-Z]*', event['type']):
                    event_type += word + ' '
                #Parse date into more readbale format
                #https://stackoverflow.com/questions/18795713/parse-and-format-the-date-from-the-github-api-in-python
                #Credit: IQAndreas (https://stackoverflow.com/users/617937/iqandreas)
                date = datetime.strptime(event['created_at'],
                                         "%Y-%m-%dT%H:%M:%SZ")
                event_datetime = date.strftime('%A %b %d, %Y at %H:%M GMT')
                #Parse url
                event_repo = 'https://github.com/' + event['repo']['name']
                message = "You had a " + event_type + 'on ' + event_datetime + ' for repo ' + event_repo

                #Flag for determining if a github event is older than all posts
                is_oldest = True
                #sort based on datetime
                for item in streamlist:
                    if isinstance(item, Post):
                        #Note that the time returned by the github api is timezone naive
                        #We must give it local timezone information in order to compare with timestamp
                        #of a post
                        #https://stackoverflow.com/questions/15307623/cant-compare-naive-and-aware-datetime-now-challenge-datetime-end
                        #Credit: Viren Rajput (https://stackoverflow.com/users/997562/viren-rajput)
                        if item.timestamp < utc.localize(date):
                            is_oldest = False
                            streamlist.insert(streamlist.index(item), message)
                            break

                if is_oldest:
                    streamlist.append(message)

        nodeList = getNodeList()

        context = {
            "object_list": streamlist,
            "user": user,
            "form": form,
            "nodeList": json.dumps(nodeList),
        }
    if instance and instance.unlisted is True:
        context["unlisted_instance"] = instance
    return render(request, "home.html", context)
Ejemplo n.º 36
0
 def get(self, request):
     form= PostForm()
     return render(request,'addPost.html', context={'form':form})
Ejemplo n.º 37
0
def render_thread(request, board_name, thread_id):
    """
    Render thread page with all thread's posts.

    :param request: user's request
    :param board_name: name of threads board
    :param thread_id: thread id
    :return: thread page
    """
    board = get_board(board_name)
    boards = get_boards_navlist()
    board.url = board.uri
    post = Post.objects.filter(board=board).get(id=thread_id)
    post.posts = Post.objects.filter(board=board).filter(thread=post.id)
    if request.method == 'POST':
        if 'delete' in request.POST:
            for key in request.POST.keys():
                if key.startswith('delete_'):
                    post_id = key[7:]
                    post_to_delete = Post.objects.get(board=board, id=post_id)
                    if post_to_delete.password == request.POST['password']:
                        post_to_delete.delete()
                        return HttpResponseRedirect(
                            reverse('thread', args=[
                                board_name,
                                thread_id
                            ]))
        if 'report' in request.POST:
            for key in request.POST.keys():
                if key.startswith('delete_'):
                    post_id = key[7:]
                    post_to_report = Post.objects.get(board=board, id=post_id)
                    print(post_to_report)
                    report = Report(
                        ip=get_ip(request),
                        reason=request.POST['reason'],
                        post=post_to_report
                    )
                    report.save(force_insert=True)
                    return HttpResponseRedirect(
                        reverse('thread', args=[
                            board_name,
                            thread_id
                        ]))
        json_response = 'json_response' in request.POST
        agreed_with_rules = 'rules' in request.POST
        post_form = PostForm(request.POST, request.FILES)
        if agreed_with_rules:
            if post_form.is_valid():
                _ip = get_ip(request)
                new_post_id = post_form.process(board_name, _ip, thread_id)
                if new_post_id:
                    if json_response:
                        respond = json.dumps({
                            'id': new_post_id,
                            'noko': False,
                            'redirect': '/' + board_name
                        })
                        answer = HttpResponse(
                            respond,
                            content_type="application/json"
                        )
                    else:
                        answer = HttpResponseRedirect(
                            reverse('thread', args=[
                                board_name,
                                thread_id
                            ]) + '#{0}'.format(new_post_id)
                        )
                    return answer
    else:
        post_form = PostForm()
    context = {
        'config': config,
        'board': board,
        'boards': boards,
        'threads': [post],
        'hr': True,
        'form': post_form,
        'id': 1
    }
    return render(request, 'posts/page.html', context)
Ejemplo n.º 38
0
 def get(self, request):
     form = PostForm(user=request.user)
     return render(request, 'posts/new_post.html', {'form': form})
Ejemplo n.º 39
0
 def get(self, request, *args, **kwargs):
     posts = Post.objects.get(pk=kwargs['pk'])
     form = PostForm(instance=posts)
     return render(request, 'common/edit.html', {'form': form})
Ejemplo n.º 40
0
 def get(self, request):
     context = {'form': PostForm()}
     return render(request, 'create.html', context)
Ejemplo n.º 41
0
 def get_context_data(self, **kwargs):
     """ Returns a specific post page by pk. """
     context = super().get_context_data(**kwargs)
     context['post_form'] = PostForm()
     return context
Ejemplo n.º 42
0
 def test_forms(self):
     post_text = 'TestText'
     form_data = {'text': post_text}
     form = PostForm(data=form_data)
     self.assertTrue(form.is_valid())
Ejemplo n.º 43
0
 def setUp(self):
     super().setUp()
     self.form = PostForm()
Ejemplo n.º 44
0
 def get(self, request):
     form = PostForm()
     context = {'form': form}
     return render(request, 'posts/new.html', context)
Ejemplo n.º 45
0
 def test_form_too_short(self):
     form = PostForm(data={'title': 'Title', 'body': 'Hello'})
     assert form.is_valid(
     ) is False, 'Should be invalid if body message is too short'
     assert 'body' in form.errors
Ejemplo n.º 46
0
def create(request):
    form = PostForm(request.POST or None)
    form_is_valid(form)
    return {
        'form': form,
    }
Ejemplo n.º 47
0
 def get(self, request):
     post_form = PostForm()
     image_form = ImageFormSet(queryset=PostImages.objects.none())
     context = {'post_form': post_form, 'image_form': image_form}
     return render(request, 'post/create.html', context)
Ejemplo n.º 48
0
def show(request, id):
    group = Group.objects.get(id=id)
    query = request.GET.get('q', '')
    post = PostForm(request.POST or None)
    if post.is_valid():
        form_content = post.cleaned_data['content']
        post_obj = Post.objects.create(content=form_content,
                                       owner=request.user,
                                       group=group)
        post_obj.save()
        return redirect("/groups/show/" + str(group.id))

    if (query):
        first_name_query1 = User.objects.filter(
            userprofile__first_name__icontains=str(query)).filter(
                userprofile__groups__in=[group])
        first_name_query2 = User.objects.filter(
            userprofile__first_name__in=[query]).filter(
                userprofile__groups__in=[group])
        last_name_query1 = User.objects.filter(
            userprofile__last_name__icontains=str(query)).filter(
                userprofile__groups__in=[group])
        last_name_query2 = User.objects.filter(
            userprofile__last_name__in=[query]).filter(
                userprofile__groups__in=[group])
        username_query1 = User.objects.filter(username__in=[query]).filter(
            userprofile__groups__in=[group])
        username_query2 = User.objects.filter(
            username__icontains=str(query)).filter(
                userprofile__groups__in=[group])

        users = first_name_query1.union(first_name_query1, first_name_query2,
                                        last_name_query1, last_name_query2,
                                        username_query1, username_query2)
        return render(request, "groups/searchResult.html", {
            "usersResult": users,
            "query": query,
            "group": group,
            "form": post
        })
    posts = Post.objects.filter(group=group).order_by('-created_at')

    groups = Group.objects.all()
    users_in_group = UserProfile.objects.filter(Q(groups=id))
    request_sent = True
    try:
        GroupRequestJoin.objects.get(requestFrom=request.user,
                                     requestTo=group.owner,
                                     group=group)
    except:
        request_sent = False
    invited = GroupInvite.objects.filter(inviteTo=request.user).filter(
        group=group)

    members = []
    for user in users_in_group:
        members.append(user.user)

    notifyCounter = len(
        Notification.objects.filter(reciever=request.user).filter(read=False))

    return render(
        request, "groups/show.html", {
            "posts": posts,
            "form": post,
            "groups": groups,
            "group": group,
            "users_in_group": members,
            "invited": invited,
            "request_sent": request_sent,
            "notifyCounter": notifyCounter
        })
Ejemplo n.º 49
0
 def get_context_data(self, **kwargs):
     context = super(FormMixin, self).get_context_data(**kwargs)
     context["form_post"] = PostForm()
     return context
Ejemplo n.º 50
0
 def get(self, request):
     message = None
     post_form = PostForm()
     context = {'form': post_form, 'message': message}
     return render(request, 'posts/create_post.html', context)
Ejemplo n.º 51
0
 def get(self, request, *args, **kwargs):
     form = PostForm()
     return render(request, 'create_posts.html', {'form': form})
Ejemplo n.º 52
0
    if request.method == 'POST':
        form = PostForm(request.POST, auto_id=False)
        if form.is_valid():
            slug = form.cleaned_data['slug']
            text = form.cleaned_data['text']
            post = Post(slug=slug, text=text)
            try:
                post.user = request.user
                post.save()
                return redirect('post_detail_view', post.slug)
            except Exception, e:
                messages.error(request, "create post errors: %s" % e)
        else:
            messages.error(request, "form errors: %s" % form.errors)
    else:
        form = PostForm(auto_id=False)
    params.update(form=form)
    return render(request, 'posts/create_post.html', params)


@login_required
def posts_list_view(request):
    params = dict()
    posts = Post.objects.filter(user=request.user, is_enabled=True)
    params.update(posts=posts)
    return render(request, 'posts/posts_list.html', params)


@login_required
def post_detail_view(request, post_slug):
    params = dict()
Ejemplo n.º 53
0
 def get(self, request):
     post_form = PostForm(request.user)
     return render(request, 'new_post.html', {'form': post_form})
Ejemplo n.º 54
0
 def get_context_data(self, **kwargs):
     context = super().get_context_data(**kwargs)
     context['mediaformset'] = PostMediaFormSet()
     context['post_form'] = PostForm()
     return context
Ejemplo n.º 55
0
 def setUpClass(cls):
     super().setUpClass()
     settings.MEDIA_ROOT = tempfile.mkdtemp(dir=settings.BASE_DIR)
     cls.form = PostForm()
Ejemplo n.º 56
0
def wall(request, user_id):
    profile = get_object_or_404(Profile, user=user_id)
    if request.user.profile.has_access(profile.user):
        posts = Post.objects.filter(author=user_id)[:10]
        taboo = False
        if request.user.profile.is_closed:
            black = True
        else:
            black = False
    else:
        taboo = True
        post = False
        black = False
    subscrib = Subscrib.objects.filter(who=user_id)
    subscrib_onme = Subscrib.objects.filter(to=user_id)
    form_com = CommentForm(prefix='comment')
    if user_id == request.user.id:
        form = PostForm()
        form_st = StatusForm(prefix='status')
        if profile.has_unread_notif():
            notif = True
        else:
            notif = False
        context = {
            'post': posts,
            'form': form,
            'profile': profile,
            'subscrib': subscrib,
            'form_st': form_st,
            'notif': notif,
            'form_com': form_com,
            'subscrib_onme': subscrib_onme,
            'taboo': taboo
        }
    else:
        if profile.is_follower(request.user):
            fol = True
        else:
            fol = False
        form_mes = MessageForm()
        form_im = ImageMessageForm()
        curr_subscrib = Subscrib.objects.filter(who=request.user,
                                                to=profile.user)
        if curr_subscrib.exists():
            context = {
                'post': posts,
                'profile': profile,
                'subscrib': subscrib,
                'you_subscribed': True,
                'form_com': form_com,
                'subscrib_onme': subscrib_onme,
                'form_mes': form_mes,
                'form_im': form_im,
                'taboo': taboo,
                'fol': fol,
                'black': black
            }
        else:
            context = {
                'post': posts,
                'profile': profile,
                'subscrib': subscrib,
                'you_subscribed': False,
                'form_com': form_com,
                'subscrib_onme': subscrib_onme,
                'form_mes': form_mes,
                'form_im': form_im,
                'taboo': taboo,
                'fol': fol,
                'black': black
            }
    return render(request, 'root/wall.html', context)
Ejemplo n.º 57
0
 def get_context_data(self, **kwargs):
     form_class = PostForm(self.request.POST or None,
                           instance=Post.objects.get(id=self.object.pk))
     context = super().get_context_data(**kwargs)
     context['form'] = form_class
     return context
Ejemplo n.º 58
0
 def test_empty_form(self):
     form = PostForm(data={})
     assert form.is_valid(
     ) is False, 'Should be invalid if no data is given'
Ejemplo n.º 59
0
def update(request, pk=None):
    instance = get_object_or_404(Post, pk=pk)
    form = PostForm(request.POST or None, instance=instance)
    form_is_valid(form)
    return {'form': form, 'instance': instance, 'form': form}
Ejemplo n.º 60
0
def index(request):
    form = PostForm()
    return render(request, 'index.html', {
        'form': form
    })