Closed sirex closed 1 year ago
Jei nėra jokių duomenų, tada reikia rodyti pranešimą, kad duomenų nėra, dabar rodo tai:
Atsisiuntimo iškrentantis sąrašas neveikia, rodo keistai tik _id lauką.
Reikėtų rodyti, kaip iškrentantį sąrašą, panašiai, kaip mygtukas „Atsisiųsti“.
Užpildžius filtro formą:
Ir paspaudus filtruoti, gaunu tokią klaidą:
Unexpected token Token('NAME', 'r') at line 1, column 39. Expected one of: LPAR $END VBAR DOT COMMA COMP FACTOR AMPERSAND TERM LSQB Previous tokens: [Token('NAME', 'Vilniaus')]
Kaip suprantu, klaida susijusi su tuo, kad neuždedamos kabutės ant filtro reikšmės, nes nukreipimas daromas į tokį URL:
?municipality_name=Vilniaus%20r.%20sav.
O turėtu būti
?municipality_name="Vilniaus%20r.%20sav."
Kabutes reikia uždėti string ir date tipo laukams.
Nerodo horizontalios slinkties juostos. Duomenų lentelė turi būti įdėta į div, kuris turi vertikalią slinkties juostą (scrollbar), jei duomenys netelpa horizontaliai.
Atsisiunčiant duomenis CSV ar kitu formatu, neturi būti taikomas limit
, nes limit
taikomas tik atvaizduojant duomenis html formatu.
Dabar formuojama tokia nuoroda duomenų atsisiuntimui:
https://get.data.gov.lt/datasets/gov/lsd/covid19/AtvejaiIrMirtys?limit(100)&format(csv)
Nors turėtu būti:
https://get.data.gov.lt/datasets/gov/lsd/covid19/AtvejaiIrMirtys?format(csv)
Nežinau dėl kokių priežasčių, bet modelio duomenų peržiūros puslapį, krauna beveik 5 sekundes, kas yra nepriimtinai lėtai. Patikrinau, ta pati lentelė saugykloje išvedama per pusę sekundės, tai reiškia katalogo pusėje yra 4.5 sekundės labai neefektyvaus kodo.
Request Method: GET Request URL: http://localhost:8000/datasets/1223/models/Organization/
Django Version: 3.2.16 Python Version: 3.10.10
Traceback (most recent call last):
File "vitrina/structure/models.py", line 75, in uri_link
prefix, name = self.uri.split(':', 1)
Exception Type: ValueError at /datasets/1223/models/Organization/
Exception Value: not enough values to unpack (expected 2, got 1)
Čia tokia klaida atsiranda bandant užkrauti https://github.com/atviriduomenys/manifest/blob/master/datasets/gov/ivpk/adk.csv
Kuriame, prie Organization.description
yra nurodyta uri: dct.description
. Užkraunant duomenis reikėtų patikrinti ar yra nurodytas uri
prefiksas ir jei jis nenurodytas tada mesti klaidą. Į uri
stulpelį galima įrašyti URI su prefiksu, arba pilna forma https://...
, be prefikso. Tai siūlau patikrinti ar uri
yra ://
arba :
. Jei yra ://
reiškia URI yra pilnas, jei yra tik :
, reiškia URI yra su prefiksu, jei nėra nei ://
, nei :
, tada klaida.
Ir atvaizduojant URI metaduomenis, reikėtų įvertinti, kad gali būti URI pilnas ir su prefiksu.
Jei yra nurodytas prefiksas, jis turi būti apibrėžtas prie duomenų rinkinio.
Šoninėje juostoje, modelių sąrašas turi būti surūšiuotas pagal modelio kodinį pavadinimą, abėcėlės tvarka.
Filtro mygtukas, prie duomenų lauko neturėtų persikelti į naują eilutę.
Checkbox ir lauko pavadinimas turėtu išlikti vienoje eilutėje.
Paspaudus ant select() checkbox, sąrašas neturėtu iš karto užsidaryti, turėtu leisti pasirinkti kitus laukus. Pasirinkimai turi būti rodomi paspaudus mygtuką „Rodyti“, kuris yra iškrentančio sąrašo apačioje.
Dabar kai yra daugiau laukų, labai sudėtinga daryti atranką, nes kiekvieną kartą pasirinkus lauką, sąrašas užsidaro ir puslapis persikrauna. Jei nori pažymėti 10 laukų, tai padaryti labai sudėtinga, kai kiekvienas paspaudimas perkrauna puslapį.
Operatorių sąraše trūksta !=
operatoriaus.
Ir dar viena problema. Dabar padaryta, kad įrašius filtro reikšmę, string
tipui automatiškai uždedamos kabutės. Tačiau reikia padaryti išimtį, jei įrašoma null
reikšmė, tada kabučių uždėti nereikia. Tačiau jei įrašyta "null"
su kabutėmis, tada taip ir siųsti, t.y. atlikti paiešką tekstui "null"
, t.y. nereikia uždėti dar vienų kabučių.
Jei filtre įvedu kabutes, gaunu klaidą:
No terminal matches '"' in the current parser context, at line 1 col 17 limit(100)&name=""" ^ Expected one of: STRING ALL LPAR NAME SIGN BOOL INT FLOAT * LSQB Previous tokens: Token('COMP', '=')
Reikėtų prieš visas kabutes pridėti \
simbolį, kad būtų \"
, tokiu būdu klaidos nebus.
Atlikus paiešką su filtru, jei nerandami jokie duomenys, tada nerodo pasirinktų filtrų ir nėra galimybės jų pakeisti ar pašalinti.
Jei duomenų neranda, turi rodyti aktyvius filtrus ir laukų sąrašą.
Tokiu būdu bus galima pataisyti filtrus, jei pagal ankstesnius filtrus nerasta jokių duomenų.
Ilgą tekstą apriboti iki 256 simbolių ir rodyti ...
jei tekstas buvo nukirptas.
Paspaudus rodyklę į viršų, turi būti rūšiuojama Z -> A, paspaudus rodyklę žemyn turi rūšiuoti A -> Z. Dabar padaryta atvirkščiai, reikia sukeisti vietomis.
Nerodom None
, jei reikšmė yra None
, tada celė turi būti tuščia ir su šviesiai pilku fonu.
Jei modelis neturi title
, rodom name
.
Nurodytoje vietoje reikia rodyti tokį tekstą:
Rodoma 100 objektų iš 10,000.
Kur 100
yra objektų skaičius, kuris rodomas puslapyje, o 10,000
yra skaičius, kiek iš viso yra objektų, šį skaičių galima gauti darant /Model?count()
užklausą į Saugyklą.
http://localhost:8000/datasets/1223/models/
Traceback (most recent call last):
File "vitrina/structure/models.py", line 180, in get_absolute_url
return reverse('model-structure', kwargs={
File "django/urls/base.py", line 86, in reverse
return resolver._reverse_with_prefix(view, prefix, *args, **kwargs)
File "django/urls/resolvers.py", line 698, in _reverse_with_prefix
raise NoReverseMatch(msg)
Exception Type: NoReverseMatch at /datasets/1223/models/
Exception Value: Reverse for 'model-structure' with keyword arguments '{'pk': 1223, 'model': ''}' not found. 1 pattern(s) tried: ['datasets/(?P<pk>[0-9]+)/models/(?P<model>[^/]+)/\\Z']
Ta pati klaida pasitaiko ir su http://localhost:8000/datasets/1223/data/Catalog/
Template error:
In template vitrina/structure/templates/vitrina/structure/side_menu.html, error at line 6
Reverse for 'model-data' with keyword arguments '{'pk': 1223, 'model': ''}' not found. 1 pattern(s) tried: ['datasets/(?P<pk>[0-9]+)/data/(?P<model>[^/]+)/\\Z']
1 : <nav class="category-panel">
2 : {% for model in models %}
3 : <div>
4 : <span class="has-tooltip-top" data-tooltip="{{ model.name }}">
5 : {% if is_data %}
6 : <a href=" {{ model.get_data_url }} " class="category-panel-block">
7 : {% else %}
8 : <a href="{{ model.get_absolute_url }}" class="category-panel-block">
9 : {% endif%}
10 :
11 : {% if not show_props and request.resolver_match.kwargs.model == model.name %}
12 : <strong><span id="side_menu_elem">{{ model.name }}</span></strong>
13 : {% else %}
14 : <span id="side_menu_elem">{{ model.name }}</span>
15 : {% endif %}
16 : </a>
Traceback (most recent call last):
File "vitrina/structure/models.py", line 186, in get_data_url
return reverse('model-data', kwargs={
File "django/urls/base.py", line 86, in reverse
return resolver._reverse_with_prefix(view, prefix, *args, **kwargs)
File "django/urls/resolvers.py", line 698, in _reverse_with_prefix
raise NoReverseMatch(msg)
Exception Type: NoReverseMatch at /datasets/1223/data/Catalog/
Exception Value: Reverse for 'model-data' with keyword arguments '{'pk': 1223, 'model': ''}' not found. 1 pattern(s) tried: ['datasets/(?P<pk>[0-9]+)/data/(?P<model>[^/]+)/\\Z']
Turiu įtarimą, kad kažkas blogai su duomenimis, bet problema, kad negaliu iš naujo importuoti struktūros aprašo. Todėl būtų gerai, kad tokios klaidos neuždarytų kelio, struktūros aprašo importavimui.
Gali būti, kad tai yra susiję su
Nurodytoje vietoje reikia rodyti tokį tekstą:
Rodoma 100 objektų iš 10,000.
Kur
100
yra objektų skaičius, kuris rodomas puslapyje, o10,000
yra skaičius, kiek iš viso yra objektų, šį skaičių galima gauti darant/Model?count()
užklausą į Saugyklą.
Turi rodyti „Rodoma 2 objektai iš 2.“, t.y. count()
pridedamas su filtru.
Jei skaičius didelis, turi būti kablelis, kas tūkstanį.
Ir tekstas su skaičiais turėtu naudoti daugiskaitos/vienaskaitos formą: https://docs.djangoproject.com/en/4.2/topics/i18n/translation/#pluralization
Jei nėra rezultatų, filtras pasislepia.
http://localhost:8000/datasets/389/data/Atkn1TendererGroupList/?group_name=%22aa%22
URL:
/datasets/{id}/data/{model}?select(name, country)&population>1000&sort(-population)
.Atvaizduojant duomenis, daroma užklausa į Saugyklą (get.data.gov.lt) ir rezultatas atvaizduojamas lentelėje.
ref
, patenkama į siejamo modelio duomenų peržiūrą._id
arba antref
tipo reikšmės, patenkama į vieno objekt peržiūros langą.select()
atveju, rodomas iškrentantis sąrašas, kuriame galima pasirinkti, kokius laukus rodyti.integer
irnumber
tipo duomenys lygiuojami dešinėje pusėje.unique
žymę, rodomas rakto simbolis.limit(100)
.{model}
yra modelio pavadinimas reliatyvus duomenų rinkinio pavadinimui. Tai reiškia, kad adrese rodomeCity
, o nedatasets/gov/rc/ar/City
.=
>
<
>=
<=
contains
startswith
endswith
Epic
Susiję