Skip to content
Mikkel94 edited this page Apr 23, 2018 · 2 revisions

Models

Vi har delt opp modellene i 2 deler, fg_auth og api. Dette for å gjøre det mer oversiktelig.Vi har lagt innlogging og brukere til fg_auth, resten(som skal brukes av frontend og api-delen av applikasjonen,som du skal kunne hente ut med GET, POST) er lagt til api

Forkortelser:

Forkortelse Verbose
FK(<model name>) Foreign Key(<model name>), FK linker til en annen modell
MtM(<model name>) ManyToManyField(<model name>), MtM er array med FKs
CF(<length>) CharField(<length>)
IF IntegerField
COMMENT Dette er en kommentar, ikke en del av tabellen
BF BooleanField

Ekstra stuff:

Alle modeller har også et felt som heter pk (private key) som er en unik index som django automagisk legger til i hver entitet for at det skal være feilfritt at hver rad i SQLtabellen er unike.

fg_auth

Model: FGUserManager extends BaseUserManager
Attribute name Type Description
No attributes, only methods create_user and create_superuser lager brukere (kun de med spesiell tilgang kan gjøre dette)
Model: Job extends model.Model
Attribute name Type Description
name CF(64) navn på jobben, f.eks. 'Webutvikler'
description CF(256) beskrivelse av jobben
date_created DateTimeField når jobben ble laget (vi kan også bruke allerede lagde jobber når man lager/oppdaterer en bruker
Model: User extends AbstractUser
Attribute name Type Description
address CF(100) brukerens addresse
zip_code CF(16) brukerens zip-code, length=16 pga kan være andre zip codes enn norske (selv om vi ikke har tenkt på å ta med land personen bor i...) er CF i tilfelle zipcode starter med '0' (da ville 0en forsvunnet hvis vi ikke fyller ut tallet med at det skal være minst 4 tall i inten, men da ville det blitt kluss med zip codes som ikke er 4 tall og starter med 0, så dette var det beste tenkte vi
city CF(30) brukerens bosted (by)
phone CF(15) samme begrunnelse som med zip_code
member_number IF medlemsnummer til Samfundet(rødt kort), burde kanskje vært CF(x), men fungerer greit som det er pga vi kan sette min-length
COMMENT: FG-INFO Tidligere hadde vi en egen databaseentitet/modell som het fg-info som fungerte som "brukere" for FG, hvor de la inn ekstra informasjon (informasjonen som blir beskrevet nedenfor denne kommentaren), vi kuttet ut dette for å ikke ha flere "dobble" brukere
opptaksaar IF året en FGer er tatt opp
gjengjobber MtM(Job) jobber en FGer har/har hatt
hjemmeside CF(255) hjemmeside til en spesifikk FGer, f.eks. www.castillo.no
uker CF(255) Hvilke uker en FGer har vært med på, f.eks '15, 17' etc.
fg_kallenavn CF(255) kallenavn til en FGer (ikke i bruk atm)
bilde ImageField Kan oppgraderes til VersatileImageField senere, er bare profilbilde så ikke nødvendig egt. men kan være greit å få gjort
aktiv_pang BF true hvis er aktiv pang, false hvis ikke aktiv pang. Today.date må være >2 mer enn opptaksår for at denne skal kunne være huket av
comments CF(255) Skal bli brukt til å beskrive hva denne personen kan hjelpe deg (en utenforstående) med på Samfundet
downloaded_photos MtM(Photo, through UserDownloadedPhoto) Tracker hvilke bilder denne brukeren har lasta ned
Model: UserDownloadedPhoto extends models.Model
Attribute name Type Description
photo FK(Photo) FK til bilde som er lastet ned
user FK(User) Dette ser ut som en Circular dependency, her kan ting gå galt, bør sjekke opp dette, helst før prod
date_downloaded DateTimeField tidspunkt for når bildet ble lastet ned

api

Model: Tag extends models.Model
Attribute name Type Description
name CF(50) navn på tag
Model: Category Tag extends models.Model
Attribute name Type Description
name CF(80) Navn på category
Model: Media extends models.Model
Attribute name Type Description
name CF(80) navn på media, altså hvilken type det er, som f.eks. 'analog' eller 'digitalt' osv.
Model: Album extends models.Model
Attribute name Type Description
name CF(5) FG har en "stygg" måte å navngi album på, men navnene blir korte og presise da
date_created DateTimeField dato album ble opprettet
description CF(32) lengre beskrivelse av albumet, siden navnene er "stygge" er dette brukt som et verbose navn
type PositiveSmallIntegerField vet ikke om et eneste sted vi bruker dette her, men er nok en "beskrivelse" på hva slags type album det er, som f.eks. om det er et album for analoge eller digitale bilder
Model: Place extends models.Model
Attribute name Type Description
name CF(80) navn på stedet hvor bildene er tatt, f.eks. 'storsalen'
Model: SecurityLevel extends models.Model
Attribute name Type Description
name CF(16) navn på securitylevel vi tilegner til hvert bilde
Model: Photo extends models.Model

Beskriver hvordan data tilhørende til hvert bilde ser ut

Attribute name Type Description
photo VersatileImageField ImageField som kan inneholde blandt annet flere forskjellige størrelser av bilder.
motive CF(256) Motiv (hva som er på bildet, er alltid navnet på det eventet som er tatt bilde av)
description CF(2048) nytt felt, skal bli brukt som en mer verbose motiv
date_taken DateTimeField dato bildet er tatt/eventet starter
photo_ppoi PPOIField Ikke i bruk såvidt jeg vet ennå, men her skal man senere kunne sette "midtpunktet" til bildet på ansiktet til folk etc.
page IF side bildet ligger på i albumet
image_number IF nummeret på bildet på siden det ligger på i albumet
lapel BF True hvis bildet er et oppslagsbilde, false hvis ikke. Dette blir aldri brukt av fotografene som er litt synd
scanned BF brukes kun på analoge bilder, true hvis man har scannet bildet, false hvis ikke
on_home_page BF true hvis bildet skal vises på forsiden, false hvis ikke
splash BF true hvis bildet skal vises på forsiden som det store bildet på toppen, false hvis ikke. Kun det siste opplastede splash bildet vises
security_level FK(SecurityLevel) Bestemmer hvem som kan se dette, FG/HUSFOLK/ALLE
tags MtM(Tag) tagsene som er brukt på bildet, blir brukt til å legge på info om hvem som har tatt bildet (uten at de blir kreditert, men fortsatt kan finne igjen arbeidet sitt senere), og "artige" kommentarer og sånn
category FK(Category) Hvilken kategori bildet tilhører
media FK(Media) Hvilken type medium ble brukt til å ta bildet
album FK(Album) Hvilket album bildet ligger i (mest nytteverdi mtp. analoge bilder som legges i fysiske permer)
place FK(Place) Hvor på huset bildet er tatt (eller utenfor hvis det er tatt utenfor huset)
Model: Order extends models.Model

En samling av data som trengs for å gjennomføre en bestilling av bilder

Attribute name Type Description
name CF(64) navn på den som har bestillt
email CF(32) epost til den som har bestillt
address CF(64) Addressen til den som har bestillt
place CF(32) Stedsnavn tilhørende til addresse
zip_code CF(4) postnummer
post_or_get CF(16) om personen skal hente ordren i Luka eller om vi skal sende
comment CF(512) ekstra kommentarer om ordren
date_created DateTimeField dato ordren ble gjort
order_completed BF true hvis ordren er sendt/lagt i luka, false ellers, bestemmer også hvor i Frontend ordren skal vises (completed/not completed fanen)
Model: OrderPhoto extends models.Model

Bilder som tilhører en ordre

Attribute name Type Description
photo FK(Photo) hvilket bilde som er i dette OrderPhoto
order FK(Order) hvilken Order bildet tilhører
format CF(16) hvilket format bildet skal leveres i, f.eks. A4 eller Digitalt