Fø værfilteret
This commit is contained in:
parent
3d3470267c
commit
89e2670c11
8 changed files with 200 additions and 133 deletions
BIN
2026-04-18 16.34.15 teeoff.no acc663ad88cd.jpg
Normal file
BIN
2026-04-18 16.34.15 teeoff.no acc663ad88cd.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 58 KiB |
|
|
@ -2874,14 +2874,16 @@ async def quick_edit_facility(facility_id: int, request: QuickEditRequest):
|
|||
).strip()
|
||||
if request.field == 'footnote':
|
||||
normalized_value = str(request.value or '').strip() or None
|
||||
footnote_updated_at = datetime.utcnow() if normalized_value else None
|
||||
await conn.execute(
|
||||
"""
|
||||
UPDATE facilities
|
||||
SET footnote = $1,
|
||||
footnote_updated_at = CASE WHEN $1 IS NULL THEN NULL ELSE NOW() END
|
||||
WHERE id = $2
|
||||
footnote_updated_at = $2
|
||||
WHERE id = $3
|
||||
""",
|
||||
normalized_value,
|
||||
footnote_updated_at,
|
||||
facility_id
|
||||
)
|
||||
else:
|
||||
|
|
|
|||
|
|
@ -47,12 +47,25 @@ Etablert fontbruk i appen:
|
|||
- Display: `Oswald`
|
||||
- UI/brødtekst: `Mulish`
|
||||
|
||||
Anbefalt typescale:
|
||||
|
||||
- Hero-eyebrow / små systemetiketter: `0.6875rem` til `0.75rem`, uppercase, høy tracking
|
||||
- Filterlabels og kortbadges: `0.625rem` til `0.75rem`, uppercase, høy tracking
|
||||
- Brødtekst kompakt: `0.9375rem`
|
||||
- Standard brødtekst: `1rem`
|
||||
- Lang lese-/forklaringstekst: `1rem` til `1.0625rem` med romslig linjehøyde
|
||||
- Seksjonsoverskrift mobil: `2rem` til `2.5rem`
|
||||
- Seksjonsoverskrift desktop: `3rem` til `3.75rem`
|
||||
- Hero-hovedbudskap mobil: minst `1.75rem`
|
||||
- Hero-hovedbudskap tablet/desktop: `3rem` til `5rem`
|
||||
|
||||
Regler:
|
||||
|
||||
- Overskrifter skal bruke display-font og tåle høy vekt, store størrelser og tett linjehøyde.
|
||||
- Brødtekst, skjemaer, kortmetadata og hjelpetekst skal bruke UI-font.
|
||||
- Eyebrows, små etiketter og filterlabels skal ofte være uppercase med tydelig tracking.
|
||||
- Lange forklaringer skal være lettleste, ikke komprimerte.
|
||||
- Mobil skal ikke få "samme typografi, bare mindre". De viktigste budskapene må fortsatt oppleves store og prioriterte på smale skjermer.
|
||||
|
||||
Tone i typografi:
|
||||
|
||||
|
|
|
|||
|
|
@ -379,6 +379,7 @@ export default function FacilitySearch({
|
|||
const [facilityFilter, setFacilityFilter] = useState("");
|
||||
const [sortMethod, setSortMethod] = useState<SortMethod>("updated");
|
||||
const [userLocation, setUserLocation] = useState<{ lat: number; lng: number } | null>(null);
|
||||
const [isMobileSearchOpen, setIsMobileSearchOpen] = useState(false);
|
||||
|
||||
useEffect(() => {
|
||||
setAreaFilter(fixedAreaFilter);
|
||||
|
|
@ -588,6 +589,14 @@ export default function FacilitySearch({
|
|||
filtersCount > 0 ? ` • ${filtersCount} aktive filtre` : ""
|
||||
}`;
|
||||
const labelClassName = variant === "home" ? "text-white/70" : "text-[#617063]";
|
||||
const isCollapsibleHomeSearch = variant === "home";
|
||||
const searchPanelOpen = !isCollapsibleHomeSearch || isMobileSearchOpen;
|
||||
|
||||
useEffect(() => {
|
||||
if (isCollapsibleHomeSearch && filtersCount > 0) {
|
||||
setIsMobileSearchOpen(true);
|
||||
}
|
||||
}, [filtersCount, isCollapsibleHomeSearch]);
|
||||
|
||||
return (
|
||||
<section className="mx-auto max-w-[1400px] px-4 py-6 sm:px-6 sm:py-8 lg:px-8 lg:py-10">
|
||||
|
|
@ -601,11 +610,45 @@ export default function FacilitySearch({
|
|||
|
||||
<div className={getSearchShellClasses(variant)}>
|
||||
<div className="mb-5">
|
||||
<h2 className="section-title text-3xl sm:text-4xl">
|
||||
{variant === "home" ? "Søk golfbaner" : "Filtrer oversikten"}
|
||||
</h2>
|
||||
{isCollapsibleHomeSearch ? (
|
||||
<>
|
||||
<button
|
||||
type="button"
|
||||
onClick={() => setIsMobileSearchOpen((current) => !current)}
|
||||
aria-expanded={searchPanelOpen}
|
||||
className="flex w-full items-center justify-between gap-4 rounded-[1.4rem] border border-white/12 bg-white/6 px-4 py-4 text-left transition hover:bg-white/10 md:hidden"
|
||||
>
|
||||
<span className="section-title text-[1.7rem] text-white">Søk golfbaner</span>
|
||||
<span
|
||||
className={`inline-flex h-11 w-11 shrink-0 items-center justify-center rounded-full border border-white/15 bg-white/10 text-white transition-transform duration-300 ${
|
||||
searchPanelOpen ? "rotate-180" : ""
|
||||
}`}
|
||||
aria-hidden="true"
|
||||
>
|
||||
<svg className="h-5 w-5" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.2">
|
||||
<path d="m6 9 6 6 6-6" strokeLinecap="round" strokeLinejoin="round" />
|
||||
</svg>
|
||||
</span>
|
||||
</button>
|
||||
<div className="hidden md:block">
|
||||
<h2 className="section-title text-3xl sm:text-4xl">Søk golfbaner</h2>
|
||||
</div>
|
||||
</>
|
||||
) : (
|
||||
<h2 className="section-title text-3xl sm:text-4xl">Filtrer oversikten</h2>
|
||||
)}
|
||||
</div>
|
||||
|
||||
<div
|
||||
className={`overflow-hidden transition-[max-height,opacity,margin] duration-300 ease-out md:!visible md:!mt-0 md:!max-h-none md:!opacity-100 ${
|
||||
isCollapsibleHomeSearch
|
||||
? searchPanelOpen
|
||||
? "visible mt-0 max-h-[1200px] opacity-100"
|
||||
: "invisible -mt-2 max-h-0 opacity-0 md:visible"
|
||||
: "visible mt-0 max-h-none opacity-100"
|
||||
}`}
|
||||
aria-hidden={isCollapsibleHomeSearch && !searchPanelOpen}
|
||||
>
|
||||
<div className="grid gap-3 md:grid-cols-2 xl:grid-cols-4">
|
||||
{!fixedAreaFilter && (
|
||||
<FieldSelect label="Område" value={areaFilter} onChange={setAreaFilter} labelClassName={labelClassName}>
|
||||
|
|
@ -624,7 +667,7 @@ export default function FacilitySearch({
|
|||
<option value="stenger_snart">Stenger snart</option>
|
||||
<option value="aapner_snart">Åpner snart</option>
|
||||
<option value="stengt">Stengt</option>
|
||||
<option value="under_utvikling">Under utvikling</option>
|
||||
<option value="under-utvikling">Under utvikling</option>
|
||||
<option value="nedlagt">Nedlagt</option>
|
||||
<option value="ukjent">Ukjent status</option>
|
||||
</FieldSelect>
|
||||
|
|
@ -638,11 +681,10 @@ export default function FacilitySearch({
|
|||
<option value="under-utvikling">Under utvikling</option>
|
||||
</FieldSelect>
|
||||
|
||||
<FieldSelect label="Ekstra" value={specialFilter} onChange={setSpecialFilter} labelClassName={labelClassName}>
|
||||
<FieldSelect label="NSG / GOLFAMORE" value={specialFilter} onChange={setSpecialFilter} labelClassName={labelClassName}>
|
||||
<option value="">Ingen tillegg</option>
|
||||
<option value="golfamore">Golfamore</option>
|
||||
<option value="nsg">Seniorgolf / NSG</option>
|
||||
<option value="simulator">Simulator</option>
|
||||
</FieldSelect>
|
||||
</div>
|
||||
|
||||
|
|
@ -729,6 +771,7 @@ export default function FacilitySearch({
|
|||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{processedFacilities.length === 0 ? (
|
||||
<div className="surface-card mt-6 rounded-[2rem] px-6 py-12 text-center">
|
||||
|
|
|
|||
|
|
@ -189,9 +189,12 @@ export default function HeroSlider({
|
|||
|
||||
<div className="absolute inset-0 z-10 mx-auto flex max-w-[1400px] flex-col justify-between px-4 py-5 sm:px-6 sm:py-7 lg:px-8 lg:py-10">
|
||||
<div className="flex justify-end">
|
||||
<div className="max-w-[14rem] text-right sm:max-w-[22rem] lg:max-w-[48rem]">
|
||||
<h1 className="text-sm font-bold uppercase leading-tight tracking-tight text-white sm:text-3xl lg:text-5xl">
|
||||
<span>TeeOff.no gir deg komplett oversikt over </span>
|
||||
<div className="w-full max-w-full text-right sm:w-auto sm:max-w-[24rem] lg:max-w-[48rem]">
|
||||
<h1 className="text-[1.43rem] font-bold uppercase leading-[0.92] tracking-[-0.01em] text-white sm:text-3xl lg:text-5xl">
|
||||
<span className="block sm:inline">TeeOff.no gir deg komplett oversikt</span>
|
||||
<span className="block sm:inline">
|
||||
<span className="sm:hidden"> over </span>
|
||||
<span className="hidden sm:inline"> over </span>
|
||||
<Link
|
||||
href="/golfbaner"
|
||||
className="font-extrabold transition hover:text-white"
|
||||
|
|
@ -201,6 +204,7 @@ export default function HeroSlider({
|
|||
ALLE
|
||||
</Link>
|
||||
<span> norske golfbaner!</span>
|
||||
</span>
|
||||
</h1>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ export const dynamic = "force-dynamic";
|
|||
|
||||
const articleSlug = "note-to-self-lenker-til-viktige-turneringer-i-golfbox";
|
||||
const pageTitle = "Turneringer";
|
||||
const pageIntro = "Her er alle turneringene vi ikke vet hvordan vi skal finne i Golfbox (og andre steder). God golfsesong!";
|
||||
function renderBlock(block: CourseVisitBodyBlock, index: number) {
|
||||
if (block.type !== "richText") {
|
||||
return null;
|
||||
|
|
@ -70,7 +71,7 @@ export default async function TournamentsPage() {
|
|||
type="application/ld+json"
|
||||
dangerouslySetInnerHTML={{ __html: JSON.stringify(breadcrumbJsonLd) }}
|
||||
/>
|
||||
<InfoPageShell eyebrow="Turneringer" title={article.title} intro={article.excerpt}>
|
||||
<InfoPageShell eyebrow="Turneringer" title={article.title} intro={pageIntro}>
|
||||
<div className="space-y-6">
|
||||
<CourseVisitGallery title={article.title} media={article.mediaGallery.slice(0, 1)} />
|
||||
{article.blocks.map((block, index) => renderBlock(block, index))}
|
||||
|
|
|
|||
|
|
@ -3,11 +3,13 @@ import type { ReactNode } from "react";
|
|||
type InfoPageShellProps = {
|
||||
eyebrow: string;
|
||||
title: string;
|
||||
intro: string;
|
||||
intro?: string;
|
||||
children: ReactNode;
|
||||
};
|
||||
|
||||
export default function InfoPageShell({ eyebrow, title, intro, children }: InfoPageShellProps) {
|
||||
const normalizedIntro = String(intro || "").trim();
|
||||
|
||||
return (
|
||||
<main className="site-shell min-h-screen">
|
||||
<section className="border-b border-[#112015]/8 bg-[linear-gradient(135deg,rgba(139,195,74,0.16),rgba(255,255,255,0.92))]">
|
||||
|
|
@ -16,7 +18,9 @@ export default function InfoPageShell({ eyebrow, title, intro, children }: InfoP
|
|||
{eyebrow}
|
||||
</p>
|
||||
<h1 className="text-5xl font-black text-[#112015] sm:text-6xl">{title}</h1>
|
||||
<p className="mt-6 text-base leading-7 text-[#4F5F50] sm:text-lg">{intro}</p>
|
||||
{normalizedIntro ? (
|
||||
<p className="mt-6 text-base leading-7 text-[#4F5F50] sm:text-lg">{normalizedIntro}</p>
|
||||
) : null}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
|
|
|||
|
|
@ -510,9 +510,9 @@
|
|||
"link": "https://teeoff.no/meninger/note-to-self-lenker-til-viktige-turneringer-i-golfbox/",
|
||||
"title": "Lenker til viktige turneringer i Golfbox",
|
||||
"titleHtml": "Lenker til viktige turneringer i Golfbox",
|
||||
"excerpt": "Her er alle turneringene vi ikke vet hvordan vi skal finne i Golfbox (og andre steder). God golfsesong! Narvesen Tour Region Midt Region Vestland Region Rogaland Region Sør Region Viken Vest Region Innlandet Region Nord-Norge Srixon Tour Srixon Tour Callaway – Østlandstour Callaway – Østlandstour Garmin Norgescup Garmin Norgescup Nordic Golf League Nordic Golf League…",
|
||||
"excerptHtml": "<p>Her er alle turneringene vi ikke vet hvordan vi skal finne i Golfbox (og andre steder). God golfsesong! Narvesen Tour Region Midt Region Vestland Region Rogaland Region Sør Region Viken Vest Region Innlandet Region Nord-Norge Srixon Tour Srixon Tour Callaway – Østlandstour Callaway – Østlandstour Garmin Norgescup Garmin Norgescup Nordic Golf League Nordic Golf League…</p>\n",
|
||||
"contentHtml": "\n\n\t<p>Her er alle turneringene vi ikke vet hvordan vi skal finne i Golfbox (og andre steder).</p>\n<p>God golfsesong!</p>\n\t<h2>Narvesen Tour</h2>\n<ul>\n<li><a href=\"https://www.golfbox.no/app_livescoring/tour/?language=1044#/customer/873/schedule\" target=\"_blank\" rel=\"noopener\">Region Midt</a></li>\n<li><a href=\"https://www.golfbox.no/app_livescoring/tour/?language=1044#/customer/874/schedule\" target=\"_blank\" rel=\"noopener\">Region Vestland</a></li>\n<li><a href=\"https://www.golfbox.no/app_livescoring/tour/?language=1044#/customer/875/schedule\" target=\"_blank\" rel=\"noopener\">Region Rogaland</a></li>\n<li><a href=\"https://www.golfbox.no/livescoring/tour/?language=1044#/customer/876/schedule\" target=\"_blank\" rel=\"noopener\">Region Sør</a></li>\n<li><a href=\"https://www.golfbox.no/app_livescoring/tour/?language=1044#/customer/877/schedule\" target=\"_blank\" rel=\"noopener\">Region Viken Vest</a></li>\n<li><a href=\"https://www.golfbox.no/livescoring/tour/?language=1044#/customer/878/schedule\" target=\"_blank\" rel=\"noopener\">Region Innlandet</a></li>\n<li><a href=\"https://www.golfbox.no/livescoring/tour/?language=1044#/customer/1442/schedule\" target=\"_blank\" rel=\"noopener\">Region Nord-Norge</a></li>\n</ul>\n<h2>Srixon Tour</h2>\n<ul>\n<li><a href=\"https://www.golfbox.no/app_livescoring/tour/default.asp?language=1044#/customer/18/schedule/2022/7671\" target=\"_blank\" rel=\"noopener\">Srixon Tour</a></li>\n</ul>\n<h2>Callaway – Østlandstour</h2>\n<ul>\n<li><a href=\"https://www.golfbox.no/livescoring/tour/default.asp?language=1044#/customer/895/schedule/2022\" target=\"_blank\" rel=\"noopener\">Callaway – Østlandstour</a></li>\n</ul>\n<h2>Garmin Norgescup</h2>\n<ul>\n<li><a href=\"https://www.golfbox.no/app_livescoring/tour/default.asp?language=2057#/customer/18/schedule/2022/1276\" target=\"_blank\" rel=\"noopener\">Garmin Norgescup</a></li>\n</ul>\n<h2>Nordic Golf League</h2>\n<ul>\n<li><a href=\"https://www.golfbox.no/portal/golf_info/gbtourframe.asp?language=1044#/customer/1/schedule\" target=\"_blank\" rel=\"noopener\">Nordic Golf League</a></li>\n</ul>\n<h2>NM</h2>\n<ul>\n<li><a href=\"https://www.golfbox.no/app_livescoring/tour/default.asp?language=2057#/customer/18/schedule/2022/9896\" target=\"_blank\" rel=\"noopener\">NM</a></li>\n</ul>\n<h2>Lag-NM</h2>\n<ul>\n<li><a href=\"https://www.golfbox.no/app_livescoring/tour/default.asp?language=2057#/customer/18/schedule/2022/9897\" target=\"_blank\" rel=\"noopener\">Lag-NM</a></li>\n</ul>\n<h2>Øvrige forbundsturneringer</h2>\n<ul>\n<li><a href=\"https://www.golfbox.no/app_livescoring/tour/default.asp?language=2057#/customer/18/schedule/2022/3697\" target=\"_blank\" rel=\"noopener\">Øvrige forbundsturneringer</a></li>\n</ul>\n\t<h2>Norsk Senior Golf</h2>\n<ul>\n<li><a href=\"https://www.golfbox.dk/livescoring/tour/default.asp?language=1044#/customer/154/schedule\" target=\"_blank\" rel=\"noopener\">Norsk Senior Golf</a></li>\n</ul>\n<h2>Golfhäftet</h2>\n<ul>\n<li><a href=\"https://www.golfhaftet.com/no/konkurranse/trophy/\" target=\"_blank\" rel=\"noopener\">Golfhäftet Trophy</a></li>\n</ul>\n<h2>Norsk MidAm</h2>\n<ul>\n<li><a href=\"https://www.golfbox.no/livescoring/tour/?language=1044#/customer/184/schedule\" target=\"_blank\" rel=\"noopener\">Norsk MidAm</a> (Besøk hjemmesiden til <a href=\"http://www.midam.no/\" target=\"_blank\" rel=\"noopener\">Norsk MidAm her</a>.)</li>\n</ul>\n<h2>Åpne turneringer på Sørlandet</h2>\n<ul>\n<li>Klubbene på Sørlandet har gått sammen om en Facebook-side for de åpne turneringene de arrangerer. Den kan ses ved å klikke <a href=\"https://www.facebook.com/golfturneringpaasorlandet/\" target=\"_blank\" rel=\"noopener\">her</a>.</li>\n</ul>\n<h2>Region Nord-Norge (med NNM)</h2>\n<ul>\n<li><a href=\"https://www.golfbox.no/livescoring/tour/?language=1044#/customer/1442/schedule\" target=\"_blank\" rel=\"noopener\">Nord-Norge</a></li>\n</ul>\n<h2>Tour de Golf</h2>\n<ul>\n<li><a href=\"http://www.tourdegolf.no/om-tour-de-golf/tour-de-golf/\" target=\"_blank\" rel=\"noopener\">Tour de Golf</a></li>\n</ul>\n<h2>International Pairs (tidligere Nordea Pairs)</h2>\n<ul>\n<li><a href=\"https://www.facebook.com/International-Pairs-Norway-2022-112067397687588/\" target=\"_blank\" rel=\"noopener\">International Pairs (Facebook)</a></li>\n</ul>\n<p>—</p>\n<p>(Ytterligere en ting som er fint å få unnagjort før sesongen starter…)</p>\n<p>-Det er forresten bare å gi beskjed dersom det er noen regionale eller nasjonale oversikter som mangler her!</p>\n<h3>Bonus</h3>\n<p>Norges Golfforbund har også klart å gjemme bort nyhetene sine. De kan finnes <a href=\"https://www.golfforbundet.no/ngf-nytt/\" target=\"_blank\" rel=\"noopener\">her</a>.</p>\n\n",
|
||||
"excerpt": "",
|
||||
"excerptHtml": "",
|
||||
"contentHtml": "\n\n\t<p>Her er alle turneringene vi ikke vet hvordan vi skal finne i Golfbox (og andre steder).</p>\n <p>God golfsesong!</p>\n\t <h2>Narvesen Tour</h2>\n <ul>\n <li>\n <a href=\"https://www.golfbox.no/app_livescoring/tour/?language=1044#/customer/873/schedule\" target=\"_blank\" rel=\"noopener\">Region Midt</a>\n </li>\n <li>\n <a href=\"https://www.golfbox.no/app_livescoring/tour/?language=1044#/customer/874/schedule\" target=\"_blank\" rel=\"noopener\">Region Vestland</a>\n </li>\n <li>\n <a href=\"https://www.golfbox.no/app_livescoring/tour/?language=1044#/customer/875/schedule\" target=\"_blank\" rel=\"noopener\">Region Rogaland</a>\n </li>\n <li>\n <a href=\"https://www.golfbox.no/livescoring/tour/?language=1044#/customer/876/schedule\" target=\"_blank\" rel=\"noopener\">Region Sør</a>\n </li>\n <li>\n <a href=\"https://www.golfbox.no/app_livescoring/tour/?language=1044#/customer/877/schedule\" target=\"_blank\" rel=\"noopener\">Region Viken Vest</a>\n </li>\n <li>\n <a href=\"https://www.golfbox.no/livescoring/tour/?language=1044#/customer/878/schedule\" target=\"_blank\" rel=\"noopener\">Region Innlandet</a>\n </li>\n <li>\n <a href=\"https://www.golfbox.no/livescoring/tour/?language=1044#/customer/1442/schedule\" target=\"_blank\" rel=\"noopener\">Region Nord-Norge</a>\n </li>\n </ul>\n <h2>Srixon Tour</h2>\n <ul>\n <li>\n <a href=\"https://www.golfbox.no/app_livescoring/tour/default.asp?language=1044#/customer/18/schedule/2026/7671\" target=\"_blank\" rel=\"noopener\">Srixon Tour</a>\n </li>\n </ul>\n <h2>Callaway – Østlandstour</h2>\n <ul>\n <li>\n <a href=\"https://www.golfbox.no/livescoring/tour/default.asp?language=1044#/customer/895/schedule/2026\" target=\"_blank\" rel=\"noopener\">Callaway – Østlandstour</a>\n </li>\n </ul>\n <h2>Garmin Norgescup</h2>\n <ul>\n <li>\n <a href=\"https://www.golfbox.no/app_livescoring/tour/default.asp?language=2057#/customer/18/schedule/2026/1276\" target=\"_blank\" rel=\"noopener\">Garmin Norgescup</a>\n </li>\n </ul>\n <h2>Nordic Golf League</h2>\n <ul>\n <li>\n <a href=\"https://www.golfbox.no/portal/golf_info/gbtourframe.asp?language=1044#/customer/1/schedule\" target=\"_blank\" rel=\"noopener\">Nordic Golf League</a>\n </li>\n </ul>\n <h2>NM</h2>\n <ul>\n <li>\n <a href=\"https://www.golfbox.no/app_livescoring/tour/default.asp?language=2057#/customer/18/schedule/2026/9896\" target=\"_blank\" rel=\"noopener\">NM</a>\n </li>\n </ul>\n <h2>Lag-NM</h2>\n <ul>\n <li>\n <a href=\"https://www.golfbox.no/app_livescoring/tour/default.asp?language=2057#/customer/18/schedule/2026/9897\" target=\"_blank\" rel=\"noopener\">Lag-NM</a>\n </li>\n </ul>\n <h2>Øvrige forbundsturneringer</h2>\n <ul>\n <li>\n <a href=\"https://www.golfbox.no/app_livescoring/tour/default.asp?language=2057#/customer/18/schedule/2026/3697\" target=\"_blank\" rel=\"noopener\">Øvrige forbundsturneringer</a>\n </li>\n </ul>\n\t <h2>Norsk Senior Golf</h2>\n <ul>\n <li>\n <a href=\"https://www.golfbox.dk/livescoring/tour/default.asp?language=1044#/customer/154/schedule\" target=\"_blank\" rel=\"noopener\">Norsk Senior Golf</a>\n </li>\n </ul>\n <h2>Golfamore</h2>\n <ul>\n <li>\n <a href=\"https://www.golfamore.com/no/konkurranse/trophy/\" target=\"_blank\" rel=\"noopener\">Golfamore Trophy</a>\n </li>\n </ul>\n <h2>Åpne turneringer på Sørlandet</h2>\n <ul>\n <li>Klubbene på Sørlandet har gått sammen om en Facebook-side for de åpne turneringene de arrangerer. Den kan ses ved å klikke <a href=\"https://www.facebook.com/golfturneringpaasorlandet/\" target=\"_blank\" rel=\"noopener\">her</a>. </li>\n </ul>\n <h2>Region Nord-Norge (med NNM)</h2>\n <ul>\n <li>\n <a href=\"https://www.golfbox.no/livescoring/tour/?language=1044#/customer/1442/schedule\" target=\"_blank\" rel=\"noopener\">Nord-Norge</a>\n </li>\n </ul>\n <p>—</p>\n <p>(Ytterligere en ting som er fint å få unnagjort før sesongen starter…)</p>\n <p>-Det er forresten bare å gi beskjed dersom det er noen regionale eller nasjonale oversikter som mangler her!</p>\n <h3>Bonus</h3>\n <p>Norges Golfforbund har også klart å gjemme bort nyhetene sine. De kan finnes <a href=\"https://www.golfforbundet.no/ngf-nytt/\" target=\"_blank\" rel=\"noopener\">her</a>. </p>\n\n",
|
||||
"publishedAt": "2019-03-17T07:00:27",
|
||||
"updatedAt": "2024-08-18T10:45:18",
|
||||
"author": {
|
||||
|
|
|
|||
Loading…
Reference in a new issue