josircg / raizcidadanista

Sistema de Gerenciamento da Raiz Cidadanista
http://www.raiz.org.br
GNU General Public License v3.0
1 stars 2 forks source link

Páginas dos Círculos #73

Open josircg opened 8 years ago

josircg commented 8 years ago

Iremos permitir que os círculos tenham suas próprias páginas no site. A Home do Círculo terá um layout diferente pois mostrará o nome da seção, a descrição da seção e os artigos associados à seção no mesmo layout em boxes (igual temos na Home).

Também teremos que montar um proxy da tela de artigos que mostre apenas os artigos criados pelo círculo.

1) Criar os campos circulo.section e circulo.url que terá a seção associada ao círculo e a url da página.

2) Na página do círculo, criar um botão "Criar página do Círculo" que irá:

2.1) caso não exista circulo.section, criar uma instância em cms.seção com o mesmo nome do círculo e associar a seção criada a círculo.section. 2.2) Caso o círculo tenha imagem, montar HTML com a imagem em section.header 2.3) associar a instância da seção ao cms.tipogrupo='Círculos'. 2.4) criar um URLMigration /[url] para /section/[url] 2.5) emitir a mensagem "Página criada. Clique aqui para inserir o seu primeiro artigo" com o link para o proxy a ser criado no item 3)

3) Criar um admin na app de cadastro que traga apenas os artigos que estejam associados aos círculos dos quais o usuário é administrador.

A tela de edição edição do artigo deve ser uma cópia do PowerPost mas mostrar também um combobox com as seções dos círculos dos quais o usuário é administrador.

4) Novo template para mostrar as seções que tenham o atributo tipo de grupo = 'Círculos'. Esse template mostrará o Header

leonardocsantoss commented 8 years ago

1) Coloquei para que o campo url seja preenchido automaticamente com o slug do título, não sendo possível alterá-lo.

2.3) O GroupType tem um associação com o Group e não com o Section. Não entendi qual o propósito desse item.

3) No django 1.4 tem um erro ao criar as permissões de um proxy quando proxy é de outro app. Ele acaba ficando com o Titulo do app original. Desta forma, você vai ver que lá nas permissões tem duas vezes cms | Artigo | Can add Artigo, a do proxy é a segunda.

4) A ideia foi criar o campo Section.template, criar o template section-circulo.html e quando criar o Section pela rotina de "Criar página do Círculo" associar o Section.template = 'section-circulo.html'. Na view do section, se o campo template estiver preenchido o Section é renderizado nele.

josircg commented 8 years ago

2.1) a URL tem que ficar habilitada para o usuário colocar o que ele quiser. Tem só que verificar se ela já não foi definida para outro círculo e se ela for alterada, deve-se alterar no Section e no URLMigrate também associados.

2.2) A campo de imagem não está aparecendo para o Administrador.

2.3) Era só para definir o template. Com a nova configuração do section, não é mais necessário.

3) A tela de edição não está trazendo o editor HTML automaticamente e duplicando os < p >< /p > a cada gravação.

4) O template tem que pegar abrir a imagem toda.

http://teste.raiz.org.br/section/rio-de-janeiro/

Pode retirar o box inteiro. Deixe a imagem purinha e o nome do grupo sobre a imagem. Igualzinho temos nos grupos do Facebook:

https://www.facebook.com/raizcidadanistarj/

5) Se no texto do artigo só houver um link, o Leia Mais deve ir direto para o link. Essa modificação também deve ir para o PowerCMS.

leonardocsantoss commented 8 years ago

2.1) 2.2) 3) 4) Ajustado!

5) Me dá um exemplo de um artigo apenas com um link. Vou precisar fazer uma expressão regular para verificar se entre as tags só tem um link.

josircg commented 8 years ago

3) As novas permissões não aparecem na seleção dos grupos:

http://teste.raiz.org.br/admin/auth/group/9/

Faça o login como Josir:

http://teste.raiz.org.br/admin/cadastro/circulo/1/

e tente acessar os artigos do grupo. Dá erro de permissão.

5) Segue o exemplo para criarmos o link:

http://teste.raiz.org.br/admin/cadastro/articlecadastro/161/

Vamos azucrinar e criar uma função igual ao do Facebook.

6) Ao gravar um evento do círculo, adicionar também na seção do círculo caso exista.

leonardocsantoss commented 8 years ago

3) Resolvido. Faltou rodar o syncdb com o --all para ele criar as permissões que faltava.

5) A ideia foi criar uma expressão regular que encontre a url no padrão ^<p>URL</p>$, onde ^ é o início da string e $ é o fim. Tudo isso é feito no get_absolute_url, que é a função responsável por retornar a url do artigo. Caso a expressão seja encontrada eu retorno ela, dessa forma, quando o usuário clicar em qualquer link do artigo, ele vai redirecionar para a url cadastrada.

6) Resolvido.

josircg commented 8 years ago

5) A gente tem que fazer com que fique mais intuitivo para o usuário.

Faça o login como josir. Aparecem 2 menus de "Artigos". Um é o que o cara sugerir para a página principal e o segundo são os artigos do círculo. O usuário vai ficar perdido.

Acho mais produtivo:

Para simular o post que hoje existe no Facebook. O formulário de cadastro do Artigo tem que ser modificado também:

5.1) Temos que começar abrindo um option box para ele selecionar se ele quer cadastrar um link ou um artigo.

5.2) Se for link, abrir apenas o campo de conteúdo (sem o editor HTML) para que o usuário possa digitar/colar o link. Ao salvar o registro, montar o artigo a partir do HTML da página associada ao link. Se basear nas regras abaixo:

http://stackoverflow.com/questions/7524585/how-do-i-get-the-information-from-a-meta-tag-with-javascript

5.3) Se for link, abrir o formulário de edição tradicional. Garantir que o slug estará sempre preenchido.

5.4) No render da chamada do artigo, se slug estiver em branco usar o link gravado no content, ou seja, não é necessário fazer o regex pois o conteúdo terá sempre apenas uma URL.

leonardocsantoss commented 8 years ago

Em andamento...

leonardocsantoss commented 7 years ago

5) A Ideia foi permanecer usando o admin para fazer o cadastro. 5.1) 5.2) 5.3) 5.4) Como o slug não pode ficar em branco, a ideia foi colocar ele igual ao id, então se slug==id saberei que é o cadastro de url.

josircg commented 7 years ago

1) Ficou faltando tratar o Leia mais. Veja o exemplo de:

http://teste.raiz.org.br/section/rio-de-janeiro/

O primeiro box deveria levar direto para o link.

2) Tentei cadastrar um novo link, deu erro:

Request Method: POST Request URL: http://teste.raiz.org.br/admin/cadastro/articlecadastro/add/ Django Version: 1.4.22 Exception Type: AttributeError Exception Value:
'Cursor' object has no attribute '_last_executed'

Tentei cadastrar esse link: http://oglobo.globo.com/rio/juiza-proibe-operacoes-policiais-noturnas-em-casas-da-mare-19614846#ixzz4D5oGfWot

leonardocsantoss commented 7 years ago

1) Corrigido. 2) Corrigido. Ex.: http://teste.raiz.org.br/admin/cadastro/articlecadastro/165/

josircg commented 7 years ago

Seria importante trazer a figura da tag og: igual o Facebook e Google Plus fazem. Por exemplo, clique em compartilhar nesse artigo do Globo é peça o G+ - ele traz a imagem que está definida no post. A gente tinha que criar um link na chamada para essa imagem.

leonardocsantoss commented 7 years ago

Já havia implementado isso, o problema era só na visualização do artigo na tela da seção. Ex.: http://teste.raiz.org.br/section/rio-de-janeiro/

josircg commented 7 years ago

Tá dando erro: http://teste.raiz.org.br/section/rio-de-janeiro/

leonardocsantoss commented 7 years ago

Ajustado.

josircg commented 7 years ago

2.1) na criação da seção, o título da seção deve ser o nome do círculo e o slug deve ser o circulo.URL

leonardocsantoss commented 7 years ago

Ajustado. O título já estava faltava só a url.

josircg commented 7 years ago

Ainda não está funcionando...

Fiz o login com http://www.raiz.org.br/admin/auth/user/3/

Cadastrei o artigo e quando dei salvar, deu erro: http://www.raiz.org.br/admin/cadastro/articlecadastro/231/

Inclui manualmente a seção do Rio de Janeiro e depois tentei acessar pela página:

Mas o sistema incluiu o

Se eu tento editar via Admin:

http://www.raiz.org.br/admin/cms/article/power/231/

Ele não deixa gravar.

leonardocsantoss commented 7 years ago
  1. Precisa adicionar as permissões de Adicionar, Editar e Remover Artigo da Seção.
  2. Adicionei uma validação para quando o usuário marcar como link ele validar o conteúdo como link, não possibilitando salvar o artigo, desta forma, não causando mais esse erro.
  3. Os artigos do Círculo devem ser sempre acessados pela tela de "Artigos dos Grupos". http://www.raiz.org.br/admin/cadastro/articlecadastro/231/
  4. Lembrar sempre de adicionar a seção quando salvar o artigo, caso isso não aconteça, o sistema não consegue identificar que esse artigo "pertence" a um circulo a qual você é administrador.
josircg commented 7 years ago
  1. Temos que mudar para "Artigos do Círculo" para que fique mais claro.

  2. Temos que mudar isso. Temos que ter um admin na app de cadastro que mostre os artigos dos círculos dos quais ele faz parte.

  3. Temos que adicionar automaticamente no ato da inclusão. O usuário não vai lembrar de fazer isso.

  4. O sistema tem que sempre adicionar uma seção automaticamente pois se o usuário esquece, ele vai deixar de ver o artigo.

  5. Temos que melhorar ainda mais essa edição para facilitar a vida do usuário. Montar uma espécie de passo a passo. Primeiro perguntar se ele quer enviar um link ou um texto e só depois abrir outras opções.

leonardocsantoss commented 7 years ago

2 ) Já tem do Dashboard o link para "Artigos do Círculo". 3 e 4) Coloquei como obrigatório a seleção de pelo menos uma seção. 5 ) Verifica se ficou melhor agora.

Coloquei direto em produção.