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'))
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)
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()