Advertisement
Guest User

Untitled

a guest
Jul 27th, 2017
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.63 KB | None | 0 0
  1. ===
  2. Model
  3. ===
  4.  
  5. class CircleContent(models.Model):
  6. circle = models.ForeignKey(Circle, related_name='content')
  7. poster = models.ForeignKey(User, related_name = 'created_posts')
  8. post_time = models.DateTimeField(auto_now_add=True)
  9.  
  10. people_to_read = models.ManyToManyField(User, related_name = 'unread_content')
  11.  
  12. # parent_content = models.ForeignKey(self, related_name='replies', blank=True)
  13.  
  14. poster_cares_about_replies = models.BooleanField(default = False)
  15.  
  16. type = models.CharField(max_length=20)
  17.  
  18. def show(self):
  19. return "This method is for the parent class, which is not what we wanted..."
  20.  
  21. def announceUnread(self):
  22. # for (u in self.circle.followers.all()):
  23. # self.people_to_read.add(u)
  24. # for (u in self.poster.inner_circle.all()):
  25. # self.people_to_read.add(u)
  26. # for (u in self.circle.followers.all()):
  27. # self.people_to_read.add(u)
  28.  
  29. self.people_to_read.add(self.poster)
  30.  
  31. class mPost(CircleContent):
  32. content = models.CharField(max_length=200)
  33.  
  34. def show(self):
  35. return content
  36.  
  37.  
  38. ===
  39. View
  40. ===
  41.  
  42.  
  43. from django.http import HttpResponse, HttpResponseRedirect, Http404
  44. from django.shortcuts import render_to_response, get_object_or_404
  45. from circles.models import *
  46. from django.template import loader, RequestContext
  47. from django.contrib.auth.forms import User
  48. from django.utils import simplejson
  49.  
  50. def browse(request):
  51. if not request.user.is_authenticated():
  52. return HttpResponseRedirect('/register')
  53. try:
  54. main_circle = request.user.profile.home_circle
  55. except:
  56. main_circle = None
  57.  
  58. return render_to_response('main.html', {'main_circle': main_circle}, context_instance=RequestContext(request))
  59.  
  60. def view_circle(request, circle_id):
  61. try:
  62. c = Circle.objects.get(id=circle_id)
  63. except:
  64. 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))
  65. else:
  66. return render_to_response('main.html', {'main_circle' : c}, context_instance=RequestContext(request))
  67.  
  68.  
  69. def construct_circle(request):
  70. return render_to_response('circles/construct_circle.html', context_instance=RequestContext(request))
  71.  
  72.  
  73. def make_new_circle(request):
  74. if request.method == 'POST':
  75. r = {}
  76. json = simplejson.dumps(r)
  77. try:
  78. name = request.POST.__getitem__('name')
  79. desc = request.POST.__getitem__('description')
  80. except:
  81. return HttpResponse(json, mimetype="application/javascript")
  82. c = Circle(name=name, description=desc)
  83. c.initialize(request.user)
  84. json = simplejson.dumps(r)
  85. return HttpResponse(json, mimetype="application/javascript")
  86.  
  87. return render_to_response('main.html', context_instance=RequestContext(request))
  88.  
  89.  
  90.  
  91.  
  92. def post_something(request):
  93. if request.method == 'POST':
  94. r = {}
  95. json = simplejson.dumps(r)
  96. try:
  97. circle = Circle.objects.get(id=request.POST.__getitem__('circleID'))
  98. content = request.POST.__getitem__('content')
  99. except:
  100. return HttpResponse(json, mimetype="application/javascript")
  101. else:
  102. p = mPost(content=content, circle=circle, poster=request.user, type = "Post")
  103. p.save()
  104. p.announceUnread()
  105. json = simplejson.dumps(r)
  106. return HttpResponse(json, mimetype="application/javascript")
  107.  
  108. return render_to_response('main.html', context_instance=RequestContext(request))
  109.  
  110. def follow_unfollow_circle(request):
  111. if request.method == 'POST':
  112. r = ""
  113. json = simplejson.dumps(r)
  114. try:
  115. circle = Circle.objects.get(pk= request.POST.__getitem__('circleID'))
  116. except:
  117. return HttpResponse(json, mimetype="application/javascript")
  118.  
  119. if(request.user in circle.followers.all()):
  120. r="Removed Successfully!"
  121. circle.followers.remove(request.user)
  122. else:
  123. r="Added Successfully!"
  124. circle.followers.add(request.user)
  125.  
  126. json = simplejson.dumps(r)
  127. return HttpResponse(json, mimetype="application/javascript")
  128.  
  129. return render_to_response('main.html', context_instance=RequestContext(request))
  130.  
  131.  
  132. def mark_as_read(request):
  133. if request.method == 'POST':
  134. r = ""
  135. json = simplejson.dumps(r)
  136. try:
  137. entry = CircleContent.objects.get(pk= request.POST.__getitem__('circleID'))
  138. except:
  139. return HttpResponse(json, mimetype="application/javascript")
  140.  
  141. if(request.user in circle.followers.all()):
  142. r="Removed Successfully!"
  143. circle.followers.remove(request.user)
  144. else:
  145. r="Added Successfully!"
  146. circle.followers.add(request.user)
  147.  
  148. json = simplejson.dumps(r)
  149. return HttpResponse(json, mimetype="application/javascript")
  150.  
  151. return render_to_response('main.html', context_instance=RequestContext(request))
  152.  
  153.  
  154.  
  155.  
  156. ===
  157. Templates
  158. ===
  159.  
  160. {% for ent in main_circle.content.all %}
  161. {% if ent.type == "Post" %}{% include "subtemplates/show_entry.html" %}{% endif %}
  162. {% empty %}
  163. There are no posts right now. Be the first!
  164. {% endfor %}
  165.  
  166.  
  167. ===
  168. show_entry.html
  169. ===
  170.  
  171. <div class="entry" entryID="'{{ ent.id }}'">
  172.  
  173. <div class="profile-image-lg"><img src={{ user.profile.avatar }} alt="No User Picture" /></div>
  174.  
  175. <h4>{{ ent.poster.username }}</h4>
  176.  
  177. <div class="entry-text">{{ ent.show }}</div>
  178.  
  179. <div class="post-meta">
  180. 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>
  181.  
  182. </div>
  183.  
  184. <div class="clear"></div>
  185.  
  186. </div>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement