Open Coding-with-Adam opened 7 months ago
@JorgeMiguelGomes
I'd like to try and clarify the screenshot
field process.
I'll add that field to the grid right now. It will be similar to the already existing URL
field in the grid, and we will use it to insert the link of the screenshot.
However, what will the process of taking the screenshot look like? Can you share more about this please. For example, would this be the process?
screenshot
column @tomahock , @JorgeMiguelGomes
Is the first column (timestamp
field) in the csv sheets a date that the vetted volunteer inserts or a date that is automatically created (stamped) when the row is created?
For now, I limited it to timestamp being automatically created when row is created.
Hi @Moh-Ozzi Regarding your comment about pagination and add row button, I started taking a look at it. I also wrote you on the charming data platform.
This clientside callback still needs to be modified, but it's a good first draft solution to move user to the end of the grid once the add-row
button is clicked (I used this doc example). Right now, I manually set n=99, which is not ideal.
So we have to figure out a way in JS to grab the last existing row in the grid instead.
clientside_callback(
"""function (n) {
if (n) {
n = 99
grid = dash_ag_grid.getApi("reports-table")
rowIndex = grid.getRowNode(n).rowIndex
pageTarget = Math.floor(rowIndex / grid.paginationGetPageSize())
grid.paginationGoToPage(pageTarget)
}
return {"rowId": n.toString()}
}""",
Output("reports-table", "scrollTo"),
Input("add-row-btn", "n_clicks"),
prevent_initial_call=True,
)
Hi Adam, we were thinking about using the dcc upload component. https://dash.plotly.com/dash-core-components/upload
[image: VOST - Voluntários Digitais em Situações de Emergência]
Jorge Gomes Coordenador Nacional /
National Coordinator
M: +351 933 940 547
TW: @vostpt https://twitter.com/vostpt IG: @vostpt https://instagram.com/vostpt FB: VOST Portugal https://facebook.com/vostpt W: www.vost.pt
VOST PORTUGAL - Associação de Voluntários Digitais em Situações de Emergência
NIPC: 515697575 | PIC:898974952 | REGISTO IRN:841/2019
Confidencialidade: Esta mensagem (e eventuais ficheiros anexos) é destinada exclusivamente às pessoas nela indicadas e tem natureza confidencial. Se receber esta mensagem por engano, por favor contacte o remetente e elimine a mensagem e ficheiros, sem tomar conhecimento do respectivo conteúdo e sem reproduzi-la ou divulgá-la. Confidentiality Warning: This e-mail message (and any attached files) is confidential and is intended solely for the use of the individual or entity to whom it is addressed. lf you are not the intended recipient of this message please notify the sender and delete and destroy all copies immediately.
On Sun, 7 Apr 2024 at 20:46, Adam @.***> wrote:
@JorgeMiguelGomes https://github.com/JorgeMiguelGomes I'd like to try and clarify the screenshot field process.
I'll add that field to the grid right now. It will be similar to the already existing URL field in the grid, and we will use it to insert the link of the screenshot.
However, what will the process of taking the screenshot look like? Can you share more about this please. For example, would this be the process?
- a vetted volunteer goes on social media X platform
- she/he flags a post as spam and take a screenshot of the post
- the screenshot is loaded to VOST servers. (how?)
- the vetted volunteer pulls the link from the server and adds it to the grid -- under the screenshot column
— Reply to this email directly, view it on GitHub https://github.com/Coding-with-Adam/response-reporting-dashboard/issues/1#issuecomment-2041542718, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIGDRCKALBPVCFX35MGIQ4DY4GA7PAVCNFSM6AAAAABFRRNAB2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANBRGU2DENZRHA . You are receiving this because you were mentioned.Message ID: @.*** com>
-- Confidencialidade: Esta mensagem (e eventuais ficheiros anexos) é destinada exclusivamente às pessoas nela indicadas e tem natureza confidencial. Se receber esta mensagem por engano, por favor contacte o remetente e elimine a mensagem e ficheiros, sem tomar conhecimento do respectivo conteúdo e sem reproduzi-la ou divulgá-la. Confidentiality Warning: This e-mail message (and any attached files) is confidential and is intended solely for the use of the individual or entity to whom it is addressed. lf you are not the intended recipient of this message please notify the sender and delete and destroy all copies immediately.
Any timestamp should be created by the system,not by the user.
[image: VOST - Voluntários Digitais em Situações de Emergência]
Jorge Gomes Coordenador Nacional /
National Coordinator
M: +351 933 940 547
TW: @vostpt https://twitter.com/vostpt IG: @vostpt https://instagram.com/vostpt FB: VOST Portugal https://facebook.com/vostpt W: www.vost.pt
VOST PORTUGAL - Associação de Voluntários Digitais em Situações de Emergência
NIPC: 515697575 | PIC:898974952 | REGISTO IRN:841/2019
Confidencialidade: Esta mensagem (e eventuais ficheiros anexos) é destinada exclusivamente às pessoas nela indicadas e tem natureza confidencial. Se receber esta mensagem por engano, por favor contacte o remetente e elimine a mensagem e ficheiros, sem tomar conhecimento do respectivo conteúdo e sem reproduzi-la ou divulgá-la. Confidentiality Warning: This e-mail message (and any attached files) is confidential and is intended solely for the use of the individual or entity to whom it is addressed. lf you are not the intended recipient of this message please notify the sender and delete and destroy all copies immediately.
On Sun, 7 Apr 2024 at 20:55, Adam @.***> wrote:
@tomahock https://github.com/tomahock @JorgeMiguelGomes https://github.com/JorgeMiguelGomes Is the first column (timestamp field) in the csv sheets a date that the vetted volunteer inserts or a date that is automatically created (stamped) when the row is created?
— Reply to this email directly, view it on GitHub https://github.com/Coding-with-Adam/response-reporting-dashboard/issues/1#issuecomment-2041544849, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIGDRCPMSE7EJNO3W77YWNTY4GCBTAVCNFSM6AAAAABFRRNAB2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANBRGU2DIOBUHE . You are receiving this because you were mentioned.Message ID: @.*** com>
-- Confidencialidade: Esta mensagem (e eventuais ficheiros anexos) é destinada exclusivamente às pessoas nela indicadas e tem natureza confidencial. Se receber esta mensagem por engano, por favor contacte o remetente e elimine a mensagem e ficheiros, sem tomar conhecimento do respectivo conteúdo e sem reproduzi-la ou divulgá-la. Confidentiality Warning: This e-mail message (and any attached files) is confidential and is intended solely for the use of the individual or entity to whom it is addressed. lf you are not the intended recipient of this message please notify the sender and delete and destroy all copies immediately.
Hi @JorgeMiguelGomes , For the Response Date, if it is a timestamp as well, how do we deal with input of answer date that were yesterday for example, or ten days ago? I'll use the following scenario to illustrate the issue:
Hi @supernyv! Maybe the solution is to have two timestamps:
This way we can also calculate the time it took the platforms to reply.
from datetime import datetime
# Timestamps as strings
timestamp1 = "5/09/2024 4:56:00"
timestamp2 = "5/11/2024 5:44:54"
# Define the date format
date_format = "%m/%d/%Y %H:%M:%S"
# Convert strings to datetime objects
datetime1 = datetime.strptime(timestamp1, date_format)
datetime2 = datetime.strptime(timestamp2, date_format)
# Ensure datetime1 is the earlier timestamp
if datetime1 > datetime2:
raise ValueError("Timestamp 2 can't be earlier than Timestamp 1")
# Calculate the timedelta
time_difference = datetime2 - datetime1
# Convert timedelta to hours and days
hours_difference = time_difference.total_seconds() / 3600
days_difference = time_difference.days
hours_difference, days_difference
Does this make sense?
Hi @Jorge,
I get your idea, and it makes perfect sense that we need two timestamps to calculate response time. That way, the previous column named "timestamp" now becomes "open_report_timestamp" and the "answer date" now becomes "close_report_timestamp". However, what I am still worried about is the input method for close_report_timestamp. If it is generated by the app then it can only be a datetime value of the moment the reporting_user tells the app that the report should be closed (now). So, even if the platform (facebook for instance) answered two days ago and the user forgot to close the report for example, the timestamp cannot be the real response date but only the time the report is closed by the user. Is that the desired behavior?
While your point is valid we will try to make sure that users don't forget. Also even if they forget they should always use the date they got the email from the platforms with the decision. Does this make sense?
On Sun, May 12, 2024 at 1:48 AM Nyv @.***> wrote:
Hi @jorge https://github.com/jorge,
I get your idea, and it makes perfect sense that we need two timestamps to calculate response time. That way, the previous column named "timestamp" now becomes "open_report_timestamp" and the "answer date" now becomes "close_report_timestamp". However, what I am still worried about is the input method for close_report_timestamp. If it is generated by the app then it can only be a datetime value of the moment the reporting_user tells the app that the report should be closed (now). So, even if the platform (facebook for instance) answered two days ago and the user forgot to close the report for example, the timestamp cannot be the real response date but only the time the report is closed by the user. Is that the desired behavior?
— Reply to this email directly, view it on GitHub https://github.com/Coding-with-Adam/response-reporting-dashboard/issues/1#issuecomment-2106074169, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIGDRCM24J2D4TOVMU3FJVLZB235BAVCNFSM6AAAAABFRRNAB2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMBWGA3TIMJWHE . You are receiving this because you were mentioned.Message ID: @.*** com>
--
[image: VOST - Voluntários Digitais em Situações de Emergência]
Jorge Gomes Coordenador Nacional /
National Coordinator
M: +351 933 940 547
TW: @vostpt https://twitter.com/vostpt IG: @vostpt https://instagram.com/vostpt FB: VOST Portugal https://facebook.com/vostpt W: www.vost.pt
VOST PORTUGAL - Associação de Voluntários Digitais em Situações de Emergência
NIPC: 515697575 | PIC:898974952 | REGISTO IRN:841/2019
Confidencialidade: Esta mensagem (e eventuais ficheiros anexos) é destinada exclusivamente às pessoas nela indicadas e tem natureza confidencial. Se receber esta mensagem por engano, por favor contacte o remetente e elimine a mensagem e ficheiros, sem tomar conhecimento do respectivo conteúdo e sem reproduzi-la ou divulgá-la. Confidentiality Warning: This e-mail message (and any attached files) is confidential and is intended solely for the use of the individual or entity to whom it is addressed. lf you are not the intended recipient of this message please notify the sender and delete and destroy all copies immediately.
-- Confidencialidade: Esta mensagem (e eventuais ficheiros anexos) é destinada exclusivamente às pessoas nela indicadas e tem natureza confidencial. Se receber esta mensagem por engano, por favor contacte o remetente e elimine a mensagem e ficheiros, sem tomar conhecimento do respectivo conteúdo e sem reproduzi-la ou divulgá-la. Confidentiality Warning: This e-mail message (and any attached files) is confidential and is intended solely for the use of the individual or entity to whom it is addressed. lf you are not the intended recipient of this message please notify the sender and delete and destroy all copies immediately.
Alright Jorge,
I'll make updates and post pictures here for your feedback
Hi @Jorge,
Here are a few updates.
Pending Update on Git, it should be pushed in a few minutes
Hi @supernyv, thank you. - again - for your work on all this. As for the admin menu, it should only be accessible by admin roles, and - yes! - you are right: contributors to the platform need to be approved before being allowed in, as we don't want the platform to be misused in any way.
Things we need to accomplish and have in the internal.py page.
screenshot
field to the grid that pulls, where the user will upload the contents' screenshot (of flag posts) from the servercontent link
duplicates