def create(validated_data): reminder = Reminder() reminder.customer = validated_data['customer'] reminder.message = validated_data.get('message') reminder.scheduled_datetime = validated_data.get('scheduled_datetime') reminder.save() if validated_data.get('phone_number'): customer = validated_data['customer'] customer.phone = validated_data.get('phone_number', customer.phone) customer.save() return reminder
def test_permissions(self): """ Make sure the basic permission things are as-expected. """ c = Client() # a role reminder: users with the role, but not others r = Reminder( reminder_type='ROLE', role='ADVS', unit=Unit.objects.get(slug='cmpt'), date_type='SEM', week=4, weekday=0, person=Person.objects.get(userid='ggbaker'), title='Advisor reminder', content='foo', ) r.save() url = reverse('reminders:view', kwargs={'reminder_slug': r.slug}) c.login_user('ggbaker') resp = c.get(url) self.assertEqual(resp.status_code, 404) c.login_user('dzhao') resp = c.get(url) self.assertEqual(resp.status_code, 200) # a personal reminder: that person only r = Reminder(reminder_type='PERS', date_type='YEAR', month='5', day=31, person=Person.objects.get(userid='ggbaker'), title='Personal reminder', content='### Heading\n\nfoo *bar*', config={'markup': 'markdown'}) r.save() url = reverse('reminders:view', kwargs={'reminder_slug': r.slug}) c.login_user('ggbaker') resp = c.get(url) self.assertEqual(resp.status_code, 200) c.login_user('dzhao') resp = c.get(url) self.assertEqual(resp.status_code, 404) # test the HTML generation while we're here self.assertEqual(r.html_content().replace('\n', ''), '<h3>Heading</h3><p>foo <em>bar</em></p>')
def set_user_updates(user, chat_id, hour, lang): logger.info(_("User updating", chat_id=chat_id)) reminder = Reminder.objects.filter(chat_id=chat_id).first() if reminder is None: reminder = Reminder(chat_id=chat_id) if lang is not None: reminder.lang = lang reminder.hour = hour reminder.save() return
def save_reminder(request): name = request.GET.get('reminder_name') phone_number = request.GET.get('reminder_phone_number') date = request.GET.get('reminder_date') time = request.GET.get('reminder_time') url = request.GET.get('reminder_url') date_combined = date + ' ' + time print(name, phone_number, date_combined, url) reminder = Reminder(name=name, phone_number=phone_number, time=date_combined, link=url) reminder.save() print(reminder.phone_number) return redirect('/main')
def test_message_generation(self): """ Make sure ReminderMessage objects are generated as expected. """ kwargs = {'reminder_type': 'PERS', 'person': Person.objects.get(userid='ggbaker'), 'title': 'Test reminder', 'content': 'foo'} m, d = self._month_day_offset(3) # near future: remindermessage should generate r0 = Reminder(date_type='YEAR', month=m, day=d, **kwargs) r0.save() m, d = self._month_day_offset(-30) # distant past: remindermessage should not generate r1 = Reminder(date_type='YEAR', month=m, day=d, **kwargs) r1.save() m, d = self._month_day_offset(90) # far future: remindermessage should not generate r2 = Reminder(date_type='YEAR', month=m, day=d, **kwargs) r2.save() Reminder.create_all_reminder_messages() rms = list(ReminderMessage.objects.all()) self.assertTrue(len(rms) >= 1) # may be other reminders from fixture objects, depending on run date rm = rms[0] self.assertEqual(rm.reminder, r0) self.assertEqual(rm.sent, False) ReminderMessage.send_all() self.assertEqual(rm.sent, False) # shouldn't send: still in the future
def create_reminders(): from reminders.models import Reminder person = find_person('ggbaker') offering = CourseOffering.objects.get(slug=TEST_COURSE_SLUG) r1 = Reminder(title='New Year', reminder_type='PERS', person=person, content="Happy new year! It's Jan 1.", date_type='YEAR', month=1, day=1) r1.save() r2 = Reminder( title='Start of semester', reminder_type='ROLE', role='SYSA', unit=Unit.objects.get(slug='univ'), content= "The new semester started a while ago, in case you weren't paying attention.", date_type='SEM', week=2, weekday=1, person=person) r2.save() r3 = Reminder( title='Create an exam', reminder_type='INST', course=offering.course, content= "It's probably *almost* time for the final exam.\r\n\r\nCreate it.", date_type='SEM', week=12, weekday=4, person=person) r3.markup = 'markdown' r3.save() r4 = Reminder(title='Deleted reminder', reminder_type='PERS', person=person, content="This has been deleted and shouldn't be visible.", date_type='SEM', week=5, weekday=2, status='D') r4.save() return Reminder.all_objects.all()
def test_permissions(self): """ Make sure the basic permission things are as-expected. """ c = Client() # a role reminder: users with the role, but not others r = Reminder(reminder_type='ROLE', role='ADVS', unit=Unit.objects.get(slug='cmpt'), date_type='SEM', week=4, weekday=0, person=Person.objects.get(userid='ggbaker'), title='Advisor reminder', content='foo',) r.save() url = reverse('reminders:view', kwargs={'reminder_slug': r.slug}) c.login_user('ggbaker') resp = c.get(url) self.assertEqual(resp.status_code, 404) c.login_user('dzhao') resp = c.get(url) self.assertEqual(resp.status_code, 200) # a personal reminder: that person only r = Reminder(reminder_type='PERS', date_type='YEAR', month='5', day=31, person=Person.objects.get(userid='ggbaker'), title='Personal reminder', content='### Heading\n\nfoo *bar*', config={'markup': 'markdown'}) r.save() url = reverse('reminders:view', kwargs={'reminder_slug': r.slug}) c.login_user('ggbaker') resp = c.get(url) self.assertEqual(resp.status_code, 200) c.login_user('dzhao') resp = c.get(url) self.assertEqual(resp.status_code, 404) # test the HTML generation while we're here self.assertEqual(r.html_content().replace('\n', ''), '<h3>Heading</h3><p>foo <em>bar</em></p>')
def cloudStorage(request): if request.method == "POST": company_name = request.POST['company_name'] expire_date =request.POST['expire_date'] if Reminder.objects.filter(user=request.user, company_name=company_name).exists(): storage = messages.get_messages(request) storage.used = True messages.error(request, 'You have already set a reminder for this.You can view it in your dashboard') return redirect('cloudStorage') reminder = Reminder(company_name=company_name, expire_date=expire_date, user=request.user) reminder.save() storage = messages.get_messages(request) storage.used = True messages.success(request, 'Reminder was added successfully') return redirect('cloudStorage') return render(request, 'pages/cloudStorage.html')
def send_period_reminders(event_ids, sendsms=False, turn_off_reminders=False, mailgun_campaign_id=None): """ takes a Period object uses the Period to get appointments and then send reminders """ appointments = Appointment.objects.filter(event__id__in=event_ids).exclude(no_reminders=True).distinct() if appointments: for appointment in appointments: sent_email = False sent_sms = False if appointment.client.phone and sendsms and getattr(settings, 'SENDSMS', False): if appointment.customer.send_sms: if appointment.venue.send_sms: send_sms_reminder(appointment) sent_sms = True if appointment.client.email: if appointment.customer.send_email: if appointment.venue.send_email: send_email_reminder(appointment, mailgun_campaign_id) sent_email = True if True in [sent_email, sent_sms]: if turn_off_reminders: appointment.no_reminders = True appointment.save() if appointment.status != Appointment.CONFIRMED and appointment.status != Appointment.CANCELED: appointment.status = Appointment.NOTIFIED appointment.save() reminder = Reminder( customer=appointment.customer, appointment=appointment, client_name=appointment.client.get_full_name(), appointment_time=timezone.localtime(appointment.event.start), sent_email=sent_email, sent_sms=sent_sms ) reminder.save()
def create_reminders(): from reminders.models import Reminder person = find_person('ggbaker') offering = CourseOffering.objects.get(slug=TEST_COURSE_SLUG) r1 = Reminder(title='New Year', reminder_type='PERS', person=person, content="Happy new year! It's Jan 1.", date_type='YEAR', month=1, day=1) r1.save() r2 = Reminder(title='Start of semester', reminder_type='ROLE', role='SYSA', unit=Unit.objects.get(slug='univ'), content="The new semester started a while ago, in case you weren't paying attention.", date_type='SEM', week=2, weekday=1, person=person) r2.save() r3 = Reminder(title='Create an exam', reminder_type='INST', course=offering.course, content="It's probably *almost* time for the final exam.\r\n\r\nCreate it.", date_type='SEM', week=12, weekday=4, person=person) r3.markup = 'markdown' r3.save() r4 = Reminder(title='Deleted reminder', reminder_type='PERS', person=person, content="This has been deleted and shouldn't be visible.", date_type='SEM', week=5, weekday=2, status='D') r4.save() return Reminder.all_objects.all()
def test_message_generation(self): """ Make sure ReminderMessage objects are generated as expected. """ kwargs = { 'reminder_type': 'PERS', 'person': Person.objects.get(userid='ggbaker'), 'title': 'Test reminder', 'content': 'foo' } m, d = self._month_day_offset( 3) # near future: remindermessage should generate r0 = Reminder(date_type='YEAR', month=m, day=d, **kwargs) r0.save() m, d = self._month_day_offset( -30) # distant past: remindermessage should not generate r1 = Reminder(date_type='YEAR', month=m, day=d, **kwargs) r1.save() m, d = self._month_day_offset( 90) # far future: remindermessage should not generate r2 = Reminder(date_type='YEAR', month=m, day=d, **kwargs) r2.save() Reminder.create_all_reminder_messages() rms = list(ReminderMessage.objects.all()) self.assertTrue( len(rms) >= 1 ) # may be other reminders from fixture objects, depending on run date rm = rms[0] self.assertEqual(rm.reminder, r0) self.assertEqual(rm.sent, False) ReminderMessage.send_all() self.assertEqual(rm.sent, False) # shouldn't send: still in the future