Prvni pokus o verejny pristup, sprava profilu
This commit is contained in:
@@ -0,0 +1,28 @@
|
|||||||
|
"""add title photo url for user
|
||||||
|
|
||||||
|
Revision ID: b1bd8ecc3251
|
||||||
|
Revises: b5c66e5a2df7
|
||||||
|
Create Date: 2023-08-08 19:08:13.021213
|
||||||
|
|
||||||
|
"""
|
||||||
|
from alembic import op
|
||||||
|
import sqlalchemy as sa
|
||||||
|
|
||||||
|
|
||||||
|
# revision identifiers, used by Alembic.
|
||||||
|
revision = 'b1bd8ecc3251'
|
||||||
|
down_revision = 'b5c66e5a2df7'
|
||||||
|
branch_labels = None
|
||||||
|
depends_on = None
|
||||||
|
|
||||||
|
|
||||||
|
def upgrade() -> None:
|
||||||
|
# ### commands auto generated by Alembic - please adjust! ###
|
||||||
|
op.add_column('user', sa.Column('title_image_url', sa.String(length=128), nullable=True))
|
||||||
|
# ### end Alembic commands ###
|
||||||
|
|
||||||
|
|
||||||
|
def downgrade() -> None:
|
||||||
|
# ### commands auto generated by Alembic - please adjust! ###
|
||||||
|
op.drop_column('user', 'title_image_url')
|
||||||
|
# ### end Alembic commands ###
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
"""rename images in user table
|
||||||
|
|
||||||
|
Revision ID: 3d51075b5ece
|
||||||
|
Revises: b1bd8ecc3251
|
||||||
|
Create Date: 2023-08-08 19:45:21.470315
|
||||||
|
|
||||||
|
"""
|
||||||
|
from alembic import op
|
||||||
|
import sqlalchemy as sa
|
||||||
|
from sqlalchemy.dialects import mysql
|
||||||
|
|
||||||
|
# revision identifiers, used by Alembic.
|
||||||
|
revision = '3d51075b5ece'
|
||||||
|
down_revision = 'b1bd8ecc3251'
|
||||||
|
branch_labels = None
|
||||||
|
depends_on = None
|
||||||
|
|
||||||
|
|
||||||
|
def upgrade() -> None:
|
||||||
|
# ### commands auto generated by Alembic - please adjust! ###
|
||||||
|
op.add_column('user', sa.Column('avatar_image_filename', sa.String(length=128), nullable=True))
|
||||||
|
op.add_column('user', sa.Column('title_image_filename', sa.String(length=128), nullable=True))
|
||||||
|
op.drop_column('user', 'title_image_url')
|
||||||
|
op.drop_column('user', 'avatar_image_url')
|
||||||
|
# ### end Alembic commands ###
|
||||||
|
|
||||||
|
|
||||||
|
def downgrade() -> None:
|
||||||
|
# ### commands auto generated by Alembic - please adjust! ###
|
||||||
|
op.add_column('user', sa.Column('avatar_image_url', mysql.VARCHAR(length=128), nullable=True))
|
||||||
|
op.add_column('user', sa.Column('title_image_url', mysql.VARCHAR(length=128), nullable=True))
|
||||||
|
op.drop_column('user', 'title_image_filename')
|
||||||
|
op.drop_column('user', 'avatar_image_filename')
|
||||||
|
# ### end Alembic commands ###
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
"""add public info to user
|
||||||
|
|
||||||
|
Revision ID: 707eb800ddcd
|
||||||
|
Revises: 3d51075b5ece
|
||||||
|
Create Date: 2023-08-08 20:24:32.728653
|
||||||
|
|
||||||
|
"""
|
||||||
|
from alembic import op
|
||||||
|
import sqlalchemy as sa
|
||||||
|
|
||||||
|
|
||||||
|
# revision identifiers, used by Alembic.
|
||||||
|
revision = '707eb800ddcd'
|
||||||
|
down_revision = '3d51075b5ece'
|
||||||
|
branch_labels = None
|
||||||
|
depends_on = None
|
||||||
|
|
||||||
|
|
||||||
|
def upgrade() -> None:
|
||||||
|
# ### commands auto generated by Alembic - please adjust! ###
|
||||||
|
op.add_column('user', sa.Column('description', sa.Text(), nullable=False))
|
||||||
|
op.add_column('user', sa.Column('public_username', sa.String(length=128), nullable=True))
|
||||||
|
op.create_unique_constraint(None, 'user', ['public_username'])
|
||||||
|
# ### end Alembic commands ###
|
||||||
|
|
||||||
|
|
||||||
|
def downgrade() -> None:
|
||||||
|
# ### commands auto generated by Alembic - please adjust! ###
|
||||||
|
op.drop_constraint(None, 'user', type_='unique')
|
||||||
|
op.drop_column('user', 'public_username')
|
||||||
|
op.drop_column('user', 'description')
|
||||||
|
# ### end Alembic commands ###
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
"""add is_public to flight
|
||||||
|
|
||||||
|
Revision ID: 300b721e0818
|
||||||
|
Revises: 707eb800ddcd
|
||||||
|
Create Date: 2023-08-08 22:08:34.559165
|
||||||
|
|
||||||
|
"""
|
||||||
|
from alembic import op
|
||||||
|
import sqlalchemy as sa
|
||||||
|
|
||||||
|
|
||||||
|
# revision identifiers, used by Alembic.
|
||||||
|
revision = '300b721e0818'
|
||||||
|
down_revision = '707eb800ddcd'
|
||||||
|
branch_labels = None
|
||||||
|
depends_on = None
|
||||||
|
|
||||||
|
|
||||||
|
def upgrade() -> None:
|
||||||
|
# ### commands auto generated by Alembic - please adjust! ###
|
||||||
|
op.add_column('flight', sa.Column('is_public', sa.Boolean(), server_default='0', nullable=False))
|
||||||
|
# ### end Alembic commands ###
|
||||||
|
|
||||||
|
|
||||||
|
def downgrade() -> None:
|
||||||
|
# ### commands auto generated by Alembic - please adjust! ###
|
||||||
|
op.drop_column('flight', 'is_public')
|
||||||
|
# ### end Alembic commands ###
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
import csv
|
||||||
|
|
||||||
|
|
||||||
|
def deg_to_dec(val: str):
|
||||||
|
|
||||||
|
val = val[:-1].lstrip("0")
|
||||||
|
# h_m, s = val.split(".")
|
||||||
|
# h_m = h_m.strip("0")
|
||||||
|
# h = int(h_m[0:2])
|
||||||
|
# m = int(h_m[2:4])
|
||||||
|
# print(f"----{val}---------------------------------")
|
||||||
|
# print(val)
|
||||||
|
# print("h_m", h_m)
|
||||||
|
# print("m", m)
|
||||||
|
# print(h, m, int(s))
|
||||||
|
# print("--konec-----------------------------------")
|
||||||
|
# return h + (m / 60.0) + (int(s) / 3600.0)
|
||||||
|
|
||||||
|
return len(val or "")
|
||||||
|
|
||||||
|
# ZDAKOV: @49.504378,14.1808905
|
||||||
|
|
||||||
|
with open("./poi.csv") as f:
|
||||||
|
reader = csv.DictReader(f)
|
||||||
|
|
||||||
|
for row in reader:
|
||||||
|
# if row['name'] != 'ZDAKOV':
|
||||||
|
# continue
|
||||||
|
|
||||||
|
print(row['name'], row['lat'], row['lon'], deg_to_dec(row['lat']), deg_to_dec(row['lon']))
|
||||||
+547
@@ -0,0 +1,547 @@
|
|||||||
|
name,code,country,lat,lon,elev,style,rwdir,rwlen,freq,desc
|
||||||
|
"9 KRIZU",9KRIZU,CZ,4916.317N,01616.550E,0.0m,1,,,,"MOTOREST"
|
||||||
|
"9 SKAL",9SKAL,CZ,4940.233N,01601.850E,836.0m,7,,,,"VRCHOL"
|
||||||
|
"ADAMOV",ADAMOV,CZ,4918.067N,01639.267E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"ALBRECHTICE",ALBRE,CZ,5010.133N,01734.667E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"AS",AS,CZ,5013.133N,01210.983E,600.0m,1,,,,"NADRAZI"
|
||||||
|
"BASKA",BASKA,CZ,4938.567N,01821.133E,336.0m,2,1,300.0m,"125,825","SLZ PLOCHA"
|
||||||
|
"BECOV",BECOV,CZ,5005.233N,01250.383E,609.0m,1,,,,"ZAMEK"
|
||||||
|
"BECHYNE",BECHYN,CZ,4916.417N,01430.167E,0.0m,3,0,0.0m,,"STREDPLOCHY"
|
||||||
|
"BENATKY NAD JIZEROU",BENATK,CZ,5017.333N,01449.533E,0.0m,1,,,,"MOST"
|
||||||
|
"BEZDEKOV",BEZDEKOV,CZ,4917.633N,01610.983E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"BEZDEZ",BEZDEZ,CZ,5032.317N,01443.217E,0.0m,1,,,,"ZRICENINA"
|
||||||
|
"BEZVEROV",BEZVER,CZ,4959.667N,01303.383E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"BILA VODA",BVODA,CZ,5026.567N,01654.750E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"BILINA",BILINA,CZ,5032.950N,01346.350E,0.0m,1,,,,"MOST"
|
||||||
|
"BILOVEC",BILOVE,CZ,4945.200N,01800.833E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"BITOV",BITOV,CZ,4856.633N,01541.983E,428.0m,1,,,,"ZAMEK"
|
||||||
|
"BLANIK",BLANIK,CZ,4938.617N,01452.333E,0.0m,1,,,,"ROZHLEDNA"
|
||||||
|
"BLANSKO",BLANSK,CZ,4921.633N,01638.450E,0.0m,1,,,,"MOST"
|
||||||
|
"BLATNA",BLATNA,CZ,4925.600N,01352.633E,500.0m,1,,,,"KOSTEL"
|
||||||
|
"BLOVICE",BLOVIC,CZ,4934.883N,01331.883E,478.0m,1,,,,"NADRAZI"
|
||||||
|
"BOHDALOV",BOHDAL,CZ,4928.850N,01552.400E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"BOHDANEC",BOHDAN,CZ,4946.633N,01513.433E,450.0m,1,,,,"KOSTEL"
|
||||||
|
"BOJKOVICE",BOJKOV,CZ,4902.233N,01748.283E,0.0m,1,,,,"CENTRUM"
|
||||||
|
"BOLERADICE",BOLERA,CZ,4857.750N,01650.233E,198.0m,2,7,480.0m,"125,825","SLZ PLOCHA"
|
||||||
|
"BOREK",BOREK,CZ,5012.583N,01439.567E,170.0m,2,17,550.0m,"118,750","SLZ PLOCHA"
|
||||||
|
"BORITOV",BORITO,CZ,4925.883N,01635.517E,380.0m,2,2,850.0m,"125,825","SLZ PLOCHA"
|
||||||
|
"BOROVA",BOROVA,CZ,4944.600N,01609.750E,650.0m,1,,,,"NADRAZI"
|
||||||
|
"BOSKOVICE",BOSKOV,CZ,4929.500N,01639.067E,365.0m,1,,,,"NADRAZI"
|
||||||
|
"BOUBIN",BOUBIN,CZ,4859.450N,01349.033E,1362.0m,1,,,,"VRCHOL"
|
||||||
|
"BOUZOV",BOUZOV,CZ,4942.333N,01653.417E,440.0m,1,,,,"HRAD"
|
||||||
|
"BRANDYS NAD LABEM",BRANDY,CZ,5011.200N,01439.683E,0.0m,1,,,,"CENTRUM"
|
||||||
|
"BRANDYS NAD ORLICI",BRANOR,CZ,5000.100N,01617.200E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"BRANNA",BRANNA,CZ,5008.817N,01700.867E,633.0m,1,,,,"NADRAZI"
|
||||||
|
"BRATROUCHOV",BRATRO,CZ,5042.400N,01528.967E,0.0m,1,,,,"CHATA"
|
||||||
|
"BRECLAV",BRECLA,CZ,4845.333N,01653.767E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"BREZI",BREZI,CZ,4920.667N,01613.033E,530.0m,1,,,,"KOSTEL"
|
||||||
|
"BREZNICE",BREZNI,CZ,4932.667N,01356.667E,470.0m,1,,,,"KOSTEL"
|
||||||
|
"BREZOVA N SVITAVOU",BREZSV,CZ,4938.783N,01630.967E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"BRIDLICNA",BRIDLC,CZ,5002.100N,01711.083E,1358.0m,7,,,,"VRCHOL"
|
||||||
|
"BRUNTAL",BRUNTA,CZ,4959.617N,01728.467E,431.0m,1,,,,"NADRAZI"
|
||||||
|
"BUCOV",BUCOV,CZ,5008.617N,01329.400E,432.0m,1,,,,"KRIZOVATKA"
|
||||||
|
"BUDISOV N BUDISOVKOU",BUDISO,CZ,4947.683N,01737.667E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"BUCHLOV",BUCHLO,CZ,4906.417N,01718.800E,192.0m,1,,,,"HRAD"
|
||||||
|
"BUCHTUV KOPEC",BUCHTU,CZ,4939.617N,01608.100E,810.0m,7,,,,"VRCHOL"
|
||||||
|
"BUKOVA HORA",BUKHOR,CZ,5040.300N,01413.550E,0.0m,1,,,,"VYSILAC"
|
||||||
|
"BURANOS AIRES",BURAIR,CZ,5000.517N,01402.117E,440.0m,2,9,450.0m,"125,825","SLZ PLOCHA"
|
||||||
|
"BYNOVEC",BYNOVE,CZ,5049.550N,01416.033E,380.0m,2,7,400.0m,"122,8","SLZ PLOCHA"
|
||||||
|
"BYSTRICE P PERNSTEJNEM",BYSPER,CZ,4931.350N,01515.683E,532.0m,1,,,,"KOSTEL"
|
||||||
|
"CASLAV",CASLAV,CZ,4956.400N,01523.017E,241.0m,5,60,0.0m,,"LETISTE"
|
||||||
|
"CEBIN",CEBIN,CZ,4918.750N,01628.650E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"CECHTICE",CECHTI,CZ,4937.350N,01502.883E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"CERNA HORA",CERHOR,CZ,5039.100N,01544.500E,1300.0m,8,,,,"VYSILAC"
|
||||||
|
"CERVENA",CERVEN,CZ,4922.317N,01415.950E,0.0m,1,,,,"CERVENANVLT"
|
||||||
|
"CERVENA LHOTA",CERVLH,CZ,4914.800N,01453.167E,0.0m,1,,,,"ZAMEK"
|
||||||
|
"CERVENA VODA",CERVOD,CZ,5002.433N,01644.650E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"CERVENY KOSTELEC",CERKOS,CZ,5028.650N,01605.767E,0.0m,1,,,,"NAMESTI"
|
||||||
|
"CESKA SKALICE",CESKAL,CZ,5023.717N,01603.267E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"CESKA TREBOVA",CETREB,CZ,4954.217N,01626.667E,0.0m,1,,,,"CENTRUM"
|
||||||
|
"CESKE BUDEJOVICE",LKCBUD,CZ,4856.800N,01425.750E,433.0m,5,60,0.0m,"122.600","LETISTE"
|
||||||
|
"CESKY BROD",CEBROD,CZ,5003.850N,01453.417E,0.0m,1,,,,"VYSILAC"
|
||||||
|
"CESKY DUB",CESDUB,CZ,5040.733N,01459.950E,380.0m,2,1,370.0m,"125,825","SLZ PLOCHA"
|
||||||
|
"CESKY KRUMLOV",CEKRUM,CZ,4849.000N,01419.067E,0.0m,1,,,,"CENTRUM"
|
||||||
|
"CESTIN",CESTIN,CZ,4948.450N,01506.133E,500.0m,1,,,,"KOSTEL"
|
||||||
|
"CIMELICE",CIMELI,CZ,4928.217N,01404.617E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"CL RAMS",CLRAMS,CZ,5038.500N,01432.483E,300.0m,2,13,600.0m,"120,675","SLZ PLOCHA"
|
||||||
|
"CUKRAK",CUKRAK,CZ,4956.233N,01421.383E,0.0m,1,,,,"VYSILAC"
|
||||||
|
"DACICE",DACICE,CZ,4904.800N,01526.033E,577.0m,1,,,,"KOSTEL"
|
||||||
|
"DARKO",DARKO,CZ,4937.933N,01554.167E,590.0m,1,,,,"RYBNIK"
|
||||||
|
"DEBLIN",DEBLIN,CZ,4919.367N,01620.817E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"DECIN",DECIN,CZ,5046.400N,01412.467E,0.0m,1,,,,"MOST"
|
||||||
|
"DECINSKY SNEZNIK",DESNEZ,CZ,5047.567N,01406.117E,722.0m,7,,,,"VRCHOL"
|
||||||
|
"DESTNE V ORL HORACH",DESTNE,CZ,5018.200N,01620.900E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"DETRICHOV",DETRIC,CZ,4943.767N,01707.100E,225.0m,2,14,450.0m,"120,675","SLZ PLOCHA"
|
||||||
|
"DEVIN",DEVIN,CZ,4852.083N,01638.967E,549.0m,7,,,,"VRCHOL"
|
||||||
|
"DOBRIS",DOBRIS,CZ,4946.833N,01410.067E,0.0m,1,,,,"CENTRUM"
|
||||||
|
"DOBRUSKA",DOBRUS,CZ,5017.367N,01609.133E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"DOLNI BUKOVSKO",DOLBUK,CZ,4910.250N,01434.850E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"DOLNI CEREKEV",DOLCER,CZ,4920.733N,01527.400E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"DOLNI DVORISTE",DOLDVO,CZ,4839.400N,01427.067E,617.0m,1,,,,"KOSTEL"
|
||||||
|
"DOLNI LOUCKY",DOLLOU,CZ,4921.700N,01621.033E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"DOLNI ZANDOV",DOLZAN,CZ,5000.683N,01232.400E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"DOMAZLICE",DOMAZL,CZ,4926.450N,01255.500E,423.0m,1,,,,"CENTRUM"
|
||||||
|
"DRUZCOV",DRUZCO,CZ,5043.700N,01455.467E,460.0m,2,17,440.0m,"125,825","SLZ PLOCHA"
|
||||||
|
"DUSNIKY",DUSNIK,CZ,5024.750N,01411.867E,222.0m,2,17,420.0m,"122,8","SLZ PLOCHA"
|
||||||
|
"EXIT BOR",EXIBOR,CZ,4944.833N,01246.683E,400.0m,1,,,,"EXIT D1 128"
|
||||||
|
"FIALNIK",FIALNI,CZ,4944.517N,01510.717E,550.0m,7,,,,"VRCHOL"
|
||||||
|
"FRYDEK MISTEL",FRYDEK,CZ,4940.783N,01820.817E,0.0m,1,,,,"MOST"
|
||||||
|
"FRYDLANT",FRYDLA,CZ,5055.117N,01504.400E,500.0m,1,,,,"NADRAZI"
|
||||||
|
"FRYMBURK",FRYMBU,CZ,4841.967N,01411.967E,798.0m,2,6,500.0m,"134,825","SLZ PLOCHA"
|
||||||
|
"FRYSAVA P ZAK HOROU",FRYSAV,CZ,4937.667N,01602.300E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"GOLCUV JENIKOV",GOLJEN,CZ,4948.883N,01528.650E,389.0m,1,,,,"CENTRUM"
|
||||||
|
"HABRY",HABRY,CZ,4945.167N,01528.983E,500.0m,1,,,,"KRIZOVATKA"
|
||||||
|
"HANUSOVICE",HANUSO,CZ,5004.583N,01655.867E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"HARRACHOV",HARRAC,CZ,5048.267N,01525.450E,850.0m,1,,,,"CELNICE"
|
||||||
|
"HERALEC",HERALE,CZ,4941.250N,01559.717E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"HERMANUV MESTEC",HERMES,CZ,4957.083N,01539.517E,300.0m,1,,,,"NADRAZI"
|
||||||
|
"HLINSKO",HLINSK,CZ,4946.000N,01554.100E,495.0m,1,,,,"NADRAZI"
|
||||||
|
"HLUBOKA",HLUBOK,CZ,4903.267N,01426.450E,0.0m,1,,,,"ZAMEK"
|
||||||
|
"HODONIN",HODONI,CZ,4851.283N,01707.083E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"HORAZDOVICE",HORAZD,CZ,4919.267N,01342.567E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"HORNI BENESOV",HORBEN,CZ,4958.050N,01736.033E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"HORNI BRIZA",HORBRI,CZ,4950.383N,01321.383E,451.0m,1,,,,"KOSTEL"
|
||||||
|
"HORNI CEREKEV",HORCER,CZ,4918.650N,01519.483E,586.0m,1,,,,"NADRAZI"
|
||||||
|
"HORSOVSKY TYN",HORTYN,CZ,4931.450N,01256.350E,400.0m,1,,,,"NADRAZI"
|
||||||
|
"HORY",HORY,CZ,5013.033N,01246.500E,501.0m,2,7,500.0m,"125,825","SLZ PLOCHA"
|
||||||
|
"HOSTINNE",HOSTIN,CZ,5032.517N,01543.483E,390.0m,17,,,,"STRED MESTA"
|
||||||
|
"HOSTOMICE",HOSTOM,CZ,4949.567N,01402.650E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"HOSTYN",HOSTYN,CZ,4922.817N,01742.083E,735.0m,7,,,,"VRCHOL"
|
||||||
|
"HRADCANY",HRADCA,CZ,5037.167N,01443.983E,278.0m,5,9,2700.0m,"134,825","SLZ PLOCHA"
|
||||||
|
"HRADEC N MORAVICI",HRAMOR,CZ,4952.483N,01752.567E,300.0m,1,,,,"NARDAZI"
|
||||||
|
"HRACHOLUSKY",HRACHO,CZ,4947.467N,01310.467E,0.0m,1,,,,"HRAZ"
|
||||||
|
"HRIMEZDICE",HRIMEZ,CZ,4940.450N,01415.767E,462.0m,1,,,,"MOST"
|
||||||
|
"HUBENOV",HUBENO,CZ,4923.517N,01529.367E,0.0m,1,,,,"HRAZ"
|
||||||
|
"HUMPOLEC",HUMPOL,CZ,4932.517N,01521.417E,474.0m,1,,,,"CENTRUM"
|
||||||
|
"HUSINEC",HUSINE,CZ,4902.300N,01359.617E,0.0m,1,,,,"HRAZ"
|
||||||
|
"HUSTOPECE",HUSTOP,CZ,4856.133N,01644.317E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"CHABERICE",CHABER,CZ,4944.883N,01503.700E,350.0m,2,11,500.0m,"125,825","SLZ PLOCHA"
|
||||||
|
"CHARVATCE",CHARVA,CZ,5025.983N,01348.633E,275.0m,2,8,500.0m,"125,825","SLZ PLOCHA"
|
||||||
|
"CHEB",CHEB,CZ,5011.550N,01222.250E,450.0m,1,,,,"KRIZOVATKASEVER"
|
||||||
|
"CHLUM",CHLUM,CZ,4918.867N,01545.933E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"CHLUMEC N CIDLINOU",CHLUME,CZ,5009.800N,01527.433E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"CHOMUTOV",CHOMU,CZ,5027.800N,01324.217E,343.0m,1,,,,"KRIZOVATKACENTR"
|
||||||
|
"CHORNICE",CHORNI,CZ,4940.000N,01644.467E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"CHOTEC",CHOTEC,CZ,5026.083N,01531.733E,328.0m,2,9,600.0m,"125,825","SLZ PLOCHA"
|
||||||
|
"CHOTESOV",CHOTES,CZ,4939.133N,01311.417E,365.0m,2,9,550.0m,"125,825","SLZ PLOCHA"
|
||||||
|
"CHRAST",CHRAST,CZ,4953.333N,01556.500E,0.0m,1,,,,"RYBNIK"
|
||||||
|
"CHRASTAVA",CHRSTA,CZ,5048.800N,01457.083E,300.0m,1,,,,"NADRAZI"
|
||||||
|
"CHRIBSKA",CHRIBS,CZ,5051.400N,01428.033E,383.0m,2,10,600.0m,"122.4","SLZ PLOCHA"
|
||||||
|
"CHVALETICE",CHVALE,CZ,5001.667N,01527.333E,0.0m,1,,,,"KOMIN"
|
||||||
|
"JABLONEC N NISOU",JABLON,CZ,5043.267N,01509.650E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"JABLONNE N ORLICI",JABORL,CZ,5001.667N,01635.967E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"JABLONNE V PODJESTEDI",JABPOD,CZ,5046.200N,01445.517E,600.0m,1,,,,"NADRAZI"
|
||||||
|
"JABLUKOV",JABLUN,CZ,4934.600N,01845.900E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"JAROMERICE N ROKYTKOU",JAROME,CZ,4905.600N,01553.400E,422.0m,1,,,,"KOSTEL"
|
||||||
|
"JAVORICE",JAVORI,CZ,4913.267N,01520.200E,836.0m,1,,,,"VYSILAC"
|
||||||
|
"JAVORNIK",JAVORN,CZ,5023.267N,01700.017E,0.0m,1,,,,"JAVORNIKZAMEK"
|
||||||
|
"JAVOROVY",JAVORO,CZ,4937.250N,01836.467E,1032.0m,7,,,,"VRCHOL"
|
||||||
|
"JEDOVNICE",JEDOVN,CZ,4920.400N,01645.267E,470.0m,1,,,,"HRAZ"
|
||||||
|
"JEHNEDI",JEHNED,CZ,4957.983N,01618.600E,478.0m,2,9,750.0m,"125,825","SLZ PLOCHA"
|
||||||
|
"JEMNICE",JEMNIC,CZ,4900.950N,01534.850E,498.0m,1,,,,"NADRAZI"
|
||||||
|
"JESENICE",JESENI,CZ,5005.067N,01228.483E,0.0m,1,,,,"HRAZ"
|
||||||
|
"JESENIK",JESNIK,CZ,5013.667N,01711.583E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"JESTED",JESTED,CZ,5043.950N,01459.117E,1014.0m,1,,,,"VYSILAC"
|
||||||
|
"JEVICKO",JEVICK,CZ,4937.933N,01642.717E,360.0m,1,,,,"NAMESTI"
|
||||||
|
"JIMRAMOV",JIMRAM,CZ,4938.217N,01613.483E,550.0m,1,,,,"KOSTEL"
|
||||||
|
"JINDRICHOVICE P SMRKEM",JINSMR,CZ,5057.483N,01515.233E,800.0m,1,,,,"NADRAZI"
|
||||||
|
"JIRICKY",JIRICK,CZ,4933.183N,01509.333E,450.0m,2,16,750.0m,"125,825","SLZ PLOCHA"
|
||||||
|
"JIRKOV",JIRKOV,CZ,5029.917N,01326.867E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"JISTEBNICE",JISTEB,CZ,4929.200N,01431.550E,578.0m,1,,,,"KOSTEL"
|
||||||
|
"KACOV",KACOV,CZ,4946.550N,01501.867E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"KADAN",KADAN,CZ,5022.383N,01316.483E,485.0m,1,,,,"SILNICNIMOST"
|
||||||
|
"KAMEN",KAMEN,CZ,4925.400N,01500.883E,585.0m,1,,,,"HRAD"
|
||||||
|
"KAMEN PLOCHA",KAMPLO,CZ,4925.100N,01500.000E,0.0m,3,90,0.0m,,"LETISTE"
|
||||||
|
"KAMENICE N LIPOU",KAMLIP,CZ,4918.167N,01504.517E,563.0m,1,,,,"KOSTEL"
|
||||||
|
"KAMYK",KAMYK,CZ,4938.383N,01415.333E,0.0m,1,,,,"HRAZ"
|
||||||
|
"KAPLICE",KAPLIC,CZ,4844.300N,01429.283E,0.0m,1,,,,"CENTRUM"
|
||||||
|
"KARDASOVA RECICE",KARDRE,CZ,4911.033N,01451.650E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"KARLSTEJN",KARLST,CZ,4956.400N,01411.283E,0.0m,1,,,,"HRAD"
|
||||||
|
"KASARNA",KASARN,CZ,4910.900N,01538.017E,533.0m,1,,,,"KRIZOVATKA"
|
||||||
|
"KASPERSKE HORY",KASHOR,CZ,4909.900N,01333.833E,1010.0m,1,,,,"ZAMEK"
|
||||||
|
"KDYNE",KDYNE,CZ,4923.317N,01302.383E,400.0m,1,,,,"KOSTEL"
|
||||||
|
"KELCSKY JAVORNIK",KELJAV,CZ,4924.000N,01745.933E,865.0m,7,,,,"VRCHOL"
|
||||||
|
"KEPRNIK",KEPRNI,CZ,5010.267N,01706.983E,1423.0m,7,,,,"VRCHOL"
|
||||||
|
"KLASTEREC N OHRI",KLASOH,CZ,5023.083N,01311.783E,300.0m,1,,,,"NADRAZI"
|
||||||
|
"KLECANY",KLECAN,CZ,5011.017N,01424.967E,0.0m,5,0,0.0m,,"PLOCHA"
|
||||||
|
"KLINOVEC",KLINOV,CZ,5023.750N,01258.050E,1244.0m,7,,,,"VRCHOL"
|
||||||
|
"KOBEROVICE",KOBERO,CZ,4935.200N,01515.717E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"KOCLIROV",KOCLIR,CZ,4946.183N,01631.283E,600.0m,1,,,,"KRIZOVATKA"
|
||||||
|
"KOJAL",KOJAL,CZ,4922.217N,01648.950E,0.0m,1,,,,"VYSILAC"
|
||||||
|
"KOKORIN",KOKORI,CZ,5026.400N,01434.617E,0.0m,1,,,,"HRAD"
|
||||||
|
"KONICE",KONICE,CZ,4935.500N,01652.983E,328.0m,1,,,,"NADRAZI"
|
||||||
|
"KORYCANY",KORYCA,CZ,4906.983N,01711.650E,0.0m,1,,,,"HRAZ"
|
||||||
|
"KOSTELEC N HANE",KOSHAN,CZ,4930.950N,01703.667E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"KOTVRDOVICE",KOTVRD,CZ,4921.867N,01647.233E,556.0m,2,10,600.0m,"123,475","SLZ PLOCHA"
|
||||||
|
"KOURIM",KOURIM,CZ,5000.183N,01458.617E,0.0m,1,,,,"OBEC"
|
||||||
|
"KOZAKOV",KOZAKO,CZ,5035.583N,01515.767E,774.0m,7,,,,"ROZHLEDNA"
|
||||||
|
"KRALICKY SNEZNIK",KRASNE,CZ,5012.300N,01651.350E,1424.0m,7,,,,"VRCHOL"
|
||||||
|
"KRALIKY",KRALIK,CZ,5004.850N,01645.400E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"KRALOVICE",KRALOV,CZ,4959.333N,01329.350E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"KRAMOLIN",KRAMOL,CZ,4854.917N,01443.667E,505.0m,2,9,455.0m,"122,4","SLZ PLOCHA"
|
||||||
|
"KRASNA LIPA",KRALIP,CZ,5055.100N,01430.750E,500.0m,1,,,,"NADRAZI"
|
||||||
|
"KREMESNIK",KREMES,CZ,4924.217N,01519.633E,765.0m,7,,,,"VRCHOL"
|
||||||
|
"KRINEC",KRINEC,CZ,5015.200N,01507.833E,197.0m,2,10,750.0m,"125,825","SLZ PLOCHA"
|
||||||
|
"KRIVOKLAT",KRIVOK,CZ,5002.283N,01352.367E,0.0m,1,,,,"HRAD"
|
||||||
|
"KRSY",KRSY,CZ,4955.533N,01303.300E,600.0m,1,,,,"KOSTEL"
|
||||||
|
"KRUZBERK",KRUZBE,CZ,4949.400N,01739.767E,450.0m,1,,,,"HRAZ"
|
||||||
|
"KUKS",KUKS,CZ,5023.867N,01553.333E,0.0m,1,,,,"ZAMEK"
|
||||||
|
"KUNETICE",KUNETI,CZ,5004.133N,01548.917E,219.0m,2,5,730.0m,"121,250","SLZ PLOCHA"
|
||||||
|
"KURIM",KURIM,CZ,4917.783N,01631.533E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"KUTNA HORA",KUTHOR,CZ,4957.000N,01516.617E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"LANSKROUN",LANSKR,CZ,4954.517N,01636.167E,421.0m,1,,,,"NADRAZI"
|
||||||
|
"LAZNE BELOHRAD",LAZBEL,CZ,5025.717N,01534.967E,0.0m,1,,,,"NAMESTI"
|
||||||
|
"LAZNE KYNZVART",LAZKYN,CZ,5000.583N,01237.583E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"LEDEC N SAZAVOU",LEDEC,CZ,4941.767N,01516.617E,0.0m,1,,,,"LEDEC"
|
||||||
|
"LETOVICE",LETOVI,CZ,4932.867N,01634.467E,372.0m,1,,,,"CENTRUM"
|
||||||
|
"LHOTA",LHOTAH,CZ,4918.483N,01655.833E,298.0m,1,,,,"HRAZ"
|
||||||
|
"LIBAVA",LIBAVA,CZ,4943.283N,01731.183E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"LIBECHOV",LIBECH,CZ,5024.500N,01426.700E,0.0m,1,,,,"ZAMEK"
|
||||||
|
"LIBINA",LIBINA,CZ,4952.733N,01705.050E,500.0m,1,,,,"KOSTEL"
|
||||||
|
"LIBKOVICE",LIBKOV,CZ,5034.250N,01341.000E,277.0m,2,3,600.0m,"125,825","SLZ PLOCHA"
|
||||||
|
"LIBLIN",LIBLIN,CZ,4954.950N,01332.600E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"LIBOCHOVICE",LIBCHV,CZ,5024.300N,01402.617E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"LINE",LINE,CZ,4940.517N,01316.467E,363.0m,2,60,0.0m,"129.000","LETISTE"
|
||||||
|
"LIPNICE",LIPNIC,CZ,4936.650N,01524.550E,600.0m,1,,,,"HRAD"
|
||||||
|
"LIPNO",LIPNO,CZ,4837.983N,01414.217E,0.0m,1,,,,"HRAZ"
|
||||||
|
"LIPOVEC",LIPOVE,CZ,4922.950N,01648.300E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"LIPUVKA",LIPUVK,CZ,4920.400N,01633.150E,364.0m,1,,,,"KRIZOVATKA"
|
||||||
|
"LITENCICE",LITENC,CZ,4912.217N,01712.350E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"LITOMERICE",LITOME,CZ,5031.783N,01408.100E,0.0m,1,,,,"MOST"
|
||||||
|
"LITOMYSL",LITOMY,CZ,4952.500N,01618.250E,368.0m,1,,,,"NADRAZI"
|
||||||
|
"LITOVEL",LITOVE,CZ,4942.133N,01704.417E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"LK DACICE",LKDAC,CZ,4904.200N,01527.300E,495.0m,2,14,600.0m,"125,825","SLZ PLOCHA"
|
||||||
|
"LK CHEB",LKCHEB,CZ,5003.917N,01224.500E,486.0m,5,6,1400.0m,"122,2","SLZ PLOCHA"
|
||||||
|
"LK LETOVICE",LKLETO,CZ,4932.833N,01635.750E,370.0m,2,16,345.0m,"125,825","SLZ PLOCHA"
|
||||||
|
"LK LITOMERICE",LKLITO,CZ,5031.617N,01411.100E,150.0m,2,10,450.0m,"125,825","SLZ PLOCHA"
|
||||||
|
"LK LITOMYSL",LKLITM,CZ,4952.467N,01620.117E,383.0m,2,9,600.0m,"125,825","SLZ PLOCHA"
|
||||||
|
"LK LOMNICE",LKLOM,CZ,5032.367N,01523.467E,510.0m,2,14,450.0m,"125,825","SLZ PLOCHA"
|
||||||
|
"LK MELNIK",LKMELN,CZ,5020.583N,01426.083E,162.0m,2,9,700.0m,"120,675","SLZ PLOCHA"
|
||||||
|
"LK NACHOD",LKNACH,CZ,5024.833N,01607.283E,440.0m,2,11,430.0m,"123,325","SLZ PLOCHA"
|
||||||
|
"LK OPAVA",LKOPAV,CZ,4956.417N,01759.000E,260.0m,2,10,400.0m,"125,825","SLZ PLOCHA"
|
||||||
|
"LK PISEK",LKPISE,CZ,4920.500N,01406.750E,412.0m,2,16,600.0m,"120,325","SLZ PLOCHA"
|
||||||
|
"LK RICANY",LKRICA,CZ,4958.450N,01439.000E,380.0m,2,9,450.0m,"125,825","SLZ PLOCHA"
|
||||||
|
"LK ROKYCANY",LKROKY,CZ,4945.050N,01335.367E,400.0m,2,9,960.0m,"125,825","SLZ PLOCHA"
|
||||||
|
"LK STARA PAKA",LKSTPA,CZ,5030.000N,01529.000E,484.0m,2,10,580.0m,"122,2","SLZ PLOCHA"
|
||||||
|
"LK TEPLICE",LKTEPL,CZ,5037.300N,01348.667E,350.0m,2,18,480.0m,"122,4","SLZ PLOCHA"
|
||||||
|
"LK TREBIC",LKTREB,CZ,4911.900N,01554.167E,486.0m,2,11,520.0m,"125,825","SLZ PLOCHA"
|
||||||
|
"LK TRUTNOV",LKTRUT,CZ,5034.033N,01551.867E,454.0m,2,17,450.0m,"125,825","SLZ PLOCHA"
|
||||||
|
"LK USTI N LABEM",LKUSTI,CZ,5042.050N,01358.300E,239.0m,2,5,650.0m,"123.4","SLZ PLOCHA"
|
||||||
|
"LKBA",LKBA,CZ,4847.450N,01653.550E,160.0m,2,8,740.0m,"123,5","BRECLAV"
|
||||||
|
"LKBE",LKBE,CZ,4944.450N,01438.683E,403.0m,2,9,750.0m,"118,0","BENESOV"
|
||||||
|
"LKBO",LKBO,CZ,4940.233N,01717.700E,236.0m,2,7,840.0m,"118,275","BOHUNOVICE"
|
||||||
|
"LKBR",LKBR,CZ,5033.717N,01620.567E,409.0m,2,14,920.0m,"123,5","BROUMOV"
|
||||||
|
"LKBU",LKBU,CZ,4958.467N,01410.683E,426.0m,2,10,730.0m,"122,2","BUBOVICE"
|
||||||
|
"LKCE",LKCE,CZ,5042.633N,01434.083E,283.0m,2,13,700.0m,"123,6","CESKALIPA"
|
||||||
|
"LKCM",LKCM,CZ,4914.217N,01633.300E,282.0m,2,15,920.0m,"123,6","BRNOMEDLANKY"
|
||||||
|
"LKCO",LKCO,CZ,4958.633N,01611.117E,264.0m,2,15,620.0m,"125,825","CHOCEN"
|
||||||
|
"LKCR",LKCR,CZ,4956.183N,01546.833E,298.0m,2,6,980.0m,"122,6","CHRUDIM"
|
||||||
|
"LKCT",LKCT,CZ,4941.150N,01540.567E,593.0m,2,17,1010.0m,"122,2","CHOTEBOR"
|
||||||
|
"LKDK",LKDK,CZ,5024.850N,01550.217E,282.0m,2,10,860.0m,"119,65","DVURKRALOVE"
|
||||||
|
"LKER",LKER,CZ,4948.167N,01302.283E,478.0m,2,11,860.0m,"123,5","ERPUZICE"
|
||||||
|
"LKFR",LKFR,CZ,4935.367N,01822.750E,439.0m,2,8,800.0m,"123,5","FRYDLANTNO"
|
||||||
|
"LKHB",LKHB,CZ,4935.833N,01532.950E,463.0m,2,11,1000.0m,"122,6","HAVLICKUVBROD"
|
||||||
|
"LKHC",LKHC,CZ,5021.433N,01534.600E,280.0m,2,13,750.0m,"123,5","HORICE"
|
||||||
|
"LKHD",LKHD,CZ,5039.433N,01504.667E,451.0m,2,1,1000.0m,"123,5","HODKOVICE"
|
||||||
|
"LKHK",LKHK,CZ,5015.200N,01550.717E,241.0m,5,16,2400.0m,"122,30","HRADEC KRALOVE"
|
||||||
|
"LKHN",LKHN,CZ,4932.767N,01742.267E,243.0m,2,5,735.0m,"123,5","HRANICE"
|
||||||
|
"LKHO",LKHO,CZ,4918.867N,01734.133E,231.0m,2,11,1800.0m,"122,5","HOLESOV"
|
||||||
|
"LKHS",LKHS,CZ,4902.400N,01429.700E,494.0m,5,6,1000.0m,"130,2","HOSIN"
|
||||||
|
"LKHV",LKHV,CZ,4950.683N,01353.150E,370.0m,5,7,1170.0m,"122,6","HOROVICE"
|
||||||
|
"LKCH",LKCH,CZ,5028.133N,01328.083E,345.0m,2,4,1200.0m,"123,6","CHOMUTOV"
|
||||||
|
"LKCHEB",LKCHEB,CZ,5004.767N,01224.350E,469.0m,2,90,0.0m,,"LETISTE"
|
||||||
|
"LKJA",LKJA,CZ,5019.883N,01557.233E,271.0m,2,14,940.0m,"122,6","JAROMER"
|
||||||
|
"LKJC",LKJC,CZ,5025.800N,01519.983E,263.0m,2,12,1000.0m,"122,2","JICIN"
|
||||||
|
"LKJH",LKJH,CZ,4909.050N,01458.300E,513.0m,5,7,760.0m,"123,6","JINDRICHUVHRAD"
|
||||||
|
"LKJI",LKJI,CZ,4925.167N,01538.117E,555.0m,2,10,920.0m,"123,5","JIHLAVA"
|
||||||
|
"LKKA",LKKA,CZ,4922.100N,01606.967E,559.0m,2,14,700.0m,"122,2","KRIZANOV"
|
||||||
|
"LKKB",LKKB,CZ,5007.283N,01432.617E,286.0m,5,6,2000.0m,"135,5","KBELY"
|
||||||
|
"LKKL",LKKL,CZ,5006.767N,01405.383E,433.0m,2,13,900.0m,"123,475","KLADNO"
|
||||||
|
"LKKM",LKKM,CZ,4917.133N,01724.950E,188.0m,2,3,770.0m,"122,2","KROMERIZ"
|
||||||
|
"LKKO",LKKO,CZ,5000.117N,01510.400E,282.0m,2,3,850.0m,"123,5","KOLIN"
|
||||||
|
"LKKR",LKKR,CZ,5004.550N,01741.533E,369.0m,2,12,730.0m,"122,6","KRNOV"
|
||||||
|
"LKKT",LKKT,CZ,4925.100N,01319.317E,396.0m,2,9,820.0m,"122,2","KLATOVY"
|
||||||
|
"LKKU",LKKU,CZ,4901.767N,01726.383E,177.0m,5,3,2000.0m,"120,1","KUNOVICE"
|
||||||
|
"LKKV",LKKV,CZ,5012.183N,01254.900E,606.0m,5,11,2150.0m,"121,225","KARLOVYVARY"
|
||||||
|
"LKKY",LKKY,CZ,4858.800N,01707.483E,209.0m,2,15,1000.0m,"123,6","KYJOV"
|
||||||
|
"LKLB",LKLB,CZ,5046.100N,01501.500E,405.0m,2,16,1050.0m,"122,6","LIBEREC"
|
||||||
|
"LKLT",LKLT,CZ,5007.883N,01431.533E,278.0m,2,5,814.0m,"120,325","LETNANY"
|
||||||
|
"LKMB",LKMB,CZ,5023.900N,01453.900E,237.0m,2,16,900.0m,"123,6","MLADABOLESLAV"
|
||||||
|
"LKMH",LKMH,CZ,5032.400N,01500.400E,244.0m,5,7,1550.0m,"130,2","MNICHOVOHRAD"
|
||||||
|
"LKMI",LKMI,CZ,5018.100N,01717.850E,419.0m,2,5,1000.0m,"123,5","JESENIKMIKULOVI"
|
||||||
|
"LKMK",LKMK,CZ,4947.900N,01641.267E,403.0m,2,8,720.0m,"130,55","MORAVSKATREBOVA"
|
||||||
|
"LKMO",LKMO,CZ,5031.500N,01340.983E,331.0m,2,2,1130.0m,"123,5","MOST"
|
||||||
|
"LKMR",LKMR,CZ,4955.367N,01243.483E,539.0m,2,15,1035.0m,"120,9","MARIANSKELAZNE"
|
||||||
|
"LKMT",LKMT,CZ,4941.767N,01806.650E,257.0m,5,4,3500.0m,"120,8","OSTRAVAMOSNOV"
|
||||||
|
"LKNM",LKNM,CZ,5021.850N,01606.817E,305.0m,2,8,930.0m,"123,4","NOVEMESTONM"
|
||||||
|
"LKNY",LKNY,CZ,5010.167N,01503.267E,186.0m,5,9,600.0m,"123,475","NYMBURK"
|
||||||
|
"LKOL",LKOL,CZ,4935.267N,01712.650E,265.0m,2,10,900.0m,"118,0","OLOMOUC"
|
||||||
|
"LKOT",LKOT,CZ,4911.900N,01731.067E,184.0m,5,17,650.0m,"122,4","OTROKOVICE"
|
||||||
|
"LKPA",LKPA,CZ,4944.367N,01615.533E,603.0m,2,15,1500.0m,"122,6","POLICKA"
|
||||||
|
"LKPC",LKPC,CZ,5018.383N,01356.050E,368.0m,5,9,2505.0m,"130,550","PANENSKY TYNEC"
|
||||||
|
"LKPD",LKPD,CZ,5000.800N,01544.317E,226.0m,5,9,2500.0m,"121,250","PARDUBICE"
|
||||||
|
"LKPI",LKPI,CZ,4934.833N,01545.767E,531.0m,2,8,765.0m,"123,6","PRIBYSLAV"
|
||||||
|
"LKPJ",LKPJ,CZ,4926.867N,01708.033E,214.0m,2,12,1000.0m,"123,6","PROSTEJOV"
|
||||||
|
"LKPL",LKPL,CZ,4943.383N,01327.133E,419.0m,2,8,700.0m,"130,6","PLZENLETKOV"
|
||||||
|
"LKPM",LKPM,CZ,4943.200N,01406.017E,466.0m,5,6,1450.0m,"123,5","PRIBRAM"
|
||||||
|
"LKPN",LKPN,CZ,4956.350N,01532.983E,381.0m,2,7,730.0m,"123,6","PODHORANY"
|
||||||
|
"LKPO",PREROV,CZ,4925.583N,01724.400E,207.0m,5,240,2500.0m,,"PREROV"
|
||||||
|
"LKPR",LKPR,CZ,5006.050N,01415.600E,380.0m,5,6,3715.0m,"118,1","PRAHARUZYNE"
|
||||||
|
"LKPS",LKPS,CZ,4955.217N,01322.617E,437.0m,2,3,840.0m,"123,6","PLASY"
|
||||||
|
"LKRA",LKRA,CZ,5024.233N,01345.117E,269.0m,2,11,850.0m,"122,6","LOUNYRANA"
|
||||||
|
"LKRK",LKRK,CZ,5005.650N,01341.333E,388.0m,2,9,935.0m,"123,5","RAKOVNIK"
|
||||||
|
"LKRO",LKRO,CZ,5024.633N,01413.567E,222.0m,2,13,1400.0m,"122,2","ROUDNICENL"
|
||||||
|
"LKSA",LKSA,CZ,4934.000N,01302.917E,428.0m,2,7,660.0m,"123,6","STANKOV"
|
||||||
|
"LKSK",LKSK,CZ,4949.667N,01600.350E,488.0m,2,13,860.0m,"123,5","SKUTEC"
|
||||||
|
"LKSN",LKSN,CZ,5013.000N,01405.317E,329.0m,2,7,760.0m,"122,4","SLANY"
|
||||||
|
"LKSO",LKSO,CZ,4914.800N,01442.817E,407.0m,2,18,740.0m,"122,2","SOBESLAV"
|
||||||
|
"LKSR",LKSR,CZ,4904.950N,01404.550E,477.0m,2,15,900.0m,"123,5","STRUNKOVICE"
|
||||||
|
"LKST",LKST,CZ,4915.100N,01353.567E,420.0m,2,3,900.0m,"123,6","STRAKONICE"
|
||||||
|
"LKSU",LKSU,CZ,4957.633N,01701.067E,335.0m,2,18,700.0m,"122,6","SUMPERK"
|
||||||
|
"LKSZ",LKSZ,CZ,5019.483N,01415.533E,233.0m,2,15,1315.0m,"119,65","KRALUPYSAZENA"
|
||||||
|
"LKTA",LKTA,CZ,4923.467N,01442.500E,439.0m,2,12,1100.0m,"122,6","TABOR"
|
||||||
|
"LKTB",LKTB,CZ,4909.083N,01641.633E,237.0m,5,10,2650.0m,"119,6","BRNOTURANY"
|
||||||
|
"LKTC",LKTC,CZ,4959.117N,01425.533E,313.0m,2,10,800.0m,"123,4","TOCNA"
|
||||||
|
"LKTO",LKTO,CZ,5005.183N,01257.167E,651.0m,2,8,1290.0m,"122,6","TOUZIM"
|
||||||
|
"LKTV",LKTV,CZ,4926.317N,01437.417E,492.0m,5,13,1400.0m,"125,825","TABORVSECHOV"
|
||||||
|
"LKUO",LKUO,CZ,4958.717N,01625.583E,409.0m,2,14,887.0m,"122,2","USTINADORLICI"
|
||||||
|
"LKVL",LKVL,CZ,4943.733N,01452.733E,433.0m,2,13,750.0m,"123,5","VLASIM"
|
||||||
|
"LKVM",LKVM,CZ,4955.617N,01611.150E,301.0m,5,12,1200.0m,"130,6","VYSOKEMYTO"
|
||||||
|
"LKVO",LKVO,CZ,5013.000N,01423.733E,280.0m,5,10,2500.0m,"133,075","VODOCHODY"
|
||||||
|
"LKVP",LKVP,CZ,5028.100N,01612.117E,404.0m,2,9,760.0m,"122,2","HRONOVVPORICI"
|
||||||
|
"LKVR",LKVR,CZ,5037.450N,01538.783E,491.0m,2,11,840.0m,"125,325","VRCHLABI"
|
||||||
|
"LKVY",LKVY,CZ,4918.017N,01701.517E,279.0m,2,2,1280.0m,"123,5","VYSKOV"
|
||||||
|
"LKZA",LKZA,CZ,4955.700N,01804.700E,242.0m,5,10,900.0m,"123,6","ZABREH"
|
||||||
|
"LKZB",LKZB,CZ,4948.850N,01512.100E,493.0m,2,15,780.0m,"122,6","ZBRASLAVICE"
|
||||||
|
"LKZD",LKZD,CZ,5019.050N,01330.767E,269.0m,5,11,1120.0m,"125,425","ZATEC"
|
||||||
|
"LKZM",LKZM,CZ,5005.033N,01626.633E,429.0m,2,13,725.0m,"122,6","ZAMBERK"
|
||||||
|
"LKZN",LKZN,CZ,4849.067N,01603.950E,252.0m,2,8,860.0m,"130,6","ZNOJMO"
|
||||||
|
"LNARE",LNARE,CZ,4925.850N,01347.317E,565.0m,1,,,,"LNAREPLOCHA"
|
||||||
|
"LOMNICE",LOMNIC,CZ,4924.300N,01624.783E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"LOMNICE N POPELKOU",LOMNIC,CZ,5031.850N,01522.467E,500.0m,17,,,,"KRIZOVATKA STRED"
|
||||||
|
"LUCINA",LUCINA,CZ,4948.383N,01234.883E,0.0m,1,,,,"HRAZ"
|
||||||
|
"LUKA NAD JIHLAVOU",LUKA,CZ,4922.167N,01542.550E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"LYSA HORA",LYSAHO,CZ,4932.767N,01826.983E,1323.0m,7,,,,"VRCHOL"
|
||||||
|
"LYSYCE",LYSYCE,CZ,4927.183N,01632.050E,0.0m,1,,,,"ZAMEK"
|
||||||
|
"MALENIK",MALENI,CZ,4930.867N,01740.667E,479.0m,7,,,,"VRCHOL"
|
||||||
|
"MALSICE",MALSIC,CZ,4921.783N,01434.783E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"MANETIN",MANETI,CZ,4959.600N,01313.817E,430.0m,1,,,,"KOSTEL"
|
||||||
|
"MEDVEDI VRCCH",MEDVRH,CZ,5009.600N,01718.700E,1216.0m,7,,,,"VRCHOL"
|
||||||
|
"MELC",MELC,CZ,4950.850N,01745.700E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"MELNIK",MELNIK,CZ,5020.783N,01428.533E,0.0m,1,,,,"SOUTOK"
|
||||||
|
"MERIN",MERIN,CZ,4923.517N,01553.267E,519.0m,1,,,,"OBEC"
|
||||||
|
"MESTEC KRALOVE",MESKRA,CZ,5012.450N,01517.783E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"MIKULOV",MIKULO,CZ,4848.417N,01638.117E,0.0m,1,,,,"CENTRUM"
|
||||||
|
"MILESOVKA",MILESO,CZ,5033.283N,01355.817E,0.0m,1,,,,"METEO"
|
||||||
|
"MILEVSKO",MILEVS,CZ,4926.950N,01421.450E,490.0m,1,,,,"KOSTEL"
|
||||||
|
"MILOVICE",MILOVI,CZ,5014.167N,01455.417E,199.0m,5,9,2500.0m,"125,825","SLZ PLOCHA"
|
||||||
|
"MIROSLAV",MIROSL,CZ,4856.833N,01618.817E,238.0m,1,,,,"NAMESTI"
|
||||||
|
"MISTEK",MISTEK,CZ,4939.333N,01821.000E,322.0m,2,2,425.0m,"122,6","SLZ PLOCHA"
|
||||||
|
"MLADA VOZICE",MLVOZI,CZ,4931.933N,01448.550E,238.0m,1,,,,"KOSTEL"
|
||||||
|
"MOHELNICE",MOHELN,CZ,4946.617N,01655.067E,0.0m,1,,,,"NAMESTI"
|
||||||
|
"MORAVSKE BUDEJOVICE",MORBUD,CZ,4903.067N,01548.517E,481.0m,1,,,,"KOSTEL"
|
||||||
|
"MORAVSKY BEROUN",MORBER,CZ,4947.067N,01725.900E,359.0m,1,,,,"NAMESTI"
|
||||||
|
"MORAVSKY KRUMLOV",MORKRU,CZ,4902.967N,01618.467E,307.0m,1,,,,"ZAMEK"
|
||||||
|
"MORKOV",MORKOV,CZ,4932.267N,01803.583E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"MRAVENECNIK",MRAVEN,CZ,5004.533N,01708.233E,1343.0m,7,,,,"VRCHOL"
|
||||||
|
"MSENO",MSENO,CZ,5026.167N,01437.867E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"NACHOD",NACHOD,CZ,5025.050N,01610.383E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"NAKLO",NAKLO,CZ,4940.283N,01707.550E,305.0m,1,,,,"HRAZ"
|
||||||
|
"NEPOMUK",NEPOMU,CZ,4929.183N,01334.967E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"NERATOVICE",NERATO,CZ,5015.733N,01431.600E,0.0m,1,,,,"MOST"
|
||||||
|
"NETOLICE",NETOLI,CZ,4903.267N,01411.400E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"NOVA BYSTRICE",NOVBYS,CZ,4901.133N,01506.650E,535.0m,1,,,,"KOSTEL"
|
||||||
|
"NOVA PAKA",NOVPAK,CZ,5029.200N,01531.417E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"NOVE MESTO NA MORAVE",NOVMEM,CZ,4934.100N,01604.917E,594.0m,1,,,,"NADRAZI"
|
||||||
|
"NOVE MLYNY",NOMLYN,CZ,4853.750N,01635.967E,256.0m,1,,,,"KOSTEL"
|
||||||
|
"NOVE VESELI",NOVESE,CZ,4931.183N,01554.350E,500.0m,1,,,,"KRIZOVATKA"
|
||||||
|
"NOVY BYDZOV",NOVBYD,CZ,5014.500N,01529.483E,0.0m,1,,,,"NAMESTI"
|
||||||
|
"NOVY JICIN",NOVJIC,CZ,4935.500N,01801.133E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"NYMBURK",NYMBUR,CZ,5011.000N,01502.550E,0.0m,1,,,,"NAMESTI"
|
||||||
|
"NYRSKO",NYRSKO,CZ,4917.600N,01308.483E,0.0m,1,,,,"MOST"
|
||||||
|
"ODRY",ODRY,CZ,4940.183N,01749.983E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"OKRISKY",OKRISK,CZ,4914.850N,01546.250E,472.0m,1,,,,"NADRAZI"
|
||||||
|
"OKROUHLICE",OKROUH,CZ,4937.833N,01529.250E,0.0m,1,,,,"Nadrazi"
|
||||||
|
"OLESNICE",OLESNI,CZ,4933.433N,01625.333E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"OPARANY",OPARAN,CZ,4923.667N,01429.083E,420.0m,1,,,,"KOSTEL"
|
||||||
|
"OPAVA",OPAVA,CZ,4956.200N,01754.333E,0.0m,1,,,,"KRIZOVATKACENTR"
|
||||||
|
"OPOCNO",OPOCNO,CZ,5015.900N,01606.967E,0.0m,1,,,,"ZAMEK"
|
||||||
|
"ORLIK",ORLIK,CZ,4936.417N,01410.950E,0.0m,1,,,,"HRAZ"
|
||||||
|
"OSECNA",OSECNA,CZ,5041.600N,01455.250E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"OSICINY",OSICIN,CZ,5000.933N,01446.350E,381.0m,2,18,540.0m,"125,825","SLZ PLOCHA"
|
||||||
|
"OSOVA BITYSKA",OSOBIT,CZ,4919.817N,01609.983E,535.0m,1,,,,"KRIZOVATKA"
|
||||||
|
"OSTROV",OSTROV,CZ,5020.217N,01258.217E,511.0m,2,7,500.0m,"122,4","SLZ PLOCHA"
|
||||||
|
"PACOV",PACOV,CZ,4928.317N,01500.317E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"PASTVINY",PASTVI,CZ,5004.500N,01633.550E,574.0m,1,,,,"HRAZ"
|
||||||
|
"PAVOV",PAVOV,CZ,4927.067N,01536.650E,480.0m,1,,,,"KRIZOVATKA D1"
|
||||||
|
"PECKA",PECKA,CZ,5028.750N,01536.267E,0.0m,1,,,,"ZRICENINA"
|
||||||
|
"PELHRIMOV",PELHRI,CZ,4925.217N,01513.383E,494.0m,1,,,,"NADRAZI"
|
||||||
|
"PERNSTEJN",PERNST,CZ,4927.083N,01619.000E,530.0m,1,,,,"HRAD"
|
||||||
|
"PISEK",PISEK,CZ,4918.750N,01408.683E,472.0m,1,,,,"PISEKMOST"
|
||||||
|
"PLANA",PLANA,CZ,4951.967N,01244.017E,0.0m,1,,,,"CENTRUM"
|
||||||
|
"PLANANY",PLANAN,CZ,5003.033N,01501.967E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"PLESNICE",PLESNI,CZ,4946.333N,01309.783E,408.0m,2,9,800.0m,"123.5","SLZ PLOCHA"
|
||||||
|
"PLUMLOV",PLUMLO,CZ,4928.100N,01702.300E,0.0m,1,,,,"HRAZ"
|
||||||
|
"POCATKY",POCATK,CZ,4915.700N,01514.267E,0.0m,1,,,,"OBEC"
|
||||||
|
"PODBORANY",PODBOR,CZ,5013.383N,01324.250E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"PODEBRADY",PODEBR,CZ,5009.017N,01507.400E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"PODOLI",PODOLI,CZ,4921.483N,01416.467E,0.0m,1,,,,"MOST"
|
||||||
|
"POLEPY",POLEPY,CZ,5031.233N,01416.317E,190.0m,2,18,400.0m,"125,825","SLZ PLOCHA"
|
||||||
|
"POLICE NAD METUJI",POLICE,CZ,5032.233N,01614.050E,450.0m,17,,,,"STRED MESTA"
|
||||||
|
"POLNA",POLNA,CZ,4929.250N,01543.117E,490.0m,1,,,,"CENTRUM"
|
||||||
|
"POPICE",POPICE,CZ,4921.017N,01532.433E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"PORICI",PORICI,CZ,5034.433N,01556.883E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"PRADED",PRADED,CZ,5005.000N,01713.950E,1491.0m,7,,,,"VRCHOL"
|
||||||
|
"PRACHATICE",PRACHA,CZ,4900.900N,01400.533E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"PRACHOVICE",PRACHO,CZ,4953.650N,01537.733E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"PRASILSKE JEZERO",PRJEZE,CZ,4904.600N,01324.167E,0.0m,1,,,,"PRASILSKEJEZERO"
|
||||||
|
"PROSEC",PROSEC,CZ,4948.333N,01607.100E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"PROTIVANOV",PROTINOV,CZ,4928.983N,01650.267E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"RABI",RABI,CZ,4916.850N,01337.133E,0.0m,1,,,,"HRAD"
|
||||||
|
"RABSTEJN",RABSTEJN,CZ,5002.583N,01317.667E,550.0m,1,,,,"HRAD"
|
||||||
|
"RADESINSKA SVRATKA",RADESTKA,CZ,4930.533N,01604.983E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"RADHOST",RADHOS,CZ,4929.467N,01813.633E,0.0m,1,,,,"ROZHLEDNA"
|
||||||
|
"RADNICE",RADNICE,CZ,4951.367N,01336.383E,400.0m,1,,,,"KOSTEL"
|
||||||
|
"RADOSTIN NAD OSLAVOU",RADOSVOU,CZ,4927.700N,01558.000E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"RALSKO",RALSKO,CZ,5040.467N,01445.950E,0.0m,7,,,,"VRCHOL"
|
||||||
|
"RAMZOVA",RAMZOVA,CZ,5011.767N,01703.867E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"RICANY",RICANY,CZ,4959.867N,01439.867E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"RIMOV",RIMOV,CZ,4851.017N,01429.467E,400.0m,1,,,,"MOST"
|
||||||
|
"RIP",RIP,CZ,5023.150N,01417.333E,0.0m,7,,,,"VRCHOL"
|
||||||
|
"ROHOZEC",ROHOZE,CZ,4958.917N,01523.567E,206.0m,2,5,400.0m,"133,0","SLZ PLOCHA"
|
||||||
|
"ROKYCANY",ROKYCA,CZ,4944.250N,01335.317E,362.0m,1,,,,"NADRAZI"
|
||||||
|
"ROKYTNICE NAD JIZEROU",ROKJIZ,CZ,5043.783N,01526.883E,690.0m,17,,,,"KRIZOVATKA STRED"
|
||||||
|
"ROKYTNICE V ORLICKYCH HORACH",ROKORL,CZ,5009.917N,01627.933E,550.0m,17,,,,"KRIZOVATKA STRED"
|
||||||
|
"ROPICE",ROPICE,CZ,4935.833N,01835.250E,1082.0m,7,,,,"VRCHOL"
|
||||||
|
"ROZDALOVICE",ROZDAICE,CZ,5018.417N,01510.283E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"ROZNA",ROZNA,CZ,4928.733N,01613.967E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"ROZNOV POD RADHOSTEM",ROZNOTEM,CZ,4927.600N,01808.100E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"RUDA NAD MORAVOU",RUDANVOU,CZ,4958.967N,01652.750E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"RUDNIK",RUDNIK,CZ,5035.767N,01544.083E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"RYCNOV N KNEZNOU",RYCHKN,CZ,5009.483N,01616.433E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"RYMAROV",RYMARO,CZ,4956.050N,01716.350E,590.0m,1,,,,"CENTRUM"
|
||||||
|
"SADSKA",SADSKA,CZ,5008.150N,01458.800E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"SANCE",SANCE,CZ,4930.667N,01824.933E,0.0m,12,,,,"PRAHRADA"
|
||||||
|
"SANOV",SANOV,CZ,4848.617N,01622.967E,219.0m,1,,,,"NADRAZI"
|
||||||
|
"SAZAVA",SAZAVA,CZ,4953.417N,01456.667E,410.0m,2,9,400.0m,"125,825","SLZ PLOCHA"
|
||||||
|
"SEC",SEC,CZ,4950.217N,01538.783E,386.0m,1,,,,"HRAZ"
|
||||||
|
"SEDLCANY",SEDLCA,CZ,4939.333N,01426.050E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"SEDLEC PRCICE",SEDPRC,CZ,4934.333N,01432.000E,0.0m,1,,,,"CENTRUM"
|
||||||
|
"SEMILY",SEMILY,CZ,5036.133N,01519.900E,0.0m,1,,,,"MOST"
|
||||||
|
"SEVETIN",SEVETIN,CZ,4906.000N,01434.367E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"SKLENE NAD OSLAVOU",SKLENVOU,CZ,4926.250N,01603.200E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"SKRYJE",SKRYJE,CZ,4923.500N,01618.383E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"SLAPY",SLAPY,CZ,4949.433N,01426.033E,0.0m,1,,,,"HRAZ"
|
||||||
|
"SLAVONIN",SLAVON,CZ,4859.767N,01521.167E,512.0m,1,,,,"KOSTEL"
|
||||||
|
"SLEZSKA HARTA",SLEZSRTA,CZ,4953.417N,01735.100E,500.0m,12,,,,"PRAHRADA"
|
||||||
|
"SLUSOVICE",SLUSOV,CZ,4915.533N,01748.833E,354.0m,2,4,400.0m,"123,5","SLZ PLOCHA"
|
||||||
|
"SMRK",SMRK,CZ,5013.717N,01702.050E,1125.0m,7,,,,"VRCHOL"
|
||||||
|
"SMRK V BESKYDECH",SMRKVECH,CZ,4930.500N,01822.233E,1276.0m,1,,,,"VRCHOL"
|
||||||
|
"SNEZKA",SNEZKA,CZ,5044.150N,01544.433E,0.0m,7,,,,"VRCHOL"
|
||||||
|
"SOBOTKA",SOBOTK,CZ,5028.250N,01510.200E,0.0m,1,,,,"HUMPRECHT"
|
||||||
|
"SOKOLOV",SOKOLO,CZ,5011.083N,01238.133E,410.0m,1,,,,"SILNICNIMOST"
|
||||||
|
"SOPOTICE",SOPOTICE,CZ,5003.600N,01620.750E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"STAJ",STAJ,CZ,4927.500N,01548.217E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"STARE MESTO",STARESTO,CZ,5009.667N,01656.917E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"STARY JICIN",STARYCIN,CZ,4934.667N,01757.733E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"STERNBERK",STERNB,CZ,4944.333N,01718.133E,306.0m,1,,,,"ZAMEK"
|
||||||
|
"STETI",STETI,CZ,5027.917N,01424.283E,240.0m,2,14,500.0m,"125,825","SLZ PLOCHA"
|
||||||
|
"STIPA",STIPA,CZ,4916.383N,01744.867E,336.0m,2,9,400.0m,"122,8","SLZ PLOCHA"
|
||||||
|
"STITY",STITY,CZ,4957.733N,01645.700E,450.0m,1,,,,"KOSTEL"
|
||||||
|
"STONAROV",STONAROV,CZ,4916.900N,01535.267E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"STRAZEK",STRAZEK,CZ,4926.400N,01611.733E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"STRAZNICE",STRAZN,CZ,4853.300N,01717.717E,190.0m,2,5,750.0m,"125,30","SLZ PLOCHA"
|
||||||
|
"STREMY",STREMY,CZ,5023.100N,01434.617E,305.0m,2,9,500.0m,"125,825","SLZ PLOCHA"
|
||||||
|
"STRIBRO",STRIBR,CZ,4945.217N,01259.700E,0.0m,1,,,,"CENTRUM"
|
||||||
|
"SUCHY VRCH",SUCHVR,CZ,5003.100N,01641.600E,995.0m,8,,,,"VYSILAC"
|
||||||
|
"SUMVALDSKY RYBNIK",SUMVANIK,CZ,4948.750N,01707.233E,390.0m,12,,,,"RYBNIK"
|
||||||
|
"SUSICE",SUSICE,CZ,4913.783N,01331.267E,0.0m,1,,,,"MOST"
|
||||||
|
"SVETLA N SAZAVOU",SVETLA,CZ,4940.217N,01525.033E,400.0m,1,,,,"CENTRUM"
|
||||||
|
"SVIHOV",SVIHOV,CZ,4928.733N,01317.117E,452.0m,1,,,,"HRAD"
|
||||||
|
"SVITAVY",SVITAV,CZ,4945.267N,01628.450E,435.0m,1,,,,"CENTRUM"
|
||||||
|
"SVOJANOV",SVOJANOV,CZ,4937.617N,01624.533E,0.0m,16,,,,"HRAD"
|
||||||
|
"SYKOR",SYKOR,CZ,4926.800N,01624.450E,701.0m,7,,,,"VRCHOL"
|
||||||
|
"TACHOV",TACHOV,CZ,4947.683N,01238.133E,530.0m,1,,,,"CENTRUM"
|
||||||
|
"TELC",TELC,CZ,4910.967N,01527.900E,523.0m,1,,,,"NADRAZI"
|
||||||
|
"TEPLA",TEPLA,CZ,4958.783N,01251.833E,600.0m,1,,,,"STRED"
|
||||||
|
"TEPLICE",TEPLIC,CZ,5038.800N,01349.767E,0.0m,1,,,,"NADRAZICENTRUM"
|
||||||
|
"TEPLICE NAD METUJI",TEPLIUJI,CZ,5035.567N,01610.333E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"TISNOV",TISNOV,CZ,4920.833N,01625.083E,395.0m,1,,,,"NADRAZI"
|
||||||
|
"TRAVNY",TRAVNY,CZ,4933.667N,01830.533E,1203.0m,7,,,,"VRCHOL"
|
||||||
|
"TREBETIN",TREBETIN,CZ,4946.217N,01516.217E,550.0m,1,,,,"KOSTEL"
|
||||||
|
"TREBIC",TREBIC,CZ,4912.683N,01553.067E,505.0m,1,,,,"NADRAZI"
|
||||||
|
"TREBON",TREBON,CZ,4859.983N,01446.367E,534.0m,1,,,,"HRAZSVET"
|
||||||
|
"TREST",TREST,CZ,4917.217N,01528.933E,582.0m,1,,,,"NADRAZI"
|
||||||
|
"TRHOVE SVINY",TRHSVI,CZ,4850.317N,01438.317E,637.0m,1,,,,"KOSTEL"
|
||||||
|
"TROJBOD",TROJBO,CZ,5012.233N,01443.533E,0.0m,1,,,,"TROJBOD"
|
||||||
|
"TROSKY",TROSKY,CZ,5030.983N,01514.000E,0.0m,1,,,,"ZRICENINA"
|
||||||
|
"TRUTNOV",TRUTNO,CZ,5033.700N,01554.450E,420.0m,17,,,,"KRIZOVATKA STRED"
|
||||||
|
"TYN N VLTAVOU",TYNVLT,CZ,4913.283N,01425.267E,486.0m,1,,,,"MOST"
|
||||||
|
"TYNEC NAD LABEM",TYNECBEM,CZ,5002.433N,01521.500E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"TYNISTE N ORLICI",TYNORL,CZ,5009.267N,01604.450E,321.0m,1,,,,"CENTRUM"
|
||||||
|
"UHERSKY BROD",UHERBR,CZ,4901.333N,01738.467E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"UHLIRSKE JANOVICE",UHLJAN,CZ,4952.850N,01503.867E,389.0m,1,,,,"OBEC"
|
||||||
|
"UNICOV",UNICOV,CZ,4946.267N,01707.300E,0.0m,1,,,,"CENTRUM"
|
||||||
|
"UPICE",UPICE,CZ,5030.617N,01600.950E,410.0m,17,,,,"KRIZOVATKA STRED"
|
||||||
|
"USOV",USOV,CZ,4947.900N,01700.667E,300.0m,1,,,,"KOSTEL"
|
||||||
|
"USTEK",USTEK,CZ,5035.067N,01420.600E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"USTI NAD LABEM",USTLAB,CZ,5039.550N,01402.833E,0.0m,1,,,,"SILNICNIMOST"
|
||||||
|
"UVALY",UVALY,CZ,5004.483N,01443.367E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"VALASKE MEZIRICI",VALMEZ,CZ,4928.617N,01757.733E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"VALEC",VALEC,CZ,5010.467N,01315.133E,500.0m,1,,,,"KOSTEL"
|
||||||
|
"VELESIN",VELESI,CZ,4849.600N,01426.967E,518.0m,2,9,400.0m,"120,675","SLZ PLOCHA"
|
||||||
|
"VELKA BITES",VELBIT,CZ,4917.283N,01613.683E,0.0m,1,,,,"CENTRUM"
|
||||||
|
"VELKA BYSTRICE",VELKCE,CZ,4935.867N,01721.967E,260.0m,1,,,,"NADRAZI"
|
||||||
|
"VELKA DESTNA",VELDES,CZ,5018.133N,01623.917E,1115.0m,7,,,,"VRCHOL"
|
||||||
|
"VELKA JAVORINA",VELKNA,CZ,4851.517N,01740.483E,970.0m,7,,,,"VRCHOL"
|
||||||
|
"VELKE KARLOVICE",VELKCE,CZ,4921.600N,01817.133E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"VELKE MEZIRICI",VELMEZ,CZ,4921.600N,01600.900E,0.0m,1,,,,"DALNICNIMOST"
|
||||||
|
"VELKY JAVORNIK",VELJAV,CZ,4919.133N,01822.533E,1071.0m,7,,,,"VRCHOL"
|
||||||
|
"VELKY POLOM",VELKOM,CZ,4930.367N,01840.233E,1067.0m,7,,,,"VRCHOL"
|
||||||
|
"VELKY SENOV",VELNOV,CZ,5059.600N,01422.783E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"VELKY TYNEC",VELNEC,CZ,4933.050N,01719.933E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"VERNYROV",VERNYV,CZ,4950.833N,01509.183E,450.0m,1,,,,"KRIZOVATKA"
|
||||||
|
"VESELI N LUZNICI",VESLUZ,CZ,4911.233N,01442.050E,0.0m,1,,,,"MOST"
|
||||||
|
"VESELI NAD LIZNICI",VESECI,CZ,4911.617N,01442.983E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"VETRNI JENIKOV",VETRNV,CZ,4928.417N,01528.683E,650.0m,1,,,,"KOSTEL"
|
||||||
|
"VEVERSKA BITYSKA",VEVESA,CZ,4916.533N,01626.233E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"VEZNICE",VEZNCE,CZ,4924.533N,01545.367E,0.0m,1,,,,"NADJEZD"
|
||||||
|
"VIMPERK",VIMPER,CZ,4903.500N,01347.133E,694.0m,1,,,,"CENTRUM"
|
||||||
|
"VINOR",VINOR,CZ,5008.583N,01434.817E,0.0m,1,,,,"ZAMEK"
|
||||||
|
"VIR",VIR,CZ,4934.100N,01619.183E,517.0m,1,,,,"HRAZ"
|
||||||
|
"VISNOVA",VISNVA,CZ,4942.350N,01408.800E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"VIZOVICE",VIZOVE,CZ,4913.167N,01750.567E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"VODNANY",VODNAN,CZ,4908.750N,01410.733E,490.0m,1,,,,"NADRAZI"
|
||||||
|
"VOJNUV MESTEC",VOJMES,CZ,4940.767N,01552.517E,0.0m,1,,,,"NAMESTI"
|
||||||
|
"VOLYNE",VOLYNE,CZ,4910.100N,01353.500E,0.0m,1,,,,"MOST"
|
||||||
|
"VOTICE",VOTICE,CZ,4938.350N,01438.483E,436.0m,1,,,,"OBEC"
|
||||||
|
"VRANOV",VRANOV,CZ,4918.533N,01636.733E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"VRANOV",VRANOV,CZ,4854.533N,01549.250E,405.0m,1,,,,"HRAZ"
|
||||||
|
"VRBNO POD PRADEDEM",VRBNOM,CZ,5007.033N,01722.750E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"VSETIN",VSETIN,CZ,4920.017N,01759.217E,0.0m,1,,,,"KRIZOVATKAJIH"
|
||||||
|
"VYROVICE",VYRVCE,CZ,4855.767N,01606.567E,296.0m,12,,,,"VODNI NADRZ"
|
||||||
|
"VYSKYTNA",VYSKYA,CZ,4925.717N,01521.850E,650.0m,1,,,,"KOSTEL"
|
||||||
|
"VYSSI BROD",VYSIRD,CZ,4837.250N,01418.567E,600.0m,1,,,,"KOSTEL"
|
||||||
|
"ZABREH",ZABREH,CZ,4952.333N,01653.183E,388.0m,1,,,,"CENTRUM"
|
||||||
|
"ZAHORI",ZAHORI,CZ,4928.033N,01740.083E,317.0m,2,6,450.0m,"119,750","SLZ PLOCHA"
|
||||||
|
"ZALY",ZALY,CZ,5039.467N,01534.350E,1018.0m,7,,,,"ROZHLEDNA"
|
||||||
|
"ZATEC",ZATEC,CZ,5020.150N,01332.550E,0.0m,1,,,,"MOST"
|
||||||
|
"ZDAKOV",ZDAKOV,CZ,4930.250N,01411.000E,0.0m,1,,,,"ZDAKOVSKYMOST"
|
||||||
|
"ZDANIC",ZDANICE,CZ,4904.067N,01701.783E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"ZDAR N SAZAVOU",ZDARSA,CZ,4933.967N,01556.383E,0.0m,1,,,,"CENTRUM"
|
||||||
|
"ZDAREC",ZDAREC,CZ,4922.617N,01615.950E,0.0m,1,,,,"STRED OBCE"
|
||||||
|
"ZEBRAK",ZEBRAK,CZ,4952.183N,01353.717E,386.0m,1,,,,"D5 EXIT"
|
||||||
|
"ZEHUN",ZEHUN,CZ,5008.133N,01517.450E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"ZELETAVA",ZELETA,CZ,4908.600N,01540.417E,0.0m,1,,,,"KOSTEL"
|
||||||
|
"ZELEZNA RUDA",ZELRUD,CZ,4908.317N,01313.883E,0.0m,1,,,,"OBEC"
|
||||||
|
"ZELIV",ZELIV,CZ,4932.017N,01513.183E,406.0m,1,,,,"KOSTEL"
|
||||||
|
"ZELIVKA MOST",ZELIVK,CZ,4940.700N,01508.883E,447.0m,1,,,,"MOST"
|
||||||
|
"ZLATY CHLUM",ZLATCH,CZ,5014.317N,01714.400E,0.0m,1,,,,"ROZHLEDNA"
|
||||||
|
"ZLIN",ZLIN,CZ,4913.583N,01739.500E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"ZLUTICE",ZLUTIC,CZ,5005.150N,01307.583E,0.0m,1,,,,"HRAZ"
|
||||||
|
"ZNOJMO",ZNOJMO,CZ,4851.150N,01603.550E,300.0m,1,,,,"NADRAZI"
|
||||||
|
"ZRUC NAD SAZAVOU",ZRUC,CZ,4944.283N,01506.250E,380.0m,1,,,,"NADRAZI"
|
||||||
|
"ZULOVA",ZULOVA,CZ,5018.433N,01706.117E,0.0m,1,,,,"NADRAZI"
|
||||||
|
"ZVIKOV",ZVIKOV,CZ,4926.317N,01411.533E,0.0m,1,,,,"HRAD"
|
||||||
|
"ZVIKOVEC",ZVKVEC,CZ,4957.583N,01341.867E,323.0m,1,,,,"MOST"
|
||||||
|
,
|
||||||
|
@@ -45,8 +45,6 @@ class BaseModel:
|
|||||||
return obj
|
return obj
|
||||||
|
|
||||||
|
|
||||||
# TODO: doplnit GPX k letu
|
|
||||||
|
|
||||||
user_is_in_organization = Table(
|
user_is_in_organization = Table(
|
||||||
"user_is_in_organization",
|
"user_is_in_organization",
|
||||||
BaseModel.metadata,
|
BaseModel.metadata,
|
||||||
@@ -219,7 +217,7 @@ class Flight(BaseModel):
|
|||||||
weather_info_takeoff_id: Mapped[int] = mapped_column(Integer, ForeignKey('weather_info.id'), nullable=True)
|
weather_info_takeoff_id: Mapped[int] = mapped_column(Integer, ForeignKey('weather_info.id'), nullable=True)
|
||||||
weather_info_landing_id: Mapped[int] = mapped_column(Integer, ForeignKey('weather_info.id'), nullable=True)
|
weather_info_landing_id: Mapped[int] = mapped_column(Integer, ForeignKey('weather_info.id'), nullable=True)
|
||||||
landings: Mapped[int] = mapped_column(Integer, default=1)
|
landings: Mapped[int] = mapped_column(Integer, default=1)
|
||||||
|
is_public: Mapped[bool] = mapped_column(Boolean, server_default='0')
|
||||||
created_by_id: Mapped[int] = mapped_column(Integer, ForeignKey('user.id'))
|
created_by_id: Mapped[int] = mapped_column(Integer, ForeignKey('user.id'))
|
||||||
created_at: Mapped[datetime] = mapped_column(DateTime, server_default=func.now())
|
created_at: Mapped[datetime] = mapped_column(DateTime, server_default=func.now())
|
||||||
deleted: Mapped[bool] = mapped_column(Boolean, nullable=False, server_default='0')
|
deleted: Mapped[bool] = mapped_column(Boolean, nullable=False, server_default='0')
|
||||||
@@ -282,7 +280,10 @@ class User(BaseModel):
|
|||||||
id: Mapped[int] = mapped_column(primary_key=True)
|
id: Mapped[int] = mapped_column(primary_key=True)
|
||||||
email: Mapped[str] = mapped_column(String(128), nullable=False, unique=True)
|
email: Mapped[str] = mapped_column(String(128), nullable=False, unique=True)
|
||||||
name: Mapped[str] = mapped_column(String(128), nullable=False)
|
name: Mapped[str] = mapped_column(String(128), nullable=False)
|
||||||
avatar_image_url: Mapped[str] = mapped_column(String(128), nullable=True)
|
description: Mapped[str] = mapped_column(Text, nullable=False)
|
||||||
|
public_username: Mapped[str] = mapped_column(String(128), nullable=True, unique=True)
|
||||||
|
avatar_image_filename: Mapped[str] = mapped_column(String(128), nullable=True)
|
||||||
|
title_image_filename: Mapped[str] = mapped_column(String(128), nullable=True)
|
||||||
password_hashed: Mapped[str] = mapped_column(String(60), nullable=False)
|
password_hashed: Mapped[str] = mapped_column(String(60), nullable=False)
|
||||||
created_at: Mapped[datetime] = mapped_column(DateTime, server_default=func.now())
|
created_at: Mapped[datetime] = mapped_column(DateTime, server_default=func.now())
|
||||||
|
|
||||||
|
|||||||
@@ -1,60 +0,0 @@
|
|||||||
from database.models import User, Flight, Copilot, Airport, Aircraft
|
|
||||||
from endpoints.base import BaseEndpoint
|
|
||||||
|
|
||||||
|
|
||||||
class InitDataEndpoint(BaseEndpoint):
|
|
||||||
|
|
||||||
async def on_get(self):
|
|
||||||
user_ids = []
|
|
||||||
copilot_ids = []
|
|
||||||
flight_ids = []
|
|
||||||
|
|
||||||
users = [
|
|
||||||
User(avatar_image_url="", name="Karel Vomacka", email="a@test.cz", password_hashed="****"),
|
|
||||||
User(avatar_image_url="", name="Karel Novak", email="b@test.cz", password_hashed="****"),
|
|
||||||
User(avatar_image_url="", name="Franta Pavel", email="c@test.cz", password_hashed="****"),
|
|
||||||
]
|
|
||||||
|
|
||||||
airport = Airport(name="Letiste Letnany", icao_code="LKLT")
|
|
||||||
self.db.add(airport)
|
|
||||||
|
|
||||||
for user in users:
|
|
||||||
self.db.add(user)
|
|
||||||
await self.db.flush()
|
|
||||||
user_ids.append(user.id)
|
|
||||||
|
|
||||||
aircraft = Aircraft(name="OK-AUR28", type="Bristell NG5", description="", created_by=user)
|
|
||||||
self.db.add(aircraft)
|
|
||||||
|
|
||||||
copilot = None
|
|
||||||
if user.name == 'Franta Pavel':
|
|
||||||
copilot = Copilot(name="Copilot test", created_by_id=user.id)
|
|
||||||
self.db.add(copilot)
|
|
||||||
await self.db.flush()
|
|
||||||
|
|
||||||
copilot_ids.append(copilot.id)
|
|
||||||
|
|
||||||
flight = Flight(name="test flight", description="Testovaci popis", duration_total=65, duration_pic=65,
|
|
||||||
takeoff_airport=airport, landing_airport=airport, aircraft=aircraft, created_by_id=user.id,
|
|
||||||
copilot_id=copilot.id if copilot else None)
|
|
||||||
self.db.add(flight)
|
|
||||||
await self.db.flush()
|
|
||||||
flight_ids.append(flight.id)
|
|
||||||
|
|
||||||
return {
|
|
||||||
"user_ids": user_ids,
|
|
||||||
"copilot_ids": copilot_ids,
|
|
||||||
"flight_ids": flight_ids,
|
|
||||||
'airport_id': airport.id
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# self.db.add(Flight(name="test"))
|
|
||||||
# await self.db.flush()
|
|
||||||
#
|
|
||||||
# data = await self.db.execute(select(Flight).order_by(desc(Flight.id)))
|
|
||||||
# model = data.scalars().first()
|
|
||||||
# return {
|
|
||||||
# "status": model
|
|
||||||
# }
|
|
||||||
@@ -4,7 +4,6 @@ from fastapi_jwt.jwt import JwtAccess, JwtRefresh
|
|||||||
from passlib.hash import bcrypt
|
from passlib.hash import bcrypt
|
||||||
from sqlalchemy import select
|
from sqlalchemy import select
|
||||||
from starlette.responses import Response
|
from starlette.responses import Response
|
||||||
|
|
||||||
from database.models import User
|
from database.models import User
|
||||||
from endpoints.base import BaseEndpoint
|
from endpoints.base import BaseEndpoint
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
@@ -74,15 +73,3 @@ class RefreshEndpoint(BaseEndpoint):
|
|||||||
"access_token": access_token,
|
"access_token": access_token,
|
||||||
"access_token_validity": self.access_security.access_expires_delta.total_seconds(),
|
"access_token_validity": self.access_security.access_expires_delta.total_seconds(),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class MeEndpoint(BaseEndpoint):
|
|
||||||
|
|
||||||
async def on_get(self, credentials) -> dict:
|
|
||||||
if not credentials:
|
|
||||||
raise HTTPException(status_code=401)
|
|
||||||
|
|
||||||
query = select(User).filter_by(id=credentials['id'])
|
|
||||||
user = (await self.db.scalars(query)).first()
|
|
||||||
|
|
||||||
return user.as_dict()
|
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import re
|
import re
|
||||||
|
|
||||||
from fastapi import HTTPException
|
from fastapi import HTTPException
|
||||||
from sqlalchemy import select
|
from sqlalchemy import select
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ from graphql_schema.entities.airport import Airport
|
|||||||
from graphql_schema.entities.photo import Photo
|
from graphql_schema.entities.photo import Photo
|
||||||
from graphql_schema.entities.poi import PointOfInterest
|
from graphql_schema.entities.poi import PointOfInterest
|
||||||
from graphql_schema.sqlalchemy_to_strawberry_type import strawberry_sqlalchemy_type, strawberry_sqlalchemy_input
|
from graphql_schema.sqlalchemy_to_strawberry_type import strawberry_sqlalchemy_type, strawberry_sqlalchemy_input
|
||||||
from upload_utils import get_public_url, handle_file_upload, check_directories, file_exists, delete_file
|
from upload_utils import handle_file_upload, file_exists, delete_file
|
||||||
from .helpers.flight import handle_aircraft_save, handle_track_edit, handle_copilot_edit, handle_weather_info
|
from .helpers.flight import handle_aircraft_save, handle_track_edit, handle_copilot_edit, handle_weather_info
|
||||||
from ..dataloaders.weather import airport_weather_info_loader
|
from ..dataloaders.weather import airport_weather_info_loader
|
||||||
from ..types import ComboboxInput
|
from ..types import ComboboxInput
|
||||||
@@ -95,28 +95,40 @@ class Flight:
|
|||||||
gpx_track_url: Optional[str] = strawberry.field(resolver=load_gpx_track_url)
|
gpx_track_url: Optional[str] = strawberry.field(resolver=load_gpx_track_url)
|
||||||
|
|
||||||
|
|
||||||
def get_base_query(user_id: int):
|
def get_base_query(user_id: Optional[int], username: Optional[str] = None, is_auth: bool = False):
|
||||||
return (
|
query = (
|
||||||
select(models.Flight)
|
select(models.Flight)
|
||||||
.filter(models.Flight.created_by_id == user_id)
|
|
||||||
.filter(models.Flight.deleted.is_(False))
|
.filter(models.Flight.deleted.is_(False))
|
||||||
.order_by(models.Flight.id.desc())
|
.order_by(models.Flight.id.desc())
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if user_id:
|
||||||
|
query = query.filter(models.Flight.created_by_id == user_id)
|
||||||
|
|
||||||
|
if username:
|
||||||
|
query = query.filter(models.Flight.created_by.public_username == username)
|
||||||
|
|
||||||
|
if not is_auth:
|
||||||
|
query = query.filter(models.Flight.is_public.is_(True))
|
||||||
|
|
||||||
|
return query
|
||||||
|
|
||||||
|
|
||||||
@strawberry.type
|
@strawberry.type
|
||||||
class FlightQueries:
|
class FlightQueries:
|
||||||
|
|
||||||
@strawberry.field
|
@strawberry.field
|
||||||
async def flights(root, info) -> List[Flight]:
|
async def flights(root, info, username: Optional[str] = None) -> List[Flight]:
|
||||||
query = get_base_query(info.context.user_id).order_by(models.Flight.id.desc())
|
query = (
|
||||||
|
get_base_query(user_id=info.context.user_id, username=username, is_auth=bool(info.context.user_id))
|
||||||
|
.order_by(models.Flight.id.desc())
|
||||||
|
)
|
||||||
return (await info.context.db.scalars(query)).all()
|
return (await info.context.db.scalars(query)).all()
|
||||||
|
|
||||||
@strawberry.field
|
@strawberry.field
|
||||||
async def flight(root, info, id: int) -> Flight:
|
async def flight(root, info, id: int, username: Optional[str] = None) -> Flight:
|
||||||
query = (
|
query = (
|
||||||
get_base_query(info.context.user_id)
|
get_base_query(user_id=info.context.user_id, username=username, is_auth=bool(info.context.user_id))
|
||||||
.filter(models.Flight.id == id)
|
.filter(models.Flight.id == id)
|
||||||
.filter(models.Flight.deleted.is_(False))
|
.filter(models.Flight.deleted.is_(False))
|
||||||
)
|
)
|
||||||
@@ -176,7 +188,7 @@ class EditFlightMutation:
|
|||||||
# TODO: umoznit editovat jen vlastni lety!
|
# TODO: umoznit editovat jen vlastni lety!
|
||||||
|
|
||||||
flight = (await info.context.db.scalars(
|
flight = (await info.context.db.scalars(
|
||||||
get_base_query(info.context.user_id).filter(models.Flight.id == id)
|
get_base_query(user_id=info.context.user_id, is_auth=bool(info.context.user_id)).filter(models.Flight.id == id)
|
||||||
)).one()
|
)).one()
|
||||||
|
|
||||||
data = input.to_dict()
|
data = input.to_dict()
|
||||||
@@ -221,7 +233,7 @@ class DeleteFlightMutation:
|
|||||||
async def delete_flight(self, info, id: int) -> Flight:
|
async def delete_flight(self, info, id: int) -> Flight:
|
||||||
flight = (
|
flight = (
|
||||||
(await info.context.db.scalars(
|
(await info.context.db.scalars(
|
||||||
get_base_query(info.context.user_id)
|
get_base_query(user_id=info.context.user_id, is_auth=True)
|
||||||
.filter(models.Flight.id == id))
|
.filter(models.Flight.id == id))
|
||||||
)
|
)
|
||||||
.one()
|
.one()
|
||||||
|
|||||||
@@ -1,25 +1,90 @@
|
|||||||
|
from typing import Optional
|
||||||
import strawberry
|
import strawberry
|
||||||
|
from graphql import GraphQLError
|
||||||
|
from passlib.hash import bcrypt
|
||||||
from sqlalchemy import select
|
from sqlalchemy import select
|
||||||
|
from strawberry.file_uploads import Upload
|
||||||
|
from database import models
|
||||||
from database.models import User
|
from database.models import User
|
||||||
from graphql_schema.sqlalchemy_to_strawberry_type import strawberry_sqlalchemy_type
|
from graphql_schema.sqlalchemy_to_strawberry_type import strawberry_sqlalchemy_type, strawberry_sqlalchemy_input
|
||||||
|
from upload_utils import handle_file_upload, delete_file
|
||||||
|
|
||||||
|
|
||||||
@strawberry_sqlalchemy_type(User, exclude_fields=['password_hashed'])
|
@strawberry_sqlalchemy_type(User, exclude_fields=['password_hashed'])
|
||||||
class UserType:
|
class User:
|
||||||
pass
|
|
||||||
|
|
||||||
|
async def load_avatar_image_url(root):
|
||||||
|
if not root.avatar_image_filename:
|
||||||
|
return None
|
||||||
|
|
||||||
@strawberry.type
|
return f"http://localhost:8000/uploads/profile/{root.id}/{root.avatar_image_filename}"
|
||||||
class LoginResultType:
|
|
||||||
logged_user = UserType
|
async def load_title_image_url(root):
|
||||||
access_token: str
|
if not root.title_image_filename:
|
||||||
refresh_token: str
|
return "http://localhost:8000/static/default-title-image.jpg"
|
||||||
|
|
||||||
|
return f"http://localhost:8000/uploads/profile/{root.id}/{root.title_image_filename}"
|
||||||
|
|
||||||
|
avatar_image_url: Optional[str] = strawberry.field(resolver=load_avatar_image_url)
|
||||||
|
title_image_url: str = strawberry.field(resolver=load_title_image_url)
|
||||||
|
|
||||||
|
|
||||||
@strawberry.type
|
@strawberry.type
|
||||||
class UserQueries:
|
class UserQueries:
|
||||||
|
@strawberry.field
|
||||||
|
async def user(root, info, username: str) -> User:
|
||||||
|
print("username")
|
||||||
|
if len(username) == 0:
|
||||||
|
raise GraphQLError("Username not set!")
|
||||||
|
|
||||||
|
return (await info.context.db.scalars(
|
||||||
|
select(models.User).filter_by(public_username=username)
|
||||||
|
)).one()
|
||||||
|
|
||||||
@strawberry.field
|
@strawberry.field
|
||||||
async def logged_user(root, info) -> UserType:
|
async def logged_user(root, info) -> User:
|
||||||
query = select(User).filter_by(id=info.context.user_id)
|
return (await info.context.db.scalars(
|
||||||
return (await info.context.db.scalars(query)).first()
|
select(models.User).filter_by(id=info.context.user_id)
|
||||||
|
)).one()
|
||||||
|
|
||||||
|
|
||||||
|
@strawberry.type
|
||||||
|
class EditUserMutation:
|
||||||
|
@strawberry_sqlalchemy_input(
|
||||||
|
models.User,
|
||||||
|
exclude_fields=['id', 'email', 'avatar_image_filename', 'password_hashed', 'title_image_filename'],
|
||||||
|
all_optional=True
|
||||||
|
)
|
||||||
|
class EditUserInput:
|
||||||
|
old_password: Optional[str] = None
|
||||||
|
new_password: Optional[str] = None
|
||||||
|
avatar_image: Optional[Upload] = None
|
||||||
|
title_image: Optional[Upload] = None
|
||||||
|
|
||||||
|
@strawberry.mutation
|
||||||
|
async def edit_logged_user(root, info, input: EditUserInput) -> User:
|
||||||
|
user = (await info.context.db.scalars(
|
||||||
|
select(models.User).filter_by(id=info.context.user_id)
|
||||||
|
)).one()
|
||||||
|
|
||||||
|
user_image_path = f"/app/uploads/profile/{user.id}"
|
||||||
|
data = input.to_dict()
|
||||||
|
if input.avatar_image:
|
||||||
|
if user.avatar_image_filename:
|
||||||
|
delete_file(f"{user_image_path}/{user.avatar_image_filename}", silent=True)
|
||||||
|
|
||||||
|
data['avatar_image_filename'] = await handle_file_upload(input.avatar_image, user_image_path)
|
||||||
|
|
||||||
|
if input.title_image:
|
||||||
|
if user.title_image_filename:
|
||||||
|
delete_file(f"{user_image_path}/{user.title_image_filename}", silent=True)
|
||||||
|
|
||||||
|
data['title_image_filename'] = await handle_file_upload(input.title_image, user_image_path)
|
||||||
|
|
||||||
|
if input.old_password and input.new_password:
|
||||||
|
if not bcrypt.verify(input.old_password, user.password_hashed):
|
||||||
|
raise GraphQLError("Bad password")
|
||||||
|
|
||||||
|
data['password_hashed'] = bcrypt.hash(input.new_password)
|
||||||
|
|
||||||
|
return await models.User.update(info.context.db, obj=user, data=data)
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ from graphql_schema.entities.copilot import CreateCopilotMutation, EditCopilotMu
|
|||||||
from graphql_schema.entities.flight import CreateFlightMutation, EditFlightMutation, DeleteFlightMutation
|
from graphql_schema.entities.flight import CreateFlightMutation, EditFlightMutation, DeleteFlightMutation
|
||||||
from graphql_schema.entities.photo import UploadPhotoMutation, DeletePhotoMutation, EditPhotoMutation
|
from graphql_schema.entities.photo import UploadPhotoMutation, DeletePhotoMutation, EditPhotoMutation
|
||||||
from graphql_schema.entities.poi import CreatePointOfInterestMutation, EditPointOfInterestMutation
|
from graphql_schema.entities.poi import CreatePointOfInterestMutation, EditPointOfInterestMutation
|
||||||
|
from graphql_schema.entities.user import EditUserMutation
|
||||||
|
|
||||||
Mutation = merge_types("Mutation", (
|
Mutation = merge_types("Mutation", (
|
||||||
CreateAircraftMutation,
|
CreateAircraftMutation,
|
||||||
@@ -19,4 +20,5 @@ Mutation = merge_types("Mutation", (
|
|||||||
EditPointOfInterestMutation,
|
EditPointOfInterestMutation,
|
||||||
CreateCopilotMutation,
|
CreateCopilotMutation,
|
||||||
EditCopilotMutation,
|
EditCopilotMutation,
|
||||||
|
EditUserMutation,
|
||||||
))
|
))
|
||||||
|
|||||||
+9
-24
@@ -10,8 +10,7 @@ from starlette.status import HTTP_401_UNAUTHORIZED
|
|||||||
from strawberry.fastapi import GraphQLRouter
|
from strawberry.fastapi import GraphQLRouter
|
||||||
from config import APP_SECRET_KEY, GRAPHIQL, APP_DEBUG
|
from config import APP_SECRET_KEY, GRAPHIQL, APP_DEBUG
|
||||||
from dependencies.db import db_session
|
from dependencies.db import db_session
|
||||||
from endpoints.init_data import InitDataEndpoint
|
from endpoints.login import LoginEndpoint, LoginInput, RefreshEndpoint
|
||||||
from endpoints.login import LoginEndpoint, LoginInput, MeEndpoint, RefreshEndpoint
|
|
||||||
from endpoints.registration import RegistrationInput, RegistrationEndpoint
|
from endpoints.registration import RegistrationInput, RegistrationEndpoint
|
||||||
from graphql_schema.schema import schema, GraphQLContext
|
from graphql_schema.schema import schema, GraphQLContext
|
||||||
|
|
||||||
@@ -33,6 +32,7 @@ class App:
|
|||||||
|
|
||||||
self.setup_exception_handlers(app)
|
self.setup_exception_handlers(app)
|
||||||
self.setup_middleware(app)
|
self.setup_middleware(app)
|
||||||
|
self.setup_static_paths(app)
|
||||||
self.setup_routes(app)
|
self.setup_routes(app)
|
||||||
|
|
||||||
return app
|
return app
|
||||||
@@ -43,15 +43,19 @@ class App:
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def setup_middleware(app: FastAPI):
|
def setup_middleware(app: FastAPI):
|
||||||
print("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA")
|
|
||||||
app.add_middleware(
|
app.add_middleware(
|
||||||
CORSMiddleware,
|
CORSMiddleware,
|
||||||
allow_origins=["http://localhost:9001"],
|
allow_origins=["http://localhost:9001"], # TODO: pridat pres ENV URL produkce
|
||||||
allow_credentials=True,
|
allow_credentials=True,
|
||||||
allow_methods=["*"],
|
allow_methods=["*"],
|
||||||
allow_headers=["*"],
|
allow_headers=["*"],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def setup_static_paths(app: FastAPI):
|
||||||
|
app.mount("/uploads", StaticFiles(directory="/app/uploads"), name="uploads")
|
||||||
|
app.mount("/static", StaticFiles(directory="/app/static"), name="static")
|
||||||
|
|
||||||
def setup_graphql_endpoint(self, app: FastAPI):
|
def setup_graphql_endpoint(self, app: FastAPI):
|
||||||
if APP_DEBUG:
|
if APP_DEBUG:
|
||||||
@self.api_router.get("/graphql/autologin")
|
@self.api_router.get("/graphql/autologin")
|
||||||
@@ -67,12 +71,9 @@ class App:
|
|||||||
credentials: JwtAuthorizationCredentials = Security(self.access_security),
|
credentials: JwtAuthorizationCredentials = Security(self.access_security),
|
||||||
db: AsyncSession = Depends(db_session)
|
db: AsyncSession = Depends(db_session)
|
||||||
):
|
):
|
||||||
if not credentials:
|
|
||||||
raise HTTPException(status_code=HTTP_401_UNAUTHORIZED)
|
|
||||||
|
|
||||||
return GraphQLContext(
|
return GraphQLContext(
|
||||||
jwt_auth_credentials=credentials,
|
jwt_auth_credentials=credentials,
|
||||||
user_id=credentials['id'],
|
user_id=credentials['id'] if credentials else None,
|
||||||
db=db,
|
db=db,
|
||||||
jwt=self.access_security,
|
jwt=self.access_security,
|
||||||
background_tasks=Depends(BackgroundTasks)
|
background_tasks=Depends(BackgroundTasks)
|
||||||
@@ -88,13 +89,6 @@ class App:
|
|||||||
|
|
||||||
def setup_routes(self, app: FastAPI):
|
def setup_routes(self, app: FastAPI):
|
||||||
# protected endpoints
|
# protected endpoints
|
||||||
@self.api_router.get("/me")
|
|
||||||
async def me(
|
|
||||||
db: AsyncSession = Depends(db_session),
|
|
||||||
credentials: JwtAuthorizationCredentials = Security(self.access_security)
|
|
||||||
):
|
|
||||||
return await MeEndpoint(db).on_get(credentials)
|
|
||||||
|
|
||||||
@app.post("/refresh")
|
@app.post("/refresh")
|
||||||
async def refresh(
|
async def refresh(
|
||||||
resp: Response,
|
resp: Response,
|
||||||
@@ -104,10 +98,7 @@ class App:
|
|||||||
|
|
||||||
self.setup_graphql_endpoint(app)
|
self.setup_graphql_endpoint(app)
|
||||||
|
|
||||||
app.mount("/uploads", StaticFiles(directory="/app/uploads"), name="uploads")
|
|
||||||
|
|
||||||
# public endpoints
|
# public endpoints
|
||||||
|
|
||||||
@self.api_router.post("/login")
|
@self.api_router.post("/login")
|
||||||
async def login(resp: Response, user: LoginInput, db: AsyncSession = Depends(db_session)):
|
async def login(resp: Response, user: LoginInput, db: AsyncSession = Depends(db_session)):
|
||||||
return await LoginEndpoint(db, self.access_security, self.refresh_security).on_post(user, resp)
|
return await LoginEndpoint(db, self.access_security, self.refresh_security).on_post(user, resp)
|
||||||
@@ -116,11 +107,5 @@ class App:
|
|||||||
async def registration(user: RegistrationInput, db: AsyncSession = Depends(db_session)):
|
async def registration(user: RegistrationInput, db: AsyncSession = Depends(db_session)):
|
||||||
return await RegistrationEndpoint(db).on_post(user)
|
return await RegistrationEndpoint(db).on_post(user)
|
||||||
|
|
||||||
# testing endpoint
|
|
||||||
|
|
||||||
@self.api_router.get("/init-data")
|
|
||||||
async def init_data(db: AsyncSession = Depends(db_session)):
|
|
||||||
return await InitDataEndpoint(db).on_get()
|
|
||||||
|
|
||||||
# musi byt na konci
|
# musi byt na konci
|
||||||
app.include_router(self.api_router)
|
app.include_router(self.api_router)
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 263 KiB |
Reference in New Issue
Block a user