当前位置: 首页>>代码示例>>Python>>正文


Python EmailRecipient.user方法代码示例

本文整理汇总了Python中myrobogals.rgmessages.models.EmailRecipient.user方法的典型用法代码示例。如果您正苦于以下问题:Python EmailRecipient.user方法的具体用法?Python EmailRecipient.user怎么用?Python EmailRecipient.user使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在myrobogals.rgmessages.models.EmailRecipient的用法示例。


在下文中一共展示了EmailRecipient.user方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: email_message

# 需要导入模块: from myrobogals.rgmessages.models import EmailRecipient [as 别名]
# 或者: from myrobogals.rgmessages.models.EmailRecipient import user [as 别名]
def email_message(email_subject, email_body, chapter):
    message = EmailMessage()
    message.subject = email_subject
    message.body = email_body
    message.from_name = "myRobogals"
    message.from_address = "[email protected]"
    message.reply_address = "[email protected]"
    message.sender = User.objects.get(username='edit')
    message.html = True
    message.email_type = 0

    # Message is set to WAIT mode
    message.status = -1
    message.save()

    # Creates a list of all users to notify
    if chapter.notify_list != None:
        users_to_notify = chapter.notify_list.users.all()

        # Email to all users that need to be notified
        for user in users_to_notify:
            recipient = EmailRecipient()
            recipient.message = message
            recipient.user = user
            recipient.to_name = user.get_full_name()
            recipient.to_address = user.email
            recipient.save()
            message.status = 0
            message.save()
开发者ID:robogals,项目名称:myrobogals,代码行数:31,代码来源:profile_user.py

示例2: genandsendpw

# 需要导入模块: from myrobogals.rgmessages.models import EmailRecipient [as 别名]
# 或者: from myrobogals.rgmessages.models.EmailRecipient import user [as 别名]
def genandsendpw(user, welcomeemail, chapter):
	plaintext_password = User.objects.make_random_password(6)
	user.set_password(plaintext_password)
	user.save()
	
	message = EmailMessage()
	message.subject = welcomeemail['subject']
	try:
		message.body = welcomeemail['body'].format(
			chapter=chapter,
			user=user,
			plaintext_password=plaintext_password)
	except Exception:
		raise RgGenAndSendPwException('Email body contains invalid fields')
	message.from_address = '[email protected]'
	message.reply_address = '[email protected]'
	message.from_name = chapter.name
	message.sender = User.objects.get(username='edit')
	message.html = welcomeemail['html']
	message.status = -1
	message.save()
	recipient = EmailRecipient()
	recipient.message = message
	recipient.user = user
	recipient.to_name = user.get_full_name()
	recipient.to_address = user.email
	recipient.save()
	message.status = 0
	message.save()
开发者ID:CodeMontage,项目名称:myrobogals,代码行数:31,代码来源:functions.py

示例3: save

# 需要导入模块: from myrobogals.rgmessages.models import EmailRecipient [as 别名]
# 或者: from myrobogals.rgmessages.models.EmailRecipient import user [as 别名]
 def save(self, domain_override=None, email_template_name='registration/password_reset_email.html',
          use_https=False, token_generator=default_token_generator):
     """
     Generates a one-use only link for resetting password and sends to the user
     """
     for user in self.users_cache:
         t = loader.get_template(email_template_name)
         c = {
             'email': user.email,
             'uid': int_to_base36(user.id),
             'user': user,
             'token': token_generator.make_token(user),
         }
         message = EmailMessage()
         message.subject = 'Password reset'
         message.body = t.render(Context(c))
         message.from_address = '[email protected]'
         message.reply_address = '[email protected]'
         message.from_name = user.chapter.name
         message.sender = User.objects.get(username='edit')
         message.html = False
         message.status = -1
         message.save()
         recipient = EmailRecipient()
         recipient.message = message
         recipient.user = user
         recipient.to_name = user.get_full_name()
         recipient.to_address = user.email
         recipient.save()
         message.status = 0
         message.save()
开发者ID:CodeMontage,项目名称:myrobogals,代码行数:33,代码来源:forms.py

示例4: cancelvisit

