Example #1
0
def save_current_discussion_reply(request, url):
	site = get_object_or_404(GroupSite, Q(id=request.POST['site']) & (Q(random_name=url) | Q(name=url)))
	form = DiscussionReplyForm(request.POST)
	if request.method == 'POST' and form.is_valid() and ygauth.auth_user(request, url, site):
		post = Post(topic=form.cleaned_data['topic'], body=form.cleaned_data['body'])
		if request.user.is_authenticated():
			post.creator = request.user
			post.author = post.creator.first_name
		else:
			post.author = 'Anon'
		post.save()

		if request.user.is_authenticated():
			ReadStatus.objects.filter(Q(topic=form.cleaned_data['topic']) & ~Q(member=request.user)).update(read=False)

		members = MemberInfo.objects.filter(sites=site)
		if members.count > 0:
			email = YakEmail()
			for m in members:
				if request.user.is_authenticated() and request.user.id == m.id:
					continue
				email.add_email(to_addy=m.email, subject=post.topic.title, from_addy=site.get_site_title()+' YakGroup', template='discuss/emailPost.html', context={'topic': post.topic, 'post': post})
			email.send_all_emails()

		
		now = datetime.datetime.today()
		pretty_datetime = make_pretty_datetime(now.date(), now.time())

		post.created = pretty_datetime[1] + " " + pretty_datetime[0]
		post.body = post.body.replace('\n', '<br />')

		post.topic.save()

		return json.to_json_response(post, include=('author', 'created', 'body'))
Example #2
0
def save_new_discussion(request, url):
	site = get_object_or_404(GroupSite, Q(id=request.POST['site']) & (Q(random_name=url) | Q(name=url)))
	topic = get_object_or_404(Topic, id=request.POST['new_discussion_id'], site=site, empty=True)
	form = NewDiscussionForm(request.POST, instance=topic)
	if request.method == 'POST' and form.is_valid() and ygauth.auth_user(request, url, site):
		topic = form.save(commit=False)
		topic.empty = False
		topic.save()
		post = Post(topic=topic, body=form.cleaned_data['body'])
		if request.user.is_authenticated():
			post.creator = request.user
		post.save()
		form.cleaned_data['success'] = True

		members = MemberInfo.objects.filter(sites=site)
		if members.count() > 0:
			email = YakEmail()
			for m in members:
				r = ReadStatus(member=m, topic=topic)
				if request.user.is_authenticated() and m.id == request.user.id:
					r.read = True
				r.save()
				if request.user.is_authenticated() and request.user.id == m.id:
					continue
				email.add_email(to_addy=m.email, subject=topic.title, from_addy=site.get_site_title()+' YakGroup', template='discuss/emailPost.html', context={'topic': topic, 'post': post})
			email.send_all_emails()

		return json.to_json_response(form.cleaned_data)
	else:
		discussion_form = json.render_to_json('discuss/newDiscussion.html', {'form': form, 'site': site.id})
		response = {
			'error_keys': form.errors.keys(),
			'form': discussion_form,
			'success': False
		}

		return json.to_json_response(response)
Example #3
0
	def save(self, url, description):
		"""Save the AddMembersForm instances"""
		#name = self.cleaned_data['first_name']
		#email = self.cleaned_data['email']
		#phone = self.cleaned_data['phone']
		#print len(self.cleaned_data)
		#print url
		yak_email = YakEmail(username="******")
		for i, f in enumerate(self.cleaned_data):
			#print f
			if len(f)>0:
				name = f['first_name']
				email = f['email']
				phone = f['phone']
				
				s = GroupSite.objects.get(Q(random_name=url) | Q(name=url))
				#user = MemberInfo.objects.filter(email=email)
				#print email
				if MemberInfo.objects.filter(email=email).count()!=0:
					user = MemberInfo.objects.get(email=email)
					user.sites.add(s)
					user.first_name = name
					user.phone = phone
					user.save()
				else:
					rex = re.compile(r'\W')
					username = '******' % (rex.sub('_', email), MemberInfo.objects.count())
					user = MemberInfo.objects.create_user(username, email, 'pass')
					user.first_name = name
					user.phone = phone
					user.unique_url = string.join(random.sample(string.lowercase + string.digits, 10), '')
					user.sites.add(s)
					user.save()

				if i == 0 and s.group_leader == 0:
					s.group_leader = user.id
					group_leader = user
					s.save()
				else:
					group_leader = MemberInfo.objects.get(id=s.group_leader)

				context = {
						'group_leader': group_leader,
						'description': description,
						'url': url,
						'user': user,
				}
				yak_email.add_email(to_addy=user.email, subject='Howdy! You have been invited to YakGroups', from_addy='YakGroups Welcome', template='members/welcomeEmail.html', context=context)

#				subject, from_email = 'Howdy! You have been invited to YakGroups', '*****@*****.**'
#				to = user.email
#				text_t = loader.get_template('members/welcomeEmail.html')
#				text_c = Context({
#						'group_leader': group_leader,
#						'description': description,
#						'url': url,
#						'user': user,
#				})
#
#
#				text_content = text_t.render(text_c)
#
#				html_c = Context({'text': text_content})
#				html_t = Template('{{ text|urlize|linebreaksbr }}.')
#
#				html_content = html_t.render(html_c)
#				msg = EmailMultiAlternatives(subject, text_content, from_email, [to])
#				msg.attach_alternative(html_content, "text/html")
#				msg.send()
		yak_email.send_all_emails()