def discussions(request, action=None, id=None): """ Handle discussions. """ ctx = { 'title': 'Discussions » PizzaHackers - Doers of NIT Jamshedpur', 'description': 'PizzaHackers is the doer community of NIT Jamshedpur.' } if request.method == 'POST': fields = ['title', 'description', 'tags'] data = request.POST.dict() if data.has_key('id'): discussion = get_object_or_404(Discussion, id=data['id']) else: discussion = Discussion(hacker=request.user.hacker) for field in fields: setattr(discussion, field, data[field]) try: discussion.save() except Exception, e: ctx['error'] = e return render(request, 'discussions_edit.html', ctx) return redirect(request.META['HTTP_REFERER'])
def test_parse_discussion(self): response = u'''{"discussion": { "attrs": {"flags": "c,l,s"}, "creation_date": "2013-10-12 14:29:26", "last_activity_date": "2013-10-12 14:29:26", "last_user_access_date": "2013-10-12 14:29:26", "like_count": 1, "liked_it": false, "message": "Topic in the {group:47241470410797}Кока-Кола{group} group", "new_comments_count": 0, "object_id": "62190641299501", "object_type": "GROUP_TOPIC", "owner_uid": "163873406852", "ref_objects": [{"id": "47241470410797", "type": "GROUP"}], "title": "Кока-Кола один из спонсоров Олимпиады в Сочи. Хотелось бы видеть фото- и видео- репортажи с Эстафеты олимпийского огня !", "total_comments_count": 137}, "entities": {"groups": [{"main_photo": {"id": "507539161645", "pic128x128": "http://itd0.mycdn.me/getImage?photoId=507539161645&photoType=23&viewToken=a6WsJVtOYvuLUbMSMQVMGg", "pic50x50": "http://groupava2.mycdn.me/getImage?photoId=507539161645&photoType=4&viewToken=a6WsJVtOYvuLUbMSMQVMGg", "pic640x480": "http://dg54.mycdn.me/getImage?photoId=507539161645&photoType=0&viewToken=a6WsJVtOYvuLUbMSMQVMGg"}, "name": "Кока-Кола", "uid": "47241470410797"}], "themes": [{"id": "62190641299501", "title": "Кока-Кола один из спонсоров Олимпиады в Сочи. Хотелось бы видеть фото- и видео- репортажи с Эстафеты олимпийского огня !"}], "users": [{"first_name": "Любовь", "gender": "female", "last_name": "Гуревич", "pic128x128": "http://umd2.mycdn.me/getImage?photoId=432276861828&photoType=6&viewToken=P_qCWfSCiGBGVoiqWQMgsw", "pic50x50": "http://i508.mycdn.me/getImage?photoId=432276861828&photoType=4&viewToken=P_qCWfSCiGBGVoiqWQMgsw", "pic640x480": "http://uld9.mycdn.me/getImage?photoId=432276861828&photoType=0&viewToken=P_qCWfSCiGBGVoiqWQMgsw", "uid": "163873406852"}]}}''' instance = Discussion() instance.parse(json.loads(response)) instance.save() self.assertEqual(instance.id, 62190641299501) self.assertEqual(instance.object_type, 'GROUP_TOPIC') self.assertEqual(instance.message, u"Topic in the {group:47241470410797}Кока-Кола{group} group") self.assertEqual(instance.title, u"Кока-Кола один из спонсоров Олимпиады в Сочи. Хотелось бы видеть фото- и видео- репортажи с Эстафеты олимпийского огня !") self.assertEqual(instance.new_comments_count, 0) self.assertEqual(instance.comments_count, 137) self.assertEqual(instance.likes_count, 1) self.assertEqual(instance.liked_it, False) self.assertEqual(instance.author, User.objects.get(pk=163873406852)) self.assertEqual(instance.owner, Group.objects.get(pk=47241470410797)) self.assertTrue(isinstance(instance.last_activity_date, datetime)) self.assertTrue(isinstance(instance.last_user_access_date, datetime)) self.assertTrue(isinstance(instance.date, datetime)) self.assertTrue(isinstance(instance.entities, dict)) self.assertTrue(isinstance(instance.attrs, dict))
def discussion_create(request): """ Page to create a discussion. """ if request.method == "POST": course = get_object_or_404(Course, name=request.POST['course_name']) name = request.POST['name'] size = request.POST['size'] organizer = request.user # TODO respect user selected time event_datetime = datetime.now() # no information for location or attendees yet discussion = Discussion(course=course, organizer=organizer, name=name, size=size, datetime=event_datetime) discussion.save() return HttpResponseRedirect(discussion.id) else: # Get page here return render(request, 'class_discuss_site/discussions_create.html', {})