# 需要导入模块: from myrobogals.rgmessages.models import EmailRecipient [as 别名]
# 或者: from myrobogals.rgmessages.models.EmailRecipient import user [as 别名]
def cancelvisit(request, visit_id):
    if not request.user.is_staff:
        raise Http404
    chapter = request.user.chapter
    v = get_object_or_404(SchoolVisit, pk=visit_id)
    if (v.chapter != chapter) and not request.user.is_superuser:
        raise Http404
    if request.method == 'POST':
        cancelform = CancelForm(request.POST, user=request.user, visit=v)
        if cancelform.is_valid():
            data = cancelform.cleaned_data
            message = EmailMessage()
            message.subject = data['subject']
            message.body = data['body']
            message.from_address = request.user.email
            message.reply_address = request.user.email
            message.sender = request.user
            message.html = True
            message.from_name = chapter.name
            message.scheduled = False

            # Don't send it yet until the recipient list is done
            message.status = -1
            # Save to database so we get a value for the primary key,
            # which we need for entering the recipient entries
            message.save()

            # Send to everyone who has been invited
            id_list = EventAttendee.objects.filter(event=v.id, rsvp_status=2).values_list('user_id')
            users = User.objects.filter(id__in=id_list, is_active=True, email_reminder_optin=True)

            for one_user in users:
                recipient = EmailRecipient()
                recipient.message = message
                recipient.user = one_user
                recipient.to_name = one_user.get_full_name()
                recipient.to_address = one_user.email
                recipient.save()

            message.status = 0
            message.save()
            Event.objects.filter(id=v.id).delete()
            messages.success(request, message=unicode(_("Visit cancelled successfully")))
            return HttpResponseRedirect('/teaching/list/')
    else:
        cancelform = CancelForm(None, user=request.user, visit=v)
    return render_to_response('visit_cancel.html', {'cancelform': cancelform, 'visit_id': visit_id},
                              context_instance=RequestContext(request))
开发者ID:robogals,项目名称:myrobogals,代码行数:50,代码来源:eventvisit.py

示例5: welcome_email

# 需要导入模块: from myrobogals.rgmessages.models import EmailRecipient [as 别名]
# 或者: from myrobogals.rgmessages.models.EmailRecipient import user [as 别名]
def welcome_email(request, chapter, u):
    message = EmailMessage()

    try:
        message.subject = chapter.welcome_email_subject.format(
            chapter=chapter,
            user=u,
            plaintext_password=request.POST['password1'])
    except Exception:
        message.subject = chapter.welcome_email_subject

    try:
        message.body = chapter.welcome_email_msg.format(
            chapter=chapter,
            user=u,
            plaintext_password=request.POST['password1'])
    except Exception:
        message.body = chapter.welcome_email_msg

    # Setting defaults
    message.from_address = '[email protected]'
    message.reply_address = '[email protected]'
    message.from_name = chapter.name
    message.sender = User.objects.get(username='edit')
    message.html = chapter.welcome_email_html

    # Setting message to -1 in the DB shows that the message is in WAIT mode
    message.status = -1
    message.save()

    # Prepares message for sending
    recipient = EmailRecipient()
    recipient.message = message
    recipient.user = u
    recipient.to_name = u.get_full_name()
    recipient.to_address = u.email
    recipient.save()

    # Change message to PENIDNG mode, which waits for server to send
    message.status = 0
    message.save()
开发者ID:robogals,项目名称:myrobogals,代码行数:43,代码来源:profile_user.py

示例6: send_mail

# 需要导入模块: from myrobogals.rgmessages.models import EmailRecipient [as 别名]
# 或者: from myrobogals.rgmessages.models.EmailRecipient import user [as 别名]
 def send_mail(self, subject_template_name, email_template_name,
               context, from_email, to_email, html_email_template_name=None):
     body = loader.render_to_string(email_template_name, context)
     message = EmailMessage()
     message.subject = 'Password reset'
     message.body = body
     message.from_address = '[email protected]'
     message.reply_address = '[email protected]'
     message.from_name = context['user'].chapter.name
     message.sender = User.objects.get(username='edit')
     message.html = False
     message.status = -1
     message.save()
     recipient = EmailRecipient()
     recipient.message = message
     recipient.user = context['user']
     recipient.to_name = context['user'].get_full_name()
     recipient.to_address = to_email
     recipient.save()
     message.status = 0
     message.save()
开发者ID:yfcheung,项目名称:myrg,代码行数:23,代码来源:forms.py

示例7: check_default_pass

# 需要导入模块: from myrobogals.rgmessages.models import EmailRecipient [as 别名]
# 或者: from myrobogals.rgmessages.models.EmailRecipient import user [as 别名]
def check_default_pass():
	users = User.objects.all()
	for u in users:
		if check_password("newrg123", u.password):
			message = EmailMessage()
			message.body = "Dear " + u.first_name + ",\n\nYou are recieving this automated email because your myRobogals account is still set to use the default password. This is a security risk and exposes your myRobogals account to potentially being used by others.\n\nPlease login at http://my.robogals.org using the following credentials:\nUsername: " + u.username + "\nPassword: newrg123\n\nOnce you have logged in, please change your password.\n\nThankyou,\n\nmyRobogals password nagging bot :)"
			message.subject = "Warning: Account is using default password"
			message.from_address = "[email protected]"
			message.from_name = "myRobogals"
			message.reply_address = "[email protected]"
			message.html = False
			message.status = -1
			message.sender_id = 168
			message.save()
			recipient = EmailRecipient()
			recipient.message = message
			recipient.user = u
			recipient.to_name = u.get_full_name()
			recipient.to_address = u.email
			recipient.save()
			message.status = 0
			message.save()
开发者ID:CodeMontage,项目名称:myrobogals,代码行数:24,代码来源:check_default_pass.py

示例8: writeemail

# 需要导入模块: from myrobogals.rgmessages.models import EmailRecipient [as 别名]
# 或者: from myrobogals.rgmessages.models.EmailRecipient import user [as 别名]
def writeemail(request):
	memberstatustypes = MemberStatusType.objects.all()
	if not request.user.is_staff:
		raise Http404
	if request.method == 'POST':
		typesel = request.POST['type']
		schedsel = request.POST['scheduling']
		statussel = request.POST['status']
		
		if 'step' in request.POST:
			if request.POST['step'] == '1':
				emailform = WriteEmailForm(request.POST, user=request.user)
				request.session['emailform'] = emailform
			elif request.POST['step'] == '2':
				if 'emailform' not in request.session:
					raise Http404
				emailform = request.session['emailform']
				del request.session['emailform']
			else:
				raise Http404
		else:
			raise Http404
		if emailform.is_valid():
			data = emailform.cleaned_data
			if request.POST['step'] == '2':
				message = EmailMessage()
				message.subject = data['subject']
				message.body = data['body']
				message.from_address = request.user.email
				message.reply_address = request.user.email
				message.sender = request.user
				message.html = True

				if request.POST['scheduling'] == '1':
					message.scheduled = True
					message.scheduled_date = datetime.combine(data['schedule_date'], data['schedule_time'])
					try:
						message.scheduled_date_type = int(data['schedule_zone'])
					except Exception:
						message.scheduled_date_type = 1
				else:
					message.scheduled = False

				if request.POST['type'] == '4':
					n = data['newsletters']
					message.from_name = n.from_name
					message.from_address = n.from_email
					message.reply_address = n.from_email
					message.sender = n.from_user
				else:
					message.content_subtype = "html"
					if int(data['from_type']) == 0:
						message.from_name = "Robogals"
					elif int(data['from_type']) == 1:
						message.from_name = request.user.chapter.name
					else:
						message.from_name = request.user.get_full_name()
					
				# Don't send it yet until the recipient list is done
				message.status = -1
				# Save to database so we get a value for the primary key,
				# which we need for entering the recipient entries
				message.save()

			if request.POST['type'] == '1':
				if request.user.is_superuser:
					# "Email all members worldwide" feature disabled Nov 2010 - too much potential for abuse.
					# Can be re-enabled by uncommenting the following line, commenting the exception,
					# and removing the disabled tag from the relevant radio button in email_write.html
					#users = User.objects.filter(chapter__in=data['chapters'], is_active=True, email_chapter_optin=True)
					raise Exception
				else:
					users = User.objects.filter(chapter=request.user.chapter, is_active=True, email_chapter_optin=True).exclude(email='')
			elif request.POST['type'] == '2':
				if request.user.is_superuser:
					users = User.objects.filter(chapter__in=data['chapters_exec'], is_active=True, is_staff=True).exclude(email='')
				else:
					users = User.objects.filter(chapter=request.user.chapter, is_active=True, is_staff=True).exclude(email='')
			elif request.POST['type'] == '5':
				ul = data['list']
				users = ul.users.all().exclude(email='')
			elif request.POST['type'] == '4':
				if request.user.is_superuser:
					# Special rule for The Amplifier
					if data['newsletters'].pk == 1:
						users = User.objects.filter(is_active=True, email_newsletter_optin=True).exclude(email='')
					else:
						users = User.objects.none()
			else:
				users = data['recipients']

			usersfiltered = []
			if statussel != '0' and request.POST['type'] != '4':
				for one_user in users:
					if one_user.membertype().pk == int(statussel):
						if request.POST['step'] == '1':
							usersfiltered.append(one_user)
						else:
							if str(one_user.pk) in request.POST.keys():
								recipient = EmailRecipient()
#.........这里部分代码省略.........
开发者ID:CodeMontage,项目名称:myrobogals,代码行数:103,代码来源:views.py

示例9: invitetovisit

# 需要导入模块: from myrobogals.rgmessages.models import EmailRecipient [as 别名]
# 或者: from myrobogals.rgmessages.models.EmailRecipient import user [as 别名]
def invitetovisit(request, visit_id):
    if not request.user.is_staff:
        raise Http404
    chapter = request.user.chapter
    v = get_object_or_404(SchoolVisit, pk=visit_id)
    error = ''
    if (v.chapter != chapter) and not request.user.is_superuser:
        raise Http404
    if request.method == 'POST':
        inviteform = InviteForm(request.POST, user=request.user, visit=v)
        if inviteform.is_valid():
            data = inviteform.cleaned_data
            try:
                if data['action'] == '1':
                    message = EmailMessage()
                    message.subject = data['subject']
                    message.body = data['body']
                    message.from_address = request.user.email
                    message.reply_address = request.user.email
                    message.sender = request.user
                    # message.html = v.chapter.invite_email_html
                    message.html = 1
                    message.from_name = chapter.name

                    # Don't send it yet until the recipient list is done
                    message.status = -1
                    # Save to database so we get a value for the primary key,
                    # which we need for entering the recipient entries
                    message.save()

                # Send to all users who haven't opted out of workshop reminders
                if request.POST['type'] == '1':
                    users = User.objects.filter(chapter=chapter, is_active=True, email_reminder_optin=True)
                # Send to chapter committee
                elif request.POST['type'] == '2':
                    users = User.objects.filter(chapter=chapter, is_active=True, is_staff=True)
                # Send to all trained users who haven't opted out of workshop reminders
                elif request.POST['type'] == '4':
                    users = User.objects.filter(chapter=chapter, is_active=True, email_reminder_optin=True,
                                                trained=True)
                # Send to a user list
                elif request.POST['type'] == '5':
                    ul = data['list']
                    users = ul.users.all()
                # Send to specifically selected users
                else:
                    users = data['memberselect']

                for one_user in users:
                    if data['action'] == '1':
                        recipient = EmailRecipient()
                        recipient.message = message
                        recipient.user = one_user
                        recipient.to_name = one_user.get_full_name()
                        recipient.to_address = one_user.email
                        recipient.save()
                    EventAttendee.objects.filter(user=one_user, event=v).delete()
                    ea = EventAttendee()
                    ea.event = v
                    ea.user = one_user
                    if data['action'] == '1':
                        ea.rsvp_status = 1
                    if data['action'] == '2':
                        ea.rsvp_status = 2
                    ea.actual_status = 0
                    ea.save()

                if data['action'] == '1':
                    # Now mark it as OK to send. The email and all recipients are now in MySQL.
                    # A background script on the server will process the queue.
                    message.status = 0
                    message.save()

                if data['action'] == '1':
                    messages.success(request,
                                     message=unicode(_("Invitations have been sent to the selected volunteers")))
                if data['action'] == '2':
                    messages.success(request, message=unicode(_("Selected volunteers have been added as attending")))
                return HttpResponseRedirect('/teaching/' + str(v.pk) + '/')
            except Exception as e:
                error = e.args[0]
    else:
        inviteform = InviteForm(None, user=request.user, visit=v)
    return render_to_response('visit_invite.html', {'inviteform': inviteform, 'visit_id': visit_id, 'error': error},
                              context_instance=RequestContext(request))
开发者ID:robogals,项目名称:myrobogals,代码行数:87,代码来源:eventvisit.py

示例10: importcsv

