Advertisement
Guest User

Untitled

a guest
Apr 24th, 2014
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.74 KB | None | 0 0
  1. from django.contrib.auth.models import User
  2. class Cohort(models.Model) :
  3. cohort_name = models.CharField(max_length=64, primary_key=True)
  4. cohort_description = models.TextField(null=False)
  5. creation_date = models.DateTimeField(default=now)
  6.  
  7. class CohortMembers(models.Model) :
  8. cohort = models.ForeignKey(Cohort)
  9. member = models.ForeignKey(User)
  10. creation_date = models.DateTimeField(default=now)
  11.  
  12. {% for cohort in object_list %}
  13. <a href="./{{ cohort.cohort_name }}/">{{ cohort.cohort_name }}</a>
  14. <!-- list all members of the cohort -->
  15. {% for cohortmember in cohort.cohortmembers_set.all %}
  16. {% if request.user.username == cohortmember.member.username %}
  17. <!-- the user is a member of the cohort, provide a delete button -->
  18. <button>Leave cohort</button>
  19. {% else %}
  20. Some other user called {{ cohortmember.member.username }} is a member.
  21. {% endif %}
  22. {% endfor %}
  23. {% endfor %}
  24.  
  25. # clearly some better python would be to use a django model query, rather
  26. # than iterate over the members, but this encapsulates the basic logic
  27. is_member = False
  28. for cohortmember in cohort.cohortmembers_set.all:
  29. if request.user == cohortmember.member:
  30. is_member = True
  31. if is_member :
  32. # a leave button
  33. else:
  34. # a join button
  35.  
  36. def get_context_data(self, **kwargs) :
  37. context = super(CohortListView, self).get_context_data(**kwargs)
  38. memberships = CohortMembers.objects.filter(member=self.request.user)
  39. cohorts = []
  40. for membership in memberships:
  41. cohorts.append(membership.cohort)
  42. context['memberships'] = cohorts
  43. return context
  44.  
  45. {% for cohort in object_list %}
  46. {% if cohort in memberships %}
  47. <!-- leave button -->
  48. {% else %}
  49. <!-- join button -->
  50. {% endif %}
  51. {% endfor %}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement