def test_can_delete_added_announcement(self): self.client.login(username='******', password='******') new_announcement = Announcement() new_announcement.save() self.client.post(f'/announcement/delete/{new_announcement.id}/') self.assertEqual(Announcement.objects.count(), 0)
def test_update_view_uses_correct_form(self): self.client.login(username='******', password='******') new_announcement = Announcement() new_announcement.save() response = self.client.get( f'/announcement/update/{new_announcement.id}/') self.assertIsInstance(response.context['form'], AnnouncementForm)
def create_course_announcement(self, request, pk=None): course = self.get_object() announcement_title = request.data.get('title') announcement_body = request.data.get('body') announcement = Announcement(title=announcement_title, body=announcement_body, course=course) announcement.save() return Response(AnnouncementSerializer(announcement).data)
def test_update_uses_proper_template(self): self.client.login(username='******', password='******') new_announcement = Announcement() new_announcement.save() response = self.client.get( f'/announcement/update/{new_announcement.id}/') self.assertTemplateUsed(response, 'update.html')
def test_can_update_announcement(self): self.client.login(username='******', password='******') new_announcement = Announcement() new_announcement.save() self.client.post(f'/announcement/update/{new_announcement.id}/', data={'text': 'Website down'}) updated_announcement = Announcement.objects.get(id=new_announcement.id) self.assertEqual(updated_announcement.text, 'Website down')
def GetAnnouncementDetail(request): announcement = Announcement( pk=request.POST.get('announcementID', None), title=request.POST.get('announcementname', ''), content=request.POST.get('announcementcontent', ''), approved_by_id=request.POST.get('id_approved_by', ''), requested_by_id=request.POST.get('hdn_id_requested_by', ''), ) if not announcement.pk: announcement.pk = None return announcement
def render(self): return render( self._request, 'dashboards/questions.html', {'actions': model_actions(Answer, self._request), 'active_tab': self._id, 'announcements': Announcement.get_for_group_id(self._id)})
def review(request): """Review dashboard for a user, includes activity, announcements, etc.""" return jingo.render( request, 'dashboards/review.html', { 'actions': _actions(Post, request), 'announcements': Announcement.get_site_wide() })
def render_readouts(request, readouts, template, locale=None, extra_data=None, product=None): """Render a readouts, possibly with overview page. Use the given template, pass the template the given readouts, limit the considered data to the given locale, and pass along anything in the `extra_data` dict to the template in addition to the standard data. """ current_locale = locale or request.LANGUAGE_CODE on_default_locale = request.LANGUAGE_CODE == settings.WIKI_DEFAULT_LANGUAGE data = { 'readouts': SortedDict((slug, class_(request, locale=locale, product=product)) for slug, class_ in readouts.iteritems() if class_.should_show_to(request)), 'default_locale': settings.WIKI_DEFAULT_LANGUAGE, 'default_locale_name': LOCALES[settings.WIKI_DEFAULT_LANGUAGE].native, 'current_locale': current_locale, 'current_locale_name': LOCALES[current_locale].native, 'request_locale_name': LOCALES[request.LANGUAGE_CODE].native, 'is_watching_default_approved': ApproveRevisionInLocaleEvent.is_notifying( request.user, locale=settings.WIKI_DEFAULT_LANGUAGE), 'is_watching_other_approved': None if on_default_locale else ApproveRevisionInLocaleEvent.is_notifying( request.user, locale=request.LANGUAGE_CODE), 'is_watching_default_locale': ReviewableRevisionInLocaleEvent.is_notifying( request.user, locale=settings.WIKI_DEFAULT_LANGUAGE), 'is_watching_other_locale': None if on_default_locale else ReviewableRevisionInLocaleEvent.is_notifying( request.user, locale=request.LANGUAGE_CODE), 'is_watching_default_ready': ReadyRevisionEvent.is_notifying(request.user), 'on_default_locale': on_default_locale, 'announce_form': AnnouncementForm(), 'announcements': Announcement.get_for_locale_name(current_locale), 'product': product, 'products': Product.objects.filter(visible=True), } if extra_data: data.update(extra_data) return render(request, 'dashboards/' + template, data)
def review(request): """Review dashboard for a user, includes activity, announcements, etc.""" return jingo.render(request, 'dashboards/review.html', {'actions': _actions(Post, request), 'announcements': Announcement.get_site_wide(), 'dashboard_signature': ReviewDashboard(request).signature})
def questions(request): """Support Forum dashboard for a user""" return jingo.render(request, 'dashboards/questions.html', {'actions': _actions(Answer, request), 'announcements': Announcement.get_site_wide(), 'dashboard_signature': QuestionsDashboard(request).signature})
def test_group_excluded(self): """Announcements in a group are not shown.""" Announcement.objects.create( creator=self.creator, content=self.content, group=Group.objects.all()[0]) eq_(0, Announcement.get_site_wide().count())
def render(self): return render( self._request, 'dashboards/questions.html', { 'actions': model_actions(Answer, self._request), 'active_tab': self._id, 'announcements': Announcement.get_for_group_id(self._id) })
def render(self): return jingo.render( self._request, 'dashboards/questions.html', { 'actions': model_actions(Answer, self._request), 'active_tab': self._id, 'announcements': Announcement.get_site_wide() })
def questions(request): """Support Forum dashboard for a user""" return jingo.render( request, 'dashboards/questions.html', { 'actions': _actions(Answer, request), 'announcements': Announcement.get_site_wide(), 'dashboard_signature': QuestionsDashboard(request).signature })
def questions(request): """Support Forum dashboard for a user, includes activity, announcements, etc.""" return jingo.render( request, 'dashboards/questions.html', { 'actions': _actions(Answer, request), 'announcements': Announcement.get_site_wide() })
def create_for_locale(request): """An ajax view to create a new announcement for the current locale.""" user = request.user locale = Locale.objects.get(locale=request.LANGUAGE_CODE) if not user_can_announce(user, locale): return HttpResponseForbidden() form = AnnouncementForm(request.POST) if form.is_valid(): a = Announcement(creator=user, locale=locale, **form.cleaned_data) a.save() return HttpResponse(json.dumps({'id': a.id}), content_type="application/json") else: return HttpResponse(json.dumps(form.errors), status=400, content_type="application/json")
def test_active(self): """Active announcement shows.""" Announcement.objects.create( creator=self.creator, show_after=datetime.now() - timedelta(days=2), show_until=datetime.now() + timedelta(days=2), content=self.content) eq_(1, Announcement.get_site_wide().count())
def test_get_for_group_name(self): """Announcements for a specific group are shown.""" # Site-wide announcement announcement().save() # Announcement in a group. a = announcement(group=self.group, save=True) group_ann = Announcement.get_for_group_name(self.group.name) eq_(1, group_ann.count()) eq_(a, group_ann[0])
def test_get_for_locale_name(self): """Announcements for a specific locale are shown.""" # Site-wide announcement announcement(save=True) # Announcement in a locale a = announcement(locale=self.locale, save=True) locale_ann = Announcement.get_for_locale_name(self.locale.locale) eq_(1, locale_ann.count()) eq_(a, locale_ann[0])
def test_get_for_group_id(self): """If no groups are passed, nothing is returned.""" # Site-wide announcement announcement().save() # Announcement in a group. a = announcement(group=self.group, save=True) group_ann = Announcement.get_for_group_id(self.group.id) eq_(1, len(group_ann)) eq_(a, group_ann[0])
def test_always_visible(self): """Always visible announcements are shown.""" # This one doesn't show announcement(show_after=datetime.now() + timedelta(days=2)).save() announcement(show_after=datetime.now() - timedelta(days=2), content='stardate 43125').save() site_wide = Announcement.get_site_wide() eq_(1, site_wide.count()) eq_('stardate 43125', site_wide[0].content)
def review(request): """Review dashboard for a user, forum threads, announcements, etc.""" threads = Thread.objects.filter(post__author=request.user).distinct() count = threads.count() threads = threads.select_related("creator", "last_post", "last_post__author") threads = paginate(request, threads, per_page=forum_constants.THREADS_PER_PAGE, count=count) return jingo.render( request, "dashboards/review.html", {"threads": threads, "announcements": Announcement.get_site_wide()} )
def review(request): """Review dashboard for a user, forum threads, announcements, etc.""" threads = Thread.objects.filter(post__author=request.user).distinct() count = threads.count() threads = threads.select_related('creator', 'last_post', 'last_post__author') threads = paginate(request, threads, per_page=forum_constants.THREADS_PER_PAGE, count=count) return render(request, 'dashboards/review.html', { 'threads': threads, 'announcements': Announcement.get_site_wide()})
def render(self): """Locale dashboard for a group.""" locale = self._params.strip() data = {} if locale == settings.WIKI_DEFAULT_LANGUAGE: readouts = GROUP_CONTRIBUTOR_READOUTS else: readouts = GROUP_L10N_READOUTS data['overview_rows'] = partial(overview_rows, locale) data['announcements'] = Announcement.get_for_group_id(self._id) data['active_tab'] = self._id return render_readouts(self._request, readouts, 'group_locale.html', extra_data=data, locale=locale)
def test_get_for_group(self): """Announcements for a specific group are shown.""" # Site-wide announcement Announcement.objects.create(creator=self.creator, content=self.content) # Announcement in our group. group = Group.objects.all()[0] a = Announcement.objects.create( show_after=datetime.now() - timedelta(days=2), creator=self.creator, content=self.content, group=group) group_ann = Announcement.get_for_group(group.name) eq_(1, group_ann.count()) eq_(a, group_ann[0])
def test_always_visible(self): """Always visible announcements are shown.""" Announcement.objects.create( creator=self.creator, show_after=datetime.now() + timedelta(days=2), # Doesn't show content=self.content) Announcement.objects.create( creator=self.creator, show_after=datetime.now() - timedelta(days=2), content='stardate 43125') site_wide = Announcement.get_site_wide() eq_(1, site_wide.count()) eq_('stardate 43125', site_wide[0].content)
def announcement(visible_dates=True, **kwargs): # Pass in visible_dates=False to hide the announcement. if visible_dates: defaults = {'show_after': datetime.now() - timedelta(days=2)} else: defaults = { 'show_after': datetime.now() - timedelta(days=4), 'show_until': datetime.now() - timedelta(days=2) } defaults['content'] = ("*crackles* Captain's log, stardate 43124.5 " "We are doomed.") if 'creator' not in kwargs: defaults['creator'] = user(save=True) defaults.update(kwargs) return Announcement(**defaults)
def review(request): """Review dashboard for a user, forum threads, announcements, etc.""" threads = Thread.objects.filter(post__author=request.user).distinct() count = threads.count() threads = threads.select_related('creator', 'last_post', 'last_post__author') threads = paginate(request, threads, per_page=forum_constants.THREADS_PER_PAGE, count=count) return jingo.render(request, 'dashboards/review.html', { 'threads': threads, 'announcements': Announcement.get_site_wide() })
def render_readouts(request, readouts, template, locale=None, extra_data=None, product=None): """Render a readouts, possibly with overview page. Use the given template, pass the template the given readouts, limit the considered data to the given locale, and pass along anything in the `extra_data` dict to the template in addition to the standard data. """ current_locale = locale or request.LANGUAGE_CODE on_default_locale = request.LANGUAGE_CODE == settings.WIKI_DEFAULT_LANGUAGE data = {'readouts': SortedDict((slug, class_(request, locale=locale, product=product)) for slug, class_ in readouts.iteritems() if class_.should_show_to(request.user)), 'default_locale': settings.WIKI_DEFAULT_LANGUAGE, 'default_locale_name': LOCALES[settings.WIKI_DEFAULT_LANGUAGE].native, 'current_locale': current_locale, 'current_locale_name': LOCALES[current_locale].native, 'request_locale_name': LOCALES[request.LANGUAGE_CODE].native, 'is_watching_default_approved': ApproveRevisionInLocaleEvent.is_notifying( request.user, locale=settings.WIKI_DEFAULT_LANGUAGE), 'is_watching_other_approved': None if on_default_locale else ApproveRevisionInLocaleEvent.is_notifying( request.user, locale=request.LANGUAGE_CODE), 'is_watching_default_locale': ReviewableRevisionInLocaleEvent.is_notifying( request.user, locale=settings.WIKI_DEFAULT_LANGUAGE), 'is_watching_other_locale': None if on_default_locale else ReviewableRevisionInLocaleEvent.is_notifying( request.user, locale=request.LANGUAGE_CODE), 'is_watching_default_ready': ReadyRevisionEvent.is_notifying(request.user), 'on_default_locale': on_default_locale, 'announce_form': AnnouncementForm(), 'announcements': Announcement.get_for_locale_name(current_locale), 'product': product, 'products': Product.objects.filter(visible=True), } if extra_data: data.update(extra_data) return jingo.render(request, 'dashboards/' + template, data)
def test_group_excluded(self): """Announcements in a group are not shown.""" announcement(group=self.group).save() eq_(0, Announcement.get_site_wide().count())
def test_active(self): """Active announcement shows.""" announcement(show_after=datetime.now() - timedelta(days=2), show_until=datetime.now() + timedelta(days=2)).save() eq_(1, Announcement.get_site_wide().count())
def _migrate(self): # Drop all tables print('Dropping tables...') auth.models.User.objects.all().delete() Administrator.objects.all().delete() User.objects.all().delete() Folder.objects.all().delete() Message.objects.all().delete() Announcement.objects.all().delete() ApplyAnnouncement.objects.all().delete() ApplyRoute.objects.all().delete() Comment.objects.all().delete() CommentAnnouncement.objects.all().delete() CommentRoute.objects.all().delete() Day.objects.all().delete() Route.objects.all().delete() StopAnnouncement.objects.all().delete() StopRoute.objects.all().delete() print("Dropping tables OK!") print('Create administrators accounts...') admin1 = auth.models.User.objects.create_superuser(username='******', email='*****@*****.**', password='******') print('Create administrators accounts OK!') print('Create users accounts...') user_account1 = auth.models.User.objects.create_user(username='******', email='*****@*****.**', password='******') user_account2 = auth.models.User.objects.create_user(username='******', email='*****@*****.**', password='******') print('Create users accounts OK!') print('Create administrators...') administrator = Administrator(user_account = admin1) administrator.save() print('Create administrators OK!') print('Create users...') user1 = User(user_account = user_account1,name = "Nombre", surnames = "Apellido1 Apellido2", city = "Sevilla", birthdate = date(1993, 4, 6), phone = "666999888",searchingCar = True) user1.save() user2 = User(user_account = user_account2,name = "Nombre2", surnames = "Apellido1 Apellido2", city = "Sevilla", birthdate = date(1993, 4, 6), phone = "666999888",searchingCar = True) user2.save() print('Create user OK!') print('Create folders...') folder1 = Folder(name = "1", actor = user1) folder1.save() folder2 = Folder(name = "2", actor = user1) folder2.save() folder3 = Folder(name = "3", actor = user1) folder3.save() folder4 = Folder(name = "1", actor = user2) folder4.save() folder5 = Folder(name = "2", actor = user2) folder5.save() folder6 = Folder(name = "3", actor = user2) folder6.save() folder7 = Folder(name = "1", actor = administrator) folder7.save() folder8 = Folder(name = "2", actor = administrator) folder8.save() folder9 = Folder(name = "3", actor = administrator) folder9.save() print('Create folders OK!') print('Create messages...') message1 = Message(subject = "Asunto 1", body = "Este es un mensaje de prueba enviado", folder = folder1, sender = user1, recipient = user2) message1.save() message2 = Message(subject = "Asunto 1", body = "Este es un mensaje de prueba enviado", folder = folder5, sender = user1, recipient = user2) message2.save() print('Create messages OK!') print('Create comments...') comment1 = Comment(subject = "Muy bueno", comment = "Muy buen conductor, totalmente recomendable", rating = 9, referrer = user1, evaluated = user2) comment1.save() comment2 = Comment(subject = "Regular", comment = "Como pasajero deja mucho que desear", rating = 4, referrer = user2, evaluated = user1) comment2.save() print('Create comments OK!') print('Create routes...') route1 = Route(origin = "Alcalá de Guadaíra", destination = "Facultad de Informática", description = "Viaje regular durante 3 meses", kind = "1", seating = 4, unitPrice = 2.00, user = user2) route1.save() route2 = Route(origin = "Arahal", destination = "Isla de la cartuja", description = "Viaje regular durante 6 meses", kind = "1", seating = 4, unitPrice = 2.00, user = user1) route2.save() print('Create routes OK!') print('Create stop routes...') stopRoute1 = StopRoute(stop = "Alcalá de Guadaíra", sequence = 1, route = route2) stopRoute1.save() print('Create stop routes OK!') print('Create days...') day1 = Day(day = 1, departTime = "7:55", returnTime = "14:00", route = route2, active = True) day1.save() day2 = Day(day = 2, departTime = "7:55", returnTime = "14:00", route = route2, active = True) day2.save() day3 = Day(day = 3, departTime = "7:55", returnTime = "14:00", route = route2, active = True) day3.save() day4 = Day(day = 4, departTime = "7:55", returnTime = "14:00", route = route2, active = True) day4.save() day5 = Day(day = 5, departTime = "7:55", returnTime = "14:00", route = route2, active = True) day5.save() day6 = Day(day = 6, route = route2, active = False) day6.save() day7 = Day(day = 7, route = route2, active = False) day7.save() day8 = Day(day = 1, departTime = "7:55", returnTime = "14:00", route = route1, active = True) day8.save() day9 = Day(day = 2, departTime = "7:55", returnTime = "14:00", route = route1, active = True) day9.save() day10 = Day(day = 3, departTime = "7:55", returnTime = "14:00", route = route1, active = True) day10.save() day11 = Day(day = 4, departTime = "7:55", returnTime = "14:00", route = route1, active = True) day11.save() day12 = Day(day = 5, departTime = "7:55", returnTime = "14:00", route = route1, active = True) day12.save() day13 = Day(day = 6, route = route1, active = False) day13.save() day14 = Day(day = 7, route = route1, active = False) day14.save() print('Create days OK!') print('Create applys routes...') applyRoute1 = ApplyRoute(comment = "Buenas, yo entro a las 9 de la mañana y salgo a las dos, te viene bien en Alcalá de Guadaíra?", route= route2, user = user1) applyRoute1.save() print('Create applys routes OK!') print('Create comments routes...') commentRoute1 = CommentRoute(subject = "Buena ruta!", comment = "Muy buen trayecto, excelente conductor", rating = 10, user = user1, route = route2) commentRoute1.save() print('Create comments routes OK!') print('Create announcements ...') announcement1 = Announcement(origin = "Alcalá de Guadaíra", destination = "Facultad de informática", description = "Viaje puntual" , seating = 2, unitPrice = 2, date = datetime(2015, 12, 6, 16, 29, 43, 79043), user = user1) announcement1.save() print('Create announcements OK!') print('Create applys announcements...') applyAnnouncement1 = ApplyAnnouncement(comment = "Buenas, yo entro a las 17:00 de la tarde te viene bien los arcos?", announcement=announcement1, user=user1) applyAnnouncement1.save() print('Create applys announcements OK!') print('Create stops announcements...') stopAnnouncement1 = StopAnnouncement(stop = "Sevilla", sequence = 1, announcement = announcement1) stopAnnouncement1.save() print('Create stops announcements OK!') print('Create comments announcements...') commentAnnouncement1 = CommentAnnouncement(subject = "Buena ruta!", comment = "Muy buen trayecto, excelente conductor", rating = 10, user = user1, announcement = announcement1) commentAnnouncement1.save() print('Create comments announcements OK!')
def index(request): message = get_setting('welcome_msg') title = "Dashboard" icon = "home" announcements = Announcement.latest(3) return locals()
def render(self): return jingo.render(self._request, 'dashboards/questions.html', {'actions': model_actions(Answer, self._request), 'active_tab': self._id, 'announcements': Announcement.get_site_wide()})
def test_default_date(self): announcement = Announcement() announcement.save() self.assertEqual(announcement.date, date.today())
year=2000, cicle=1, ) course.save() # ENROLLMENT_TEST enrollment = Enrollment( student=student, course=course, ) enrollment.save() # ANNOUNCEMENT_TEST announcement = Announcement( title='Test Announcement Title', body='Announcement Test Body', course=course, ) announcement.save() # ASSIGNMENT_TEST assignment = Assignment( title='Assignment Test Title', description='Assignment Test Description', score=100.00, deadline=date.today(), assignment_file='', course=course, student=student, ) assignment.save()
def test_string_representation(self): announcement = Announcement(text='Website down') self.assertEqual(str(announcement), 'Website down')
def questions(request): """Support Forum dashboard for a user, includes activity, announcements, etc.""" return jingo.render(request, 'dashboards/questions.html', {'actions': _actions(Answer, request), 'announcements': Announcement.get_site_wide()})
def test_default_text(self): announcement = Announcement() self.assertEqual(announcement.text, '')