# 需要导入模块: from myrobogals.rgmessages.models import EmailRecipient [as 别名]
# 或者: from myrobogals.rgmessages.models.EmailRecipient import user [as 别名]
def importcsv(filerows, welcomeemail, defaults, chapter, updateuser, ignore_email):
	columns=None
	users_imported=0
	username_pos=0	
	users_updated=0
	existing_users=0
	existing_emails=0
	count=-1
	username_field_exists_flag=False
	user_already_exists=False
	msg=""
	if 'date_joined' not in defaults:
		defaults['date_joined'] = datetime.now()
	elif defaults['date_joined'] == None:
		defaults['date_joined'] = datetime.now()
	for row in filerows:
		if any(row):
			# Create new user
			newuser = User()
			count+=1
			user_already_exists_flag=False
			# Get column names from first row, also get the positions of the fields so that we can extract their values 
			# using their positions later.
			if (columns == None):
				columns = row
				if 'first_name' not in columns:
					raise RgImportCsvException(_('You must specify a first_name field'))
				else:
					first_name_pos=columns.index('first_name')
					
				if 'last_name' not in columns:
					raise RgImportCsvException(_('You must specify a last_name field'))
				else:
					last_name_pos=columns.index('last_name')
				
				if 'email' not in columns:
					raise RgImportCsvException(_('You must specify an email field'))
				else:
					email_pos = columns.index('email')
					
				if 'username' in columns:
					username_pos=columns.index('username')
					username_field_exists_flag=True
					
				if 'mobile' in columns:
					mobile_pos=columns.index('mobile')

				continue
		
			# Process row
			i = 0;
				
			# extracting the values of the username, email, first_name and last_name fields for each row.
			if username_field_exists_flag:
				uname=row[username_pos]
			else:
				uname = ''
			email=row[email_pos]
			first_name=row[first_name_pos]
			last_name=row[last_name_pos]		
			
			# now remove all the whitespaces from the extracted values.
			uname_data=uname.strip()
			email_data=email.strip()
			first_name_data=first_name.strip()
			last_name_data=last_name.strip()
			
			# check if any of the values is None or empty for a row. If yes, form an error message and ignore that row.
			if first_name_data == None or first_name_data == '':
				msg += ("<br>First name not provided for row %d - row ignored.") % count
				continue
			if last_name_data == None or last_name_data == '' :
				msg += ("<br>Last name not provided for row %d - row ignored.") % count
				continue
			if email_data == None or email_data == '' :
				msg += ("<br>Email not provided for row %d - row ignored.") % count 	
				continue
		
			# check if the username exists, if yes, check if the 'updateuser' checkbox is ticked. If it is ticked, 
			# then get the row with the matching username (and, as we will see, replace its contents). Otherwise, ignore.
			# Also, they must be from the same chapter
			if not check_username(uname_data):
				user_already_exists_flag = True
				if updateuser:
					newuser = User.objects.get(username=uname_data)
					if newuser.chapter == chapter:
						existing_users += 1
					else:
						msg += ("<br>Row %d has a username clash (%s) with another chapter - row ignored") % (count, uname_data)
						continue
				else:
					msg += ("<br>Row %d has a username clash (%s) - row ignored") % (count, uname_data)
					continue

			# check if the email exists for any user, if yes, check if the 'ignore_email' checkbox is ticked. If it is not ticked, 
			# then get the row with the matching username (and, as we will see, replace its contents). Otherwise, ignore.		
			# Also, they must be from the same chapter
			elif not check_email_and_chapter(email_data, chapter):
				existing_emails+=1
				if ignore_email:
#.........这里部分代码省略.........
开发者ID:sammylee12,项目名称:myrobogals,代码行数:103,代码来源:functions.py

示例11: writeemail

# 需要导入模块: from myrobogals.rgmessages.models import EmailRecipient [as 别名]
# 或者: from myrobogals.rgmessages.models.EmailRecipient import user [as 别名]
def writeemail(request):
	memberstatustypes = MemberStatusType.objects.all()
	if not request.user.is_staff:
		raise Http404
	if request.method == 'POST':
		typesel = request.POST['type']
		schedsel = request.POST['scheduling']
		statussel = request.POST['status']
		
		if 'step' in request.POST:
			if request.POST['step'] == '1':
				emailform = WriteEmailForm(request.POST, user=request.user)
				request.session['emailid'] = datetime.utcnow().strftime('%y%m%d%H%M%S')
				request.session['emailform'] = emailform
			elif request.POST['step'] == '2':
				if ('emailform' not in request.session) or ('emailid' not in request.session):
					if 'emailform' in request.session:
						del request.session['emailform']
					if 'emailid' in request.session:
						del request.session['emailid']
					raise Http404
				if request.session['emailid'] != request.POST['emailid']:
					raise Http404
				warning = False
				msg = ''
				maxfilesize = 10
				maxfilesetting = MessagesSettings.objects.filter(key='maxuploadfilesize')
				if maxfilesetting:
					maxfilesize = int(maxfilesetting[0].value)
				for f in request.FILES.getlist('upload_files'):
					if (f.name.__len__() > 70):
						msg += '<br>File name: "' + f.name + '" is longer than 70 characters'
						warning = True
					if (f.size > maxfilesize * 1024*1024):
						msg += '<br>File: "' + f.name + '" is larger than ' + str(maxfilesize) + ' MB'
						warning = True
				if warning:
					del request.session['emailform']
					del request.session['emailid']
					request.user.message_set.create(message=unicode(_('- Can not upload files. Reason(s): %s' % msg)))
					return HttpResponseRedirect('/messages/email/write/')
				emailform = request.session['emailform']
				del request.session['emailform']
				del request.session['emailid']
			else:
				raise Http404
		else:
			raise Http404
		if emailform.is_valid():
			data = emailform.cleaned_data
			if request.POST['step'] == '2':
				message = EmailMessage()
				message.subject = data['subject']
				if data['header_list']:
					hl = data['header_list']
					message.body = hl.upper_body + data['body'] + hl.lower_body
				else:
					message.body = data['body']
				message.from_address = request.user.email
				message.reply_address = request.user.email
				message.sender = request.user
				message.html = True

				if request.POST['scheduling'] == '1':
					message.scheduled = True
					message.scheduled_date = datetime.combine(data['schedule_date'], data['schedule_time'])
					try:
						message.scheduled_date_type = int(data['schedule_zone'])
					except Exception:
						message.scheduled_date_type = 1
				else:
					message.scheduled = False

				if request.POST['type'] == '4':
					n = data['newsletters']
					message.from_name = n.from_name
					message.from_address = n.from_email
					message.reply_address = n.from_email
					message.sender = n.from_user
				else:
					message.content_subtype = "html"
					if int(data['from_type']) == 0:
						message.from_name = "Robogals"
					elif int(data['from_type']) == 1:
						message.from_name = request.user.chapter.name
					else:
						message.from_name = request.user.get_full_name()
					
				# Don't send it yet until the recipient list is done
				message.status = -1
				# Save to database so we get a value for the primary key,
				# which we need for entering the recipient entries
				message.save()

			if request.POST['type'] == '1':
				if request.user.is_superuser:
					# "Email all members worldwide" feature disabled Nov 2010 - too much potential for abuse.
					# Can be re-enabled by uncommenting the following line, commenting the exception,
					# and removing the disabled tag from the relevant radio button in email_write.html
					#users = User.objects.filter(chapter__in=data['chapters'], is_active=True, email_chapter_optin=True)
#.........这里部分代码省略.........
开发者ID:MeidaPoc,项目名称:myrobogals,代码行数:103,代码来源:views.py

示例12: newpost

# 需要导入模块: from myrobogals.rgmessages.models import EmailRecipient [as 别名]
# 或者: from myrobogals.rgmessages.models.EmailRecipient import user [as 别名]
def newpost(request, topic_id):
	request.user.forum_last_act = datetime.datetime.now()
	request.user.save()
	user = request.user
	t = get_object_or_404(Topic, pk=topic_id)
	f = t.forum
	g = f.category
	c = g.chapter
	if (user.is_superuser) or (user.is_staff and ((c == user.chapter) or (c == None))) or ((c == user.chapter) and (g.exec_only == False)) or ((c == None) and (g.exec_only == False)):
		if request.method == 'POST':
			postform = WritePostForm(request.POST)
			if postform.is_valid():
				data = postform.cleaned_data
				postMessage = Post()
				postMessage.topic = t
				postMessage.posted_by = user
				postMessage.message = data['message']
				postMessage.save()
				t.num_views = t.num_views - 1
				t.last_post_time = datetime.datetime.now()
				t.last_post_user = user
				t.save()
				f.last_post_time = datetime.datetime.now()
				f.last_post_user = user
				f.save()
				if 'watch' in request.POST:
					if request.POST['watch'] == '1':
						if not f.watchers.filter(pk=user.pk):
							t.watchers.add(user)
				else:
					if f.watchers.filter(pk=user.pk):
						f.watchers.remove(user)
						for topic in f.topic_set.all():
							if topic != t:
								topic.watchers.add(user)
							else:
								topic.watchers.remove(user)
					else:
						t.watchers.remove(user)
				watchers = (f.watchers.all() | t.watchers.all()).distinct().exclude(pk=request.user.pk)
				if watchers:
					message = EmailMessage()
					message.subject = 'New Post for topic "' + t.subject + '"'
					message.body = 'New post for topic "' + t.subject + '" for forum "' + f.name + '" in category "' + g.name + '"\n\nPost message: (posted by ' + postMessage.posted_by.get_full_name() + ')\n' + postMessage.message
					message.from_name = "myRobogals"
					message.from_address = "[email protected]"
					message.reply_address = "[email protected]"
					message.sender = User.objects.get(pk=1692) #need to change
					message.html = False
					message.email_type = 1
					message.status = -1
					message.save()
					for watcher in watchers:
						recipient = EmailRecipient()
						recipient.message = message
						recipient.user = watcher
						recipient.to_name = watcher.get_full_name()
						recipient.to_address = watcher.email
						recipient.save()
					message.status = 0
					message.save()
			else:
				request.user.message_set.create(message=unicode(_('- The field "Message" can not be empty')))
		else:
			raise Http404
		if 'return' in request.GET:
			return HttpResponseRedirect(request.GET['return'])
		elif 'return' in request.POST:
			return HttpResponseRedirect(request.POST['return'])
		elif c:
			return HttpResponseRedirect('/forums/' + c.myrobogals_url + '/topic/' + str(t.pk) + '/')
		else:
			return HttpResponseRedirect('/forums/' + request.user.chapter.myrobogals_url + '/topic/' + str(t.pk) + '/')
	else:
		raise Http404
