def announce(request): form = AnnouncementForm(request.POST or None) if not request.POST or not form.is_valid(): context = {'form': form, 'user': request.user} return render(request, 'announce/write_message.html', context) # Valid message: send it! users = get_active_members() if form.cleaned_data['to'] != 'all': users = users.filter(paymentinfo__bank_collection_allowed=True)\ .filter(paymentinfo__bank_collection_mode__id=4) for u in users: debt = u.contactinfo.get_debt_for_month(date.today()) if debt == 0: users = users.exclude(pk=u.pk) for user in users: ci = ContactInfo.objects.get(user=user) try: send_mail(form.cleaned_data['subject'], form.cleaned_data['body'], settings.HOS_ANNOUNCE_FROM, [user.email], fail_silently=False) ci.last_email_ok = True ci.save() except smtplib.SMTPException as e: f = open(settings.HOS_ANNOUNCE_LOG, 'a') f.write('\n\n'+user.email) f.write('\n'+repr(e)) ci.last_email_ok = False ci.save() f.close() context = {'form': form, 'user': request.user, 'users': users} return render(request, 'announce/message_sent.html', context)
def announce(request): form = AnnouncementForm(request.POST or None) if not request.POST or not form.is_valid(): context = {'form': form, 'user': request.user} return render(request, 'announce/write_message.html', context) # Valid message: send it! users = get_active_members() if form.cleaned_data['to'] != 'all': users = users.filter(paymentinfo__bank_collection_allowed=True)\ .filter(paymentinfo__bank_collection_mode__id=4) for u in users: debt = u.contactinfo.get_debt_for_month(date.today()) if debt == 0: users = users.exclude(pk=u.pk) for user in users: ci = ContactInfo.objects.get(user=user) try: send_mail(form.cleaned_data['subject'], form.cleaned_data['body'], settings.HOS_ANNOUNCE_FROM, [user.email], fail_silently=False) ci.last_email_ok = True ci.save() except smtplib.SMTPException as e: f = open(settings.HOS_ANNOUNCE_LOG, 'a') f.write('\n\n' + user.email) f.write('\n' + repr(e)) ci.last_email_ok = False ci.save() f.close() context = {'form': form, 'user': request.user, 'users': users} return render(request, 'announce/message_sent.html', context)
def display_main_page(request): events = Event.future.get_n(5) changes = WikiChange.objects.order_by('-updated')[:5] projects = Project.all.order_by('-created_at')[:5] randommembers = list(get_active_members().exclude(contactinfo__image="").order_by('?')[:7]) context = custom_settings_main(request) context.update( {'event_error_id': ' ', 'latestevents': events, 'latestchanges': changes, 'latestprojects': projects, 'randommembers': randommembers} ) return render(request, 'index.html', context)
def handle(self, *args, **kwargs): for user in get_active_members(): user.is_active = True user.save() print(user, user.email)