Giter Club home page Giter Club logo

proiect-colectiv's People

Contributors

danielacraciun avatar icrisss avatar robert-sandor avatar victorursan avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

proiect-colectiv's Issues

Create notifications

  • When a user is in acceptance criteria in FluxInstance, send notifications to her/him

Flux part 2 - viewing the fluxes

From the prof's doc:

  • Zona cu task -uri initiate. Zona in care vor fi toate fluxurile active de documente impreuna
    cu documentele din cadrul acestora
    Your task: see all the fluxes intiated by the current user

Document states changing

  • when a document is created, it is draft ✔️
  • add button to make document final (only your own) ✔️
  • final revised after someone (other than the author) edits the document while in a final state ✔️
  • blocked after the flux containing it is done ✔️
  • modify zona de lucru so that only personal documents are there ✔️

Flux part 3 - actions on flux

  • Zona cu task -uri. Zona unde vor vedea toate documentele incluse intr-un anumit flux activ si
    care necesita anumite actiuni ale persoanei respective

The task: pending fluxes where the person is in the acceptance criteria. every flux here should have 2 buttons here where you can accept, reject, request change to a flux.

  • When the person requests a change or rejects, the flux becomes Blocked. ✔️
  • When the flux is accepted, we increment the accepted_count on the flux. When the size of accepted criteria (the number of foreign keys) is equal to accepted_count, the flux becomes accepted. We send an email to the flux initiator. ✔️
  • Also, when a change is requested, the person requesting it can send a message. For now created just the from with the message and don't send it anywhere. The implementation is in another task. ✔️
  • Also the flux reviewer can download and replace the documents in the flux. (this is when a document becomes final revised) ✔️
  • Can sign document from here in a step from here

Flux part 5 - notifications side

When a message is created, save to the db a Notification model, with the field from_user as the person requesting the message and the to_user as the user who initiated the flux.
For the message part, create a new model named Notification with a field message and a field from_user and to_user, bot foreign key to User model. Create a new tab with notifications and display only the notifications where the to_user is the current logged in user

Flux part 4 - view finished fluxes

  • Zona cu task-uri terminate. Zona care se va popula cu toate documentele si cu informatiile
    despre fluxuri de documente in care au fost incluse documentele stocate. In cadrul acestei
    zone se pot doar vizualiza documentele si informatiile stocate despre fluxuri, fara sa se poata
    modifica ceva.
    Your task: see all the blocked fluxes and their status if you are in the acc criteria or if you initiated the flux or if you are in the group on the flux.

Create templates part

  • create a new tab named: "Template-uri" (or you can name it however) next to the zona de lucru, etc. tabs
  • create a Template model with a docfile and other attributes as you see fit
  • create a list (similar to the documente one) where all the templates should be
  • create a button to the page of templates titled "Upload templates" which is only visible to roles higher than cititor (you can do something like if request.user.profile.role > 1 in the template)
  • before uploading, check the file extension to see if matches word or excel or other acceptable extension

Relevant questions from excel file from prof's site:

  • "Ce formate pot sa aiba documentele? In ce format ar trebui salvate fisierele?" Office (Word, Excel) si Pdf

Refactor adding of documents

Documents should have more properties than just a docfile. Look into the model properties and create a form with more options to add a document.

Flux part 1 - models and creating a flux (creation side)

  • create a flux model - contains title, steps, acceptance criteria, groups, initiated_by, status (pending, accepted, rejected), accepted_count (to count how many people have accepted), creation_date(set it to current date), days_until_stale (when the difference between today and the created on date is greater than this number, we send an email to initiator and acceptance criteria people)
    steps: foreign key to Step model (see below)
    acc criteria: foreignkey to User model (default in Django)
    groups: contains a foreign key to the Group model (default in Django) - only people in this group can see the flux ✔️
  • create a step model - contains title, docfile, any other attributes you see fit ✔️
  • if you have configured everything right, in the admin panel you should have a method for creating new fluxes and steps. Give me (Dana) a message when the implementation is done so we can check together if the admin behaves as expected. ✔️
  • add a new tab (next to zona de lucru etc) with "implementing a new flux" (or how you see fit). This tab should contain a form where you can select an flux type that already exists, insert the necessary documents in each step and submit it for review. ✔️

This is only a suggestion, you are welcome to implement as you see fit as long as it works

Electronic signature

Before saving a document after its been in a flux, check it's metadata for electronic signature from that person and update it accordingly (modify signed from bool to foreign key to persons to keep a journal of signatures)

Add logging to the app

After reading more of the questions, I found out that logging to a db needs to be done.
Every action (adding a doc, a template, changing docs and fluxes must be documented) and the output must be directed to a databse. Check the python logging module for more info on how to do this. Also, check this implementation of a logging handler which directs log output to a sqllite database (what we need): https://gist.github.com/ykessler/2662203#file_sqlite_handler.py
Relevant Q&A:

  • Cum filtram log-urile?
    Informatiile logate vor contine informatii legate de utilizatorul ce a facut intreprins o actiune, data, tipul actiunii etc. Filtrarile ar trebui sa se refere la acesti parametri (de exemplu toate intrarile in log intre data X si data Y, toate intrarile ale unui utilizator anume, toate logurile ce vizeaza modificari ale unui document anume etc
  • Unde ar trebui salvate log-urile? In fisiere sau baza de date?
    In baza de date (astfel si filtrarile/raportarile vor fi mai eficiente) in tabele create special

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.