Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ===
- Model
- ===
- class CircleContent(models.Model):
- circle = models.ForeignKey(Circle, related_name='content')
- poster = models.ForeignKey(User, related_name = 'created_posts')
- post_time = models.DateTimeField(auto_now_add=True)
- people_to_read = models.ManyToManyField(User, related_name = 'unread_content')
- # parent_content = models.ForeignKey(self, related_name='replies', blank=True)
- poster_cares_about_replies = models.BooleanField(default = False)
- type = models.CharField(max_length=20)
- def show(self):
- return "This method is for the parent class, which is not what we wanted..."
- def announceUnread(self):
- # for (u in self.circle.followers.all()):
- # self.people_to_read.add(u)
- # for (u in self.poster.inner_circle.all()):
- # self.people_to_read.add(u)
- # for (u in self.circle.followers.all()):
- # self.people_to_read.add(u)
- self.people_to_read.add(self.poster)
- class mPost(CircleContent):
- content = models.CharField(max_length=200)
- def show(self):
- return content
- ===
- View
- ===
- from django.http import HttpResponse, HttpResponseRedirect, Http404
- from django.shortcuts import render_to_response, get_object_or_404
- from circles.models import *
- from django.template import loader, RequestContext
- from django.contrib.auth.forms import User
- from django.utils import simplejson
- def browse(request):
- if not request.user.is_authenticated():
- return HttpResponseRedirect('/register')
- try:
- main_circle = request.user.profile.home_circle
- except:
- main_circle = None
- return render_to_response('main.html', {'main_circle': main_circle}, context_instance=RequestContext(request))
- def view_circle(request, circle_id):
- try:
- c = Circle.objects.get(id=circle_id)
- except:
- return render_to_response('error.html', {'error_title': 'Problem with the url!', 'error_message': 'We\'re sorry, but there is no circle corresponding to the page you requested. ID is: ' + circle_id + "."}, context_instance=RequestContext(request))
- else:
- return render_to_response('main.html', {'main_circle' : c}, context_instance=RequestContext(request))
- def construct_circle(request):
- return render_to_response('circles/construct_circle.html', context_instance=RequestContext(request))
- def make_new_circle(request):
- if request.method == 'POST':
- r = {}
- json = simplejson.dumps(r)
- try:
- name = request.POST.__getitem__('name')
- desc = request.POST.__getitem__('description')
- except:
- return HttpResponse(json, mimetype="application/javascript")
- c = Circle(name=name, description=desc)
- c.initialize(request.user)
- json = simplejson.dumps(r)
- return HttpResponse(json, mimetype="application/javascript")
- return render_to_response('main.html', context_instance=RequestContext(request))
- def post_something(request):
- if request.method == 'POST':
- r = {}
- json = simplejson.dumps(r)
- try:
- circle = Circle.objects.get(id=request.POST.__getitem__('circleID'))
- content = request.POST.__getitem__('content')
- except:
- return HttpResponse(json, mimetype="application/javascript")
- else:
- p = mPost(content=content, circle=circle, poster=request.user, type = "Post")
- p.save()
- p.announceUnread()
- json = simplejson.dumps(r)
- return HttpResponse(json, mimetype="application/javascript")
- return render_to_response('main.html', context_instance=RequestContext(request))
- def follow_unfollow_circle(request):
- if request.method == 'POST':
- r = ""
- json = simplejson.dumps(r)
- try:
- circle = Circle.objects.get(pk= request.POST.__getitem__('circleID'))
- except:
- return HttpResponse(json, mimetype="application/javascript")
- if(request.user in circle.followers.all()):
- r="Removed Successfully!"
- circle.followers.remove(request.user)
- else:
- r="Added Successfully!"
- circle.followers.add(request.user)
- json = simplejson.dumps(r)
- return HttpResponse(json, mimetype="application/javascript")
- return render_to_response('main.html', context_instance=RequestContext(request))
- def mark_as_read(request):
- if request.method == 'POST':
- r = ""
- json = simplejson.dumps(r)
- try:
- entry = CircleContent.objects.get(pk= request.POST.__getitem__('circleID'))
- except:
- return HttpResponse(json, mimetype="application/javascript")
- if(request.user in circle.followers.all()):
- r="Removed Successfully!"
- circle.followers.remove(request.user)
- else:
- r="Added Successfully!"
- circle.followers.add(request.user)
- json = simplejson.dumps(r)
- return HttpResponse(json, mimetype="application/javascript")
- return render_to_response('main.html', context_instance=RequestContext(request))
- ===
- Templates
- ===
- {% for ent in main_circle.content.all %}
- {% if ent.type == "Post" %}{% include "subtemplates/show_entry.html" %}{% endif %}
- {% empty %}
- There are no posts right now. Be the first!
- {% endfor %}
- ===
- show_entry.html
- ===
- <div class="entry" entryID="'{{ ent.id }}'">
- <div class="profile-image-lg"><img src={{ user.profile.avatar }} alt="No User Picture" /></div>
- <h4>{{ ent.poster.username }}</h4>
- <div class="entry-text">{{ ent.show }}</div>
- <div class="post-meta">
- Posted: {{ ent.post_time }} <img src="{{STATIC_IMG}}icon-favorites.png" alt="" /> 6 <img src="{{STATIC_IMG}}icon-comments.png" alt="" /> 2 <img src="{{STATIC_IMG}}icon-share.png" alt="" /> Share <a href="#"><img src="{{STATIC_IMG}}button-mute.png" alt="" /></a>
- </div>
- <div class="clear"></div>
- </div>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement