Exemple #1
0
def connect():
    flatpages = models.FlatPage.objects.all()
    for f in flatpages:
        roan.purge(f.url).on_save(models.FlatPage)

    palestras = pmodels.Palestra.objects.all()
    for p in palestras:
        roan.purge(p.get_absolute_url()).on_save(pmodels.Palestra)
        roan.purge(p.get_absolute_url()).on_delete(pmodels.Palestra)
        roan.purge(p.get_absolute_url()).on_save(pmodels.Palestrante)
        roan.purge(p.get_absolute_url()).on_delete(pmodels.Palestrante)
Exemple #2
0
    def test_when_the_model_is_saved_the_url_should_be_purged(self):
        purge_url = "http://localhost/purge/polls"
        p = roan.purge("/polls")
        p.requests = mocks.RequestsMock(200, purge_url)
        p.on_save(models.Poll)

        models.Poll.objects.create(title=u'Do you think Roan works well?')
        self.assertTrue(p.requests.done)
Exemple #3
0
    def test_should_be_able_to_purge_an_url_on_delete_a_model_instance(self):
        poll, created = models.Poll.objects.get_or_create(title=u'Do you think Roan should work?')

        purge_url = "http://localhost/purge/polls/%d" % poll.id
        p = roan.purge("/polls/%d" % poll.id)
        p.requests = mocks.RequestsMock(200, purge_url)
        p.on_delete(poll)

        poll.delete()
        self.assertTrue(p.requests.done)
Exemple #4
0
    def test_should_not_purge_on_saving_an_object_that_was_not_connected_to_the_url(self):
        poll, created = models.Poll.objects.get_or_create(title=u'Do you think Roan should work?')

        purge_url = "http://localhost/purge/polls/%d" % poll.id
        p = roan.purge("/polls/%d" % poll.id)
        p.requests = mocks.RequestsMock(200, purge_url)
        p.on_save(poll)

        models.Poll.objects.get_or_create(title=u'What is your favorite car?')
        self.assertFalse(p.requests.done)
Exemple #5
0
    class Meta:
        unique_together = ((u'email', u'status',),)


class Checkout(models.Model):
    codigo = models.CharField(max_length=100)
    participante = models.ForeignKey(Participante)

    def __unicode__(self):
        return "%s (%s - %s)" % (self.codigo, self.participante.nome, self.participante.email)


class Configuracao(models.Model):
    STATUS = (
        (u"fechadas", u"Fechadas (inscrições ainda não abriram)"),
        (u"abertas", u"Inscrições abertas"),
        (u"encerradas", u"Inscrições encerradas"),
    )

    valor_inscricao = models.FloatField(verbose_name=u"Valor da inscrição")
    status = models.CharField(max_length=10, choices=STATUS)

    def __unicode__(self):
        return u"Configuração das inscrições do Dev in Cachu 2012"

    class Meta:
        verbose_name = u"Configuração das inscrições"
        verbose_name_plural = verbose_name

roan.purge("/inscricao/").on_save(Configuracao)
Exemple #6
0
import roan

from django.contrib.auth import models as auth_models
from django.db import models


class Destaque(models.Model):
    titulo = models.CharField(max_length=60)
    conteudo = models.CharField(max_length=500)
    autor = models.ForeignKey(auth_models.User)
    data = models.DateTimeField(auto_now=False, auto_now_add=True)

    def __repr__(self):
        return "<Destaque: %s>" % self.titulo

    def __unicode__(self):
        return self.titulo


class Chamada(Destaque):
    titulo_veja_mais = models.CharField(max_length=40)
    url_link = models.CharField(max_length=255)

    def __repr__(self):
        return "<Chamada: %s>" % self.titulo

roan.purge("/").on_save(Destaque)
roan.purge("/").on_delete(Destaque)
roan.purge("/").on_save(Chamada)
roan.purge("/").on_delete(Chamada)
Exemple #7
0
 def test_purge_should_to_delete_sginal_without_a_weak_reference(self):
     uid = "purge_/_post_delete_%s" % models.Poll._meta.verbose_name
     roan.purge("/").on_delete(models.Poll)
     f = [r[1] for r in signals.post_delete.receivers if r[0][0] == uid][0]
     self.assertNotIsInstance(f, weakref.ref)
Exemple #8
0
 def test_purge_should_connect_to_delete_signal_of_a_model_with_unique_dispatch_uid(self):
     roan.purge("/").on_delete(models.Poll)
     expected_uid = "purge_/_post_delete_%s" % models.Poll._meta.verbose_name
     uuids = [r[0][0] for r in signals.post_delete.receivers]
     self.assertIn(expected_uid, uuids)
Exemple #9
0
 def test_purge_should_receive_and_store_url(self):
     p = roan.purge("/")
     self.assertEquals("/", p.url)
Exemple #10
0
 def test_should_use_default_purge_url_when_ROAN_PURGE_URL_is_not_present(self):
     p = roan.purge("/")
     self.assertEquals("http://localhost/purge", p.purge_url)
Exemple #11
0
 def test_should_remove_the_leading_slash_in_the_ROAN_PURGE_URL_if_its_present(self):
     settings.ROAN_PURGE_URL = "http://google.com.br/purge/"
     p = roan.purge("/")
     self.assertEquals("http://google.com.br/purge", p.purge_url)
Exemple #12
0
 def test_should_store_the_ROAN_PURGE_URL_setting_in_the_object(self):
     settings.ROAN_PURGE_URL = "http://google.com.br/purge"
     p = roan.purge("/")
     self.assertEquals("http://google.com.br/purge", p.purge_url)
Exemple #13
0
 def test_should_store_the_requests_module_in_the_local_object(self):
     p = roan.purge("/")
     self.assertEquals(requests, p.requests)
Exemple #14
0
        nomes = [p.nome for p in palestrantes]
        nomes = ", ".join(nomes)

        if "," in nomes:
            indice = nomes.rfind(",")
            nomes = "%s e %s" % (nomes[:indice], nomes[indice + 2:])

        return nomes

    def __repr__(self):
        return u"<Palestra: %s>" % self.titulo

    def __unicode__(self):
        return self.titulo

    def get_absolute_url(self):
        palestrantes = self.palestrantes.order_by("nome")

        prefixo = "/".join([p.slug for p in palestrantes])

        if prefixo:
            return "/programacao/%s/%s/" % (prefixo, self.slug)

        return "#"


roan.purge("/palestrantes/").on_save(Palestrante)
roan.purge("/palestrantes/").on_delete(Palestrante)
roan.purge("/programacao/").on_save(Palestra)
roan.purge("/programacao/").on_delete(Palestra)