开发者ID:CodeMontage,项目名称:myrobogals,代码行数:77,代码来源:views.py

示例13: newtopic

# 需要导入模块: from myrobogals.rgmessages.models import EmailRecipient [as 别名]
# 或者: from myrobogals.rgmessages.models.EmailRecipient import user [as 别名]
def newtopic(request, forum_id):
	request.user.forum_last_act = datetime.datetime.now()
	request.user.save()
	f = get_object_or_404(Forum, pk=forum_id)
	g = f.category
	c = g.chapter
	user = request.user
	if (user.is_superuser) or (user.is_staff and ((c == user.chapter) or (c == None))) or ((c == user.chapter) and (g.exec_only == False)) or ((c == None) and (g.exec_only == False)):
		if request.method == 'POST':
			topicform = NewTopicForm(request.POST)
			if topicform.is_valid():
				data = topicform.cleaned_data
				newTopic = Topic()
				newTopic.forum = f
				newTopic.posted_by = user
				newTopic.subject = data['subject']
				newTopic.last_post_time = datetime.datetime.now()
				newTopic.last_post_user = user
				if Topic.objects.filter(forum=newTopic.forum, subject=newTopic.subject):
					msg = '- A similar topic already exists'
					request.user.message_set.create(message=unicode(_(msg)))
				else:
					newTopic.save()
					postMessage = Post()
					postMessage.topic = newTopic
					postMessage.posted_by = user
					postMessage.message = data['message']
					postMessage.save()
					f.last_post_time = datetime.datetime.now()
					f.last_post_user = user
					f.save()
					watchers = f.watchers.all().exclude(pk=request.user.pk)
					if watchers:
						message = EmailMessage()
						message.subject = 'New Topic: ' + newTopic.subject
						message.body = 'New topic for forum "' + f.name + '" in category "' + g.name +'"\n\nTopic subject: ' + newTopic.subject + ' (started by ' + newTopic.posted_by.get_full_name() + ')\n\nTopic Message:\n' + postMessage.message
						message.from_name = "myRobogals"
						message.from_address = "[email protected]"
						message.reply_address = "[email protected]"
						message.sender = User.objects.get(username='edit')
						message.html = False
						message.email_type = 1
						message.status = -1
						message.save()
						for watcher in watchers:
							recipient = EmailRecipient()
							recipient.message = message
							recipient.user = watcher
							recipient.to_name = watcher.get_full_name()
							recipient.to_address = watcher.email
							recipient.save()
						message.status = 0
						message.save()
			else:
				request.user.message_set.create(message=unicode(_('- The fields "New Topic" and "Message" can not be empty')))
		else:
			raise Http404
		if 'return' in request.GET:
			return HttpResponseRedirect(request.GET['return'])
		elif 'return' in request.POST:
			return HttpResponseRedirect(request.POST['return'])
		elif c:
			return HttpResponseRedirect('/forums/' + c.myrobogals_url + '/forum/' + str(f.pk) + '/')
		else:
			return HttpResponseRedirect('/forums/' + request.user.chapter.myrobogals_url + '/forum/' + str(f.pk) + '/')
	else:
		raise Http404
开发者ID:CodeMontage,项目名称:myrobogals,代码行数:69,代码来源:views.py

示例14: rsvpemail

