Projekt

Obecné

Profil

Úkol #43769

otevřený

Nsazení pirátské kalkulačky

Přidáno uživatelem Josef Bouše před 6 měsíc(ů). Aktualizováno před asi 2 měsíce(ů).

Stav:
V řešení (diskutuje se)
Priorita:
Normální
Přiřazeno:
Kategorie:
-
Cílová verze:
-
Začátek:
19.01.2024
Uzavřít do:
% Hotovo:

80%

Odhadovaná doba:
Smlouva:

Popis

Ahoj,
prosím o zahájení kroků k implementaci a nasazení pirátské kalkulačky
aplikace : https://github.com/michalskop/kalkulacka.one

Je to velice jednoduchá aplikace, neukládá data.
Data se tam dostávají v JSONu , který se tvoří exportem z csv

Aktualizováno uživatelem Josef Bouše před 6 měsíc(ů)

  • Fronta změněn z Podání na Úkol

Aktualizováno uživatelem Josef Bouše před 6 měsíc(ů)

Hodil bych to na doménu: kalkulacka.pirati.cz ,
poté to zařadíme do tools.pirati.cz

V budoucnu je možný vývoj směrem k lepší administraci dat, kalkulaček nebo anonymní sběr dat, ale to není aktuálně předmětem.

Aktualizováno uživatelem Andrej Ramašeuski před 6 měsíc(ů)

  • Stav změněn z Nový na V řešení (diskutuje se)

Aktualizováno uživatelem Andrej Ramašeuski před 6 měsíc(ů)

  • % Hotovo změněn z 0 na 10

Aktualizováno uživatelem Andrej Ramašeuski před 5 měsíc(ů)

  • % Hotovo změněn z 10 na 80

V gitlabu je to tady https://gitlab.pirati.cz/to/kalkulacka
Je nastaveny standartni pipeline pro nuxt2 projekty

a je to tady https://kalkulacka.pirati.cz/

Aktualizováno uživatelem Andrej Ramašeuski před asi 2 měsíce(ů)

#!/usr/bin/perl
use strict;
use warnings;

use Text::CSV qw( csv );
use JSON;

my $data = csv (in => $ARGV[0],
    sep_char    => ';',
    decode_utf8 => 0,
);

my $map;
my $col = 0;

HEADER:
foreach my $header (@{ $data->[0] }) {
    if ($header =~ /(\d+)$/) {
        my $id = $1 - 1;
        $map->{$id} = $col - 1;
    }
    $col++;
}

my @answers;

ANSWER:
foreach my $row (@{ $data }) {
    next ANSWER if $row->[0] !~ /\d+/;
    my $answer = {
        id         => $row->[0],
        slug       => $row->[0],
        name       => $row->[2],
        familyName => $row->[2],
        votes      => {},
        comments   => {},
    };
    $answer->{familyName} =~ s/^\w+\s+//;

    QUESTION:
    foreach my $id (keys %{ $map } ) {
        my $vote = 0;
        $vote =  1 if $row->[ $map->{$id} ] eq 'ANO';
        $vote = -1 if $row->[ $map->{$id} ] eq 'NE';
        $answer->{votes}{$id} = $vote;
        $answer->{comments}{$id} = $row->[ $map->{$id} + 1 ];
    }

    push @answers, $answer;
}

print to_json(\@answers, {pretty => 1, canonical => 1});

Také k dispozici: Atom PDF