ejplatform / ej-server

EJ uses gamification and machine learning to promote discussions and participation in a virtual democracy
https://ejplatform.github.io/ej-server/
Other
38 stars 17 forks source link

[REVIEW] Create basic models for EJ powers #485

Closed fabiolamfleury closed 5 years ago

fabiolamfleury commented 6 years ago

Descrição

Criação dos poderes do ponte de diálogo e ativista de minoria

Issues Relacionadas

resolves: #437

Checklist

codecov[bot] commented 6 years ago

Codecov Report

Merging #485 into develop will increase coverage by 0.45%. The diff coverage is 84.61%.

Impacted file tree graph

@@             Coverage Diff             @@
##           develop     #485      +/-   ##
===========================================
+ Coverage    81.57%   82.02%   +0.45%     
===========================================
  Files          123      129       +6     
  Lines         3273     3400     +127     
  Branches       358      370      +12     
===========================================
+ Hits          2670     2789     +119     
- Misses         497      504       +7     
- Partials       106      107       +1
Impacted Files Coverage Δ
src/ej/settings/apps.py 65.21% <ø> (ø) :arrow_up:
src/ej_powers/__init__.py 100% <100%> (ø)
src/ej_powers/models.py 100% <100%> (ø)
src/ej_powers/admin.py 100% <100%> (ø)
src/ej_powers/rules.py 65.38% <55.55%> (ø)
src/ej_conversations/rules.py 76.11% <60%> (-1.3%) :arrow_down:
src/ej_powers/functions.py 84.61% <83.78%> (ø)
src/ej_powers/apps.py 100% <0%> (ø)
... and 6 more

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 6760713...97eb418. Read the comment docs.

fabiolamfleury commented 6 years ago

Problema encontrado na dependência django-jsonfield, não é compatível com o django 2 (utilizando em sqlite) estou procurando algo que possa substituí-lo

(CORRIGIDO: Foi utilizado um picklefield no lugar, que é database agnostic)

fabiolamfleury commented 6 years ago

Implementações que foram mapeadas que faltam para que esse PR esteja completo:

Qual o tempo default para expirar um poder? E para expirar a promoção de um comentário?

rodrigocam commented 5 years ago

@fabiolamfleury como funcionaria para dar poder para um usuário? Por exemplo: O usuário jubileu foi selecionado para ter o poder de promover conversas pelo ML. No caso eu usaria a função give_promotion_power(user=jubileu)? ou ele só pode promover uma conversa específica? Por que a função pede mais 3 argumentos, sendo um deles power_class?

fabiolamfleury commented 5 years ago

A função give_promotion_power(user=jubileu) é usada apenas internamente no arquivo, para dar poder para um usuário deve ser give_minority_power() ou give_bridge_power(), passando como argumento o usuário que receberá o poder, a conversa que ele terá esse poder e quais usuários serão afetados por ele. Atualizei o comentário de descrição das funções

rodrigocam commented 5 years ago

@fabiolamfleury Para aceitar falta só criar uma regra para checar se um usuário pode promover comentários!

fabiolamfleury commented 5 years ago

@rodrigocam atualizei as regras mas todas estão marcadas apenas como predicado, haveria necessidade de mais definições?

rodrigocam commented 5 years ago

@fabiolamfleury acho que tá tranquilo por enquanto!