# 需要导入模块: from myrobogals.rgmessages.models import EmailRecipient [as 别名]
# 或者: from myrobogals.rgmessages.models.EmailRecipient import user [as 别名]
def rsvpemail(request, conf_id):
	# Superuser check
	if not request.user.is_superuser:
		raise Http404
    
	conf = get_object_or_404(Conference, pk=conf_id)
	chapter = request.user.chapter
	
	# Determine if form has been POSTed back
	if request.method == 'POST':
		# Validate email form data
		emailform = EmailAttendeesForm(request.POST, conference=conf, user=request.user)
		if emailform.is_valid():
			data = emailform.cleaned_data
			
			# Set up message
			message = EmailMessage()
			message.subject = data['subject']
			message.body = data['body']
			message.from_address = request.user.email
			message.reply_address = request.user.email
			message.sender = request.user
			message.html = True
			
			if int(data['from_type']) == 0:
				message.from_name = "Robogals"
			elif int(data['from_type']) == 1:
				message.from_name = request.user.chapter.name
			else:
				message.from_name = request.user.get_full_name()
				
			message.scheduled = False
				
			# Don't send it yet until the recipient list is done
			message.status = -1
			# Save to database so we get a value for the primary key,
			# which we need for entering the recipient entries
			message.save()
			
			
			# Start processing recipient list
			# Insert choices for attending, not attending etc here
			if request.POST['invitee_type'] == '1':	# All
				# Using `ConferenceAttendee`
				users = ConferenceAttendee.objects.filter(conference=conf.id)
		
				# Using `User`
				# id_list = ConferenceAttendee.objects.filter(conference=conf.id).values_list('user_id')
				# users = User.objects.filter(id__in = id_list, is_active=True, email_reminder_optin=True).order_by('last_name')
			elif request.POST['invitee_type'] == '2': # Selected
				users = data['memberselect']

			for one_user in users:
				recipient = EmailRecipient()
				recipient.message = message
				recipient.to_address = one_user.email
				
				# Using `ConferenceAttendee`
				recipient.user = one_user.user
				recipient.to_name = one_user.full_name()
				
				# Using `User`
				# recipient.user = one_user
				# recipient.to_name = one_user.get_full_name()

				recipient.save()
			
			# Send message
			message.status = 0
			message.save()
			
			request.user.message_set.create(message=unicode(_("Email sent successfully")))
			return HttpResponseRedirect('/conferences/' + str(conf.pk) + '/')
	else:
		emailform = EmailAttendeesForm(None, conference=conf, user=request.user)
	
	
	# Display email form
	return render_to_response('conf_rsvp_email.html', {'conf': conf, 'emailform': emailform}, context_instance=RequestContext(request))
开发者ID:MeidaPoc,项目名称:myrobogals,代码行数:81,代码来源:views.py

示例15: emailvisitattendees

# 需要导入模块: from myrobogals.rgmessages.models import EmailRecipient [as 别名]
# 或者: from myrobogals.rgmessages.models.EmailRecipient import user [as 别名]
def emailvisitattendees(request, visit_id):
    if not request.user.is_staff:
        raise Http404
    chapter = request.user.chapter
    v = get_object_or_404(SchoolVisit, pk=visit_id)
    if (v.chapter != chapter) and not request.user.is_superuser:
        raise Http404
    if request.method == 'POST':
        emailform = EmailAttendeesForm(request.POST, user=request.user, visit=v)
        if emailform.is_valid():
            data = emailform.cleaned_data

            message = EmailMessage()
            message.subject = data['subject']
            message.body = data['body']
            message.from_address = request.user.email
            message.reply_address = request.user.email
            message.sender = request.user
            message.html = True
            message.from_name = chapter.name
            message.scheduled = False

            # Don't send it yet until the recipient list is done
            message.status = -1
            # Save to database so we get a value for the primary key,
            # which we need for entering the recipient entries
            message.save()

            # Start processing recipient list
            # Send to all invitees
            if request.POST['invitee_type'] == '1':
                id_list = EventAttendee.objects.filter(event=v.id).values_list('user_id')
                users = User.objects.filter(id__in=id_list, is_active=True, email_reminder_optin=True)
            # Send to invitees who have RSVP'd as attending
            elif request.POST['invitee_type'] == '2':
                id_list = EventAttendee.objects.filter(event=v.id, rsvp_status=2).values_list('user_id')
                users = User.objects.filter(id__in=id_list, is_active=True, email_reminder_optin=True)
            # Send to invitees who have RSVP'd as not attending
            elif request.POST['invitee_type'] == '3':
                id_list = EventAttendee.objects.filter(event=v.id, rsvp_status=4).values_list('user_id')
                users = User.objects.filter(id__in=id_list, is_active=True, email_reminder_optin=True)
            # Send to invitees who have yet to RSVP
            elif request.POST['invitee_type'] == '4':
                id_list = EventAttendee.objects.filter(event=v.id, rsvp_status=1).values_list('user_id')
                users = User.objects.filter(id__in=id_list, is_active=True, email_reminder_optin=True)
            # Send to specifically selected users
            elif request.POST['invitee_type'] == '5':
                users = data['memberselect']

            for one_user in users:
                recipient = EmailRecipient()
                recipient.message = message
                recipient.user = one_user
                recipient.to_name = one_user.get_full_name()
                recipient.to_address = one_user.email
                recipient.save()

            message.status = 0
            message.save()

            messages.success(request, message=unicode(_("Email sent succesfully")))
            return HttpResponseRedirect('/teaching/' + str(v.pk) + '/')
    else:
        emailform = EmailAttendeesForm(None, user=request.user, visit=v)
    return render_to_response('visit_email.html', {'emailform': emailform, 'visit_id': visit_id},
                              context_instance=RequestContext(request))
开发者ID:robogals,项目名称:myrobogals,代码行数:68,代码来源:eventvisit.py


注:本文中的myrobogals.rgmessages.models.EmailRecipient.user方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。