ladok3 4.17__py3-none-any.whl → 4.19__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of ladok3 might be problematic. Click here for more details.
- doc/ltxobj/ladok3.pdf +0 -0
- ladok3/__init__.py +619 -3130
- ladok3/api.nw +1001 -10
- ladok3/ladok3.nw +70 -4
- ladok3/report.nw +124 -117
- ladok3/report.py +81 -63
- ladok3/student.nw +20 -1
- ladok3/student.py +62 -41
- ladok3/undoc.nw +54 -3111
- {ladok3-4.17.dist-info → ladok3-4.19.dist-info}/LICENSE +1 -1
- {ladok3-4.17.dist-info → ladok3-4.19.dist-info}/METADATA +28 -1
- ladok3-4.19.dist-info/RECORD +21 -0
- ladok3-4.17.dist-info/RECORD +0 -21
- {ladok3-4.17.dist-info → ladok3-4.19.dist-info}/WHEEL +0 -0
- {ladok3-4.17.dist-info → ladok3-4.19.dist-info}/entry_points.txt +0 -0
ladok3/__init__.py
CHANGED
|
@@ -293,6 +293,22 @@ class LadokSession:
|
|
|
293
293
|
f"{response.text}"
|
|
294
294
|
)
|
|
295
295
|
|
|
296
|
+
# added by GQMJr
|
|
297
|
+
def studystructure_student_JSON(self, uid):
|
|
298
|
+
"""
|
|
299
|
+
Returns a dictionary of student information. This contains programmes that
|
|
300
|
+
the student is admitted to.
|
|
301
|
+
"""
|
|
302
|
+
r = self.session.get(
|
|
303
|
+
url=self.base_gui_proxy_url
|
|
304
|
+
+ "/studiedeltagande/internal/studiestruktur/student/"
|
|
305
|
+
+ uid,
|
|
306
|
+
headers=self.headers,
|
|
307
|
+
)
|
|
308
|
+
if r.status_code == 200:
|
|
309
|
+
return r.json()
|
|
310
|
+
return None
|
|
311
|
+
|
|
296
312
|
def search_course_rounds_JSON(self, /, **kwargs):
|
|
297
313
|
"""Query LADOK about course rounds, possible keys:
|
|
298
314
|
code, round_code, name
|
|
@@ -339,6 +355,67 @@ class LadokSession:
|
|
|
339
355
|
f"can't get course instance data for {instance_id}: " f"{response.text}"
|
|
340
356
|
)
|
|
341
357
|
|
|
358
|
+
# added by GQMJr
|
|
359
|
+
def course_instances_JSON(self, course_code, lang="sv"):
|
|
360
|
+
"""
|
|
361
|
+
Returns a list of dictionaries with course instances for a given course code.
|
|
362
|
+
The course code is a string such as "DD1310". The language code is 'en' or
|
|
363
|
+
'sv'.
|
|
364
|
+
|
|
365
|
+
Note that there seems to be a limit of 403 for the number of pages.
|
|
366
|
+
"""
|
|
367
|
+
r = self.session.get(
|
|
368
|
+
url=self.base_gui_proxy_url
|
|
369
|
+
+ "/resultat/internal/kurstillfalle/filtrera?kurskod="
|
|
370
|
+
+ course_code
|
|
371
|
+
+ "&page=1&limit=100&skipCount=false&sprakkod="
|
|
372
|
+
+ lang, # not sure about this one /CO
|
|
373
|
+
headers=self.headers,
|
|
374
|
+
).json()
|
|
375
|
+
return r
|
|
376
|
+
|
|
377
|
+
# added by GQMJr
|
|
378
|
+
def instance_info(self, course_code, instance_code, lang="sv"):
|
|
379
|
+
"""
|
|
380
|
+
Returns a dictionary of course instance information.
|
|
381
|
+
|
|
382
|
+
course_code - course code, such as "DD1310"
|
|
383
|
+
|
|
384
|
+
instance_code - instance of the course ('TillfallesKod')
|
|
385
|
+
|
|
386
|
+
lang - language code 'en' or 'sv', defaults to 'sv'
|
|
387
|
+
"""
|
|
388
|
+
r = self.session.get(
|
|
389
|
+
url=self.base_gui_proxy_url
|
|
390
|
+
+ "/resultat/internal/kurstillfalle/filtrera?kurskod="
|
|
391
|
+
+ course_code
|
|
392
|
+
+ "&page=1&limit=25&skipCount=false&sprakkod="
|
|
393
|
+
+ lang,
|
|
394
|
+
headers=self.headers,
|
|
395
|
+
)
|
|
396
|
+
if r.status_code == requests.codes.ok:
|
|
397
|
+
rj = r.json()
|
|
398
|
+
for course in rj["Resultat"]:
|
|
399
|
+
if course["TillfallesKod"] == instance_code:
|
|
400
|
+
return course
|
|
401
|
+
return None
|
|
402
|
+
|
|
403
|
+
# added by GQMJr
|
|
404
|
+
def instance_info_uid(self, instance_uid):
|
|
405
|
+
"""
|
|
406
|
+
Returns a dictionary of course instance information.
|
|
407
|
+
|
|
408
|
+
instance_uid: course's Uid (from course_integration_id or
|
|
409
|
+
sis_course_id in Canvas)
|
|
410
|
+
"""
|
|
411
|
+
r = self.session.get(
|
|
412
|
+
url=self.base_gui_proxy_url
|
|
413
|
+
+ "/resultat/internal/kurstillfalle/"
|
|
414
|
+
+ instance_uid,
|
|
415
|
+
headers=self.headers,
|
|
416
|
+
).json()
|
|
417
|
+
return r
|
|
418
|
+
|
|
342
419
|
def course_round_components_JSON(self, round_id):
|
|
343
420
|
response = self.put_query(
|
|
344
421
|
"/resultat/internal/kurstillfalle/moment", {"Identitet": [round_id]}
|
|
@@ -608,141 +685,460 @@ class LadokSession:
|
|
|
608
685
|
f"{response.text}"
|
|
609
686
|
)
|
|
610
687
|
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
# as noted below.
|
|
623
|
-
#
|
|
624
|
-
# I (Daniel Bosk) adapted (on 2021-01-08) the methods to a refactored
|
|
625
|
-
# LadokSession class.
|
|
688
|
+
# added by GQMJr
|
|
689
|
+
def grading_rights(self):
|
|
690
|
+
"""
|
|
691
|
+
Returns a list of dictionaries with the grading rights of the logged in user.
|
|
692
|
+
"""
|
|
693
|
+
r = self.session.get(
|
|
694
|
+
url=self.base_gui_proxy_url
|
|
695
|
+
+ "/resultat/internal/resultatrattighet/listaforinloggadanvandare",
|
|
696
|
+
headers=self.headers,
|
|
697
|
+
).json()
|
|
698
|
+
return r["Resultatrattighet"]
|
|
626
699
|
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
# 'LABD': {'date': '2019-03-23', 'grade': 'E', 'status': 'pending(1)'},
|
|
639
|
-
# 'TEN1': {'date': '2019-03-13', 'grade': 'F', 'status': 'pending(2)'}}
|
|
640
|
-
#
|
|
641
|
-
# status: kan ha följande värden vilket gissningsvis betyder:
|
|
642
|
-
# attested - attesterad
|
|
643
|
-
# pending(1) - utkast
|
|
644
|
-
# pending(2) - klarmarkerad
|
|
645
|
-
#
|
|
646
|
-
def get_results(self, person_nr_raw, course_code):
|
|
647
|
-
person_nr_raw = str(person_nr_raw)
|
|
648
|
-
person_nr = format_personnummer(person_nr_raw)
|
|
649
|
-
if not person_nr:
|
|
650
|
-
raise Exception("Invalid person nr " + person_nr_raw)
|
|
700
|
+
# added by GQMJr
|
|
701
|
+
def organization_info_JSON(self):
|
|
702
|
+
"""
|
|
703
|
+
Returns a dictionary of organization information for the entire institution
|
|
704
|
+
of the logged in user.
|
|
705
|
+
"""
|
|
706
|
+
r = self.session.get(
|
|
707
|
+
url=self.base_gui_proxy_url + "/resultat/internal/organisation/utanlankar",
|
|
708
|
+
headers=self.headers,
|
|
709
|
+
).json()
|
|
710
|
+
return r
|
|
651
711
|
|
|
652
|
-
|
|
712
|
+
# added by GQMJr
|
|
713
|
+
def larosatesinformation_JSON(self):
|
|
714
|
+
"""
|
|
715
|
+
Returns a dictionary of the university or college information.
|
|
716
|
+
"""
|
|
717
|
+
r = self.session.get(
|
|
718
|
+
url=self.base_gui_proxy_url
|
|
719
|
+
+ "/kataloginformation/internal/grunddata/larosatesinformation",
|
|
720
|
+
headers=self.headers,
|
|
721
|
+
).json()
|
|
722
|
+
return r
|
|
653
723
|
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
724
|
+
# added by GQMJr
|
|
725
|
+
def undervisningssprak_JSON(self):
|
|
726
|
+
"""
|
|
727
|
+
Returns a dictionary of teaching languages.
|
|
728
|
+
"""
|
|
729
|
+
r = self.session.get(
|
|
730
|
+
url=self.base_gui_proxy_url
|
|
731
|
+
+ "/kataloginformation/internal/grunddata/undervisningssprak",
|
|
732
|
+
headers=self.headers,
|
|
733
|
+
).json()
|
|
734
|
+
return r
|
|
659
735
|
|
|
660
|
-
|
|
736
|
+
# added by GQMJr
|
|
737
|
+
def i18n_translation_JSON(self, lang="sv"):
|
|
738
|
+
"""
|
|
739
|
+
Returns a dictionary of i18n translations used in Ladok3.
|
|
740
|
+
"""
|
|
661
741
|
r = self.session.get(
|
|
662
742
|
url=self.base_gui_proxy_url
|
|
663
|
-
+ "/
|
|
664
|
-
+
|
|
743
|
+
+ "/kataloginformation/internal/i18n/oversattningar/sprakkod/"
|
|
744
|
+
+ lang,
|
|
665
745
|
headers=self.headers,
|
|
666
746
|
).json()
|
|
747
|
+
return r
|
|
667
748
|
|
|
668
|
-
|
|
669
|
-
|
|
749
|
+
# added by GQMJr
|
|
750
|
+
def svenskorter_JSON(self):
|
|
751
|
+
"""
|
|
752
|
+
Returns a dictionary of Swedish places with their KommunID.
|
|
753
|
+
"""
|
|
754
|
+
r = self.session.get(
|
|
755
|
+
url=self.base_gui_proxy_url
|
|
756
|
+
+ "/kataloginformation/internal/grunddata/svenskort",
|
|
757
|
+
headers=self.headers,
|
|
758
|
+
).json()
|
|
759
|
+
return r
|
|
670
760
|
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
761
|
+
# added by GQMJr
|
|
762
|
+
def kommuner_JSON(self):
|
|
763
|
+
"""
|
|
764
|
+
Returns a dictionary of Swedish municipalities.
|
|
765
|
+
"""
|
|
766
|
+
r = self.session.get(
|
|
767
|
+
url=self.base_gui_proxy_url
|
|
768
|
+
+ "/kataloginformation/internal/grunddata/kommun",
|
|
769
|
+
headers=self.headers,
|
|
770
|
+
).json()
|
|
771
|
+
return r
|
|
675
772
|
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
pass # tillgodoräknanden har inga betyg och då är result['Utbildningskod'] == None
|
|
773
|
+
# added by GQMJr
|
|
774
|
+
def lander_JSON(self):
|
|
775
|
+
"""
|
|
776
|
+
Returns a dictionary of countries.
|
|
777
|
+
"""
|
|
778
|
+
r = self.session.get(
|
|
779
|
+
url=self.base_gui_proxy_url + "/kataloginformation/internal/grunddata/land",
|
|
780
|
+
headers=self.headers,
|
|
781
|
+
).json()
|
|
782
|
+
return r
|
|
687
783
|
|
|
688
|
-
|
|
784
|
+
# added by GQMJr
|
|
785
|
+
def undervisningstid_JSON(self):
|
|
786
|
+
"""
|
|
787
|
+
Returns a dictionary of teaching times.
|
|
788
|
+
"""
|
|
689
789
|
r = self.session.get(
|
|
690
790
|
url=self.base_gui_proxy_url
|
|
691
|
-
+ "/
|
|
692
|
-
+ student_data["id"]
|
|
693
|
-
+ "/kurs/"
|
|
694
|
-
+ student_course["education_id"]
|
|
695
|
-
+ "?resultatstatus=UTKAST&resultatstatus=KLARMARKERAT",
|
|
791
|
+
+ "/kataloginformation/internal/grunddata/undervisningstid",
|
|
696
792
|
headers=self.headers,
|
|
697
793
|
).json()
|
|
794
|
+
return r
|
|
698
795
|
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
"0"
|
|
711
|
-
if "Examinationsdatum" not in result
|
|
712
|
-
else result["Examinationsdatum"]
|
|
713
|
-
)
|
|
714
|
-
d = {"grade": d_grade, "status": d_status, "date": d_date}
|
|
715
|
-
results[r["Utbildningskod"]] = d
|
|
716
|
-
return results
|
|
796
|
+
# RETURNERAR JSON of Successive Specializations
|
|
797
|
+
def successivfordjupning_JSON(self):
|
|
798
|
+
"""
|
|
799
|
+
Returns a dictionary of Successive Specializations.
|
|
800
|
+
"""
|
|
801
|
+
r = self.session.get(
|
|
802
|
+
url=self.base_gui_proxy_url
|
|
803
|
+
+ "/kataloginformation/internal/grunddata/successivfordjupning",
|
|
804
|
+
headers=self.headers,
|
|
805
|
+
).json()
|
|
806
|
+
return r
|
|
717
807
|
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
#
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
):
|
|
744
|
-
|
|
745
|
-
|
|
808
|
+
# added by GQMJr
|
|
809
|
+
def undervisningsform_JSON(self):
|
|
810
|
+
"""
|
|
811
|
+
Returns forms of education.
|
|
812
|
+
"""
|
|
813
|
+
r = self.session.get(
|
|
814
|
+
url=self.base_gui_proxy_url
|
|
815
|
+
+ "/kataloginformation/internal/grunddata/undervisningsform",
|
|
816
|
+
headers=self.headers,
|
|
817
|
+
).json()
|
|
818
|
+
return r
|
|
819
|
+
|
|
820
|
+
# added by GQMJr
|
|
821
|
+
def LokalaPerioder_JSON(self):
|
|
822
|
+
"""
|
|
823
|
+
Returns local periods.
|
|
824
|
+
"""
|
|
825
|
+
r = self.session.get(
|
|
826
|
+
url=self.base_gui_proxy_url
|
|
827
|
+
+ "/kataloginformation/internal/grunddata/period",
|
|
828
|
+
headers=self.headers,
|
|
829
|
+
).json()
|
|
830
|
+
return r
|
|
831
|
+
|
|
832
|
+
# added by GQMJr
|
|
833
|
+
def nivainomstudieordning_JSON(self):
|
|
834
|
+
"""
|
|
835
|
+
Returns education levels.
|
|
836
|
+
"""
|
|
837
|
+
r = self.session.get(
|
|
838
|
+
url=self.base_gui_proxy_url
|
|
839
|
+
+ "/kataloginformation/internal/grunddata/nivainomstudieordning",
|
|
840
|
+
headers=self.headers,
|
|
841
|
+
).json()
|
|
842
|
+
return r
|
|
843
|
+
|
|
844
|
+
# added by GQMJr
|
|
845
|
+
def amnesgrupp_JSON(self):
|
|
846
|
+
"""
|
|
847
|
+
Returns subject area groups.
|
|
848
|
+
"""
|
|
849
|
+
r = self.session.get(
|
|
850
|
+
url=self.base_gui_proxy_url
|
|
851
|
+
+ "/kataloginformation/internal/grunddata/amnesgrupp",
|
|
852
|
+
headers=self.headers,
|
|
853
|
+
).json()
|
|
854
|
+
return r
|
|
855
|
+
|
|
856
|
+
# added by GQMJr
|
|
857
|
+
def studietakt_JSON(self):
|
|
858
|
+
"""
|
|
859
|
+
Returns study paces.
|
|
860
|
+
"""
|
|
861
|
+
r = self.session.get(
|
|
862
|
+
url=self.base_gui_proxy_url
|
|
863
|
+
+ "/kataloginformation/internal/grunddata/studietakt",
|
|
864
|
+
headers=self.headers,
|
|
865
|
+
).json()
|
|
866
|
+
return r
|
|
867
|
+
|
|
868
|
+
# added by GQMJr
|
|
869
|
+
def finansieringsform_JSON(self):
|
|
870
|
+
"""
|
|
871
|
+
Returns forms of financing.
|
|
872
|
+
"""
|
|
873
|
+
r = self.session.get(
|
|
874
|
+
url=self.base_gui_proxy_url
|
|
875
|
+
+ "/kataloginformation/internal/grunddata/finansieringsform",
|
|
876
|
+
headers=self.headers,
|
|
877
|
+
).json()
|
|
878
|
+
return r
|
|
879
|
+
|
|
880
|
+
# added by GQMJr
|
|
881
|
+
def utbildningsomrade_JSON(self):
|
|
882
|
+
"""
|
|
883
|
+
Returns subject areas.
|
|
884
|
+
"""
|
|
885
|
+
r = self.session.get(
|
|
886
|
+
url=self.base_gui_proxy_url
|
|
887
|
+
+ "/kataloginformation/internal/grunddata/utbildningsomrade",
|
|
888
|
+
headers=self.headers,
|
|
889
|
+
).json()
|
|
890
|
+
return r
|
|
891
|
+
|
|
892
|
+
# added by GQMJr
|
|
893
|
+
def kravpatidigarestudier_JSON(self):
|
|
894
|
+
"""
|
|
895
|
+
Returns requirements for earlier studies.
|
|
896
|
+
"""
|
|
897
|
+
r = self.session.get(
|
|
898
|
+
url=self.base_gui_proxy_url
|
|
899
|
+
+ "/kataloginformation/internal/grunddata/kravpatidigarestudier",
|
|
900
|
+
headers=self.headers,
|
|
901
|
+
).json()
|
|
902
|
+
return r
|
|
903
|
+
|
|
904
|
+
# added by GQMJr
|
|
905
|
+
def studieordning_JSON(self):
|
|
906
|
+
"""
|
|
907
|
+
Returns study regulations.
|
|
908
|
+
"""
|
|
909
|
+
r = self.session.get(
|
|
910
|
+
url=self.base_gui_proxy_url
|
|
911
|
+
+ "/kataloginformation/internal/grunddata/studieordning",
|
|
912
|
+
headers=self.headers,
|
|
913
|
+
).json()
|
|
914
|
+
return r
|
|
915
|
+
|
|
916
|
+
# added by GQMJr
|
|
917
|
+
def enhet_JSON(self):
|
|
918
|
+
"""
|
|
919
|
+
Returns credit units.
|
|
920
|
+
"""
|
|
921
|
+
r = self.session.get(
|
|
922
|
+
url=self.base_gui_proxy_url
|
|
923
|
+
+ "/kataloginformation/internal/grunddata/enhet",
|
|
924
|
+
headers=self.headers,
|
|
925
|
+
).json()
|
|
926
|
+
return r
|
|
927
|
+
|
|
928
|
+
# added by GQMJr
|
|
929
|
+
def studielokalisering_JSON(self):
|
|
930
|
+
"""
|
|
931
|
+
Returns study locations.
|
|
932
|
+
"""
|
|
933
|
+
r = self.session.get(
|
|
934
|
+
url=self.base_gui_proxy_url
|
|
935
|
+
+ "/kataloginformation/internal/grunddata/studielokalisering",
|
|
936
|
+
headers=self.headers,
|
|
937
|
+
).json()
|
|
938
|
+
return r
|
|
939
|
+
|
|
940
|
+
# added by GQMJr
|
|
941
|
+
def antagningsomgang_JSON(self):
|
|
942
|
+
"""
|
|
943
|
+
Returns the admission round.
|
|
944
|
+
"""
|
|
945
|
+
r = self.session.get(
|
|
946
|
+
url=self.base_gui_proxy_url
|
|
947
|
+
+ "/kataloginformation/internal/grunddata/antagningsomgang",
|
|
948
|
+
headers=self.headers,
|
|
949
|
+
).json()
|
|
950
|
+
return r
|
|
951
|
+
|
|
952
|
+
# added by GQMJr
|
|
953
|
+
def utbildningstyp_JSON(self):
|
|
954
|
+
"""
|
|
955
|
+
Returns types of education.
|
|
956
|
+
|
|
957
|
+
For information about these, see
|
|
958
|
+
|
|
959
|
+
https://ladok.se/wp-content/uploads/2018/01/Funktionsbeskrivning_095.pdf
|
|
960
|
+
"""
|
|
961
|
+
r = self.session.get(
|
|
962
|
+
url=self.base_gui_proxy_url
|
|
963
|
+
+ "/kataloginformation/internal/grunddata/utbildningstyp",
|
|
964
|
+
headers=self.headers,
|
|
965
|
+
).json()
|
|
966
|
+
return r
|
|
967
|
+
|
|
968
|
+
# added by GQMJr
|
|
969
|
+
def aktivitetstillfallestyp_JSON(self):
|
|
970
|
+
"""
|
|
971
|
+
Returns the activity types.
|
|
972
|
+
"""
|
|
973
|
+
r = self.session.get(
|
|
974
|
+
url=self.base_gui_proxy_url
|
|
975
|
+
+ "/kataloginformation/internal/grunddata/aktivitetstillfallestyp",
|
|
976
|
+
headers=self.headers,
|
|
977
|
+
).json()
|
|
978
|
+
return r
|
|
979
|
+
|
|
980
|
+
# added by GQMJr
|
|
981
|
+
def catalog_service_index_JSON(self):
|
|
982
|
+
"""
|
|
983
|
+
Returns the catalog service index.
|
|
984
|
+
"""
|
|
985
|
+
r = self.session.get(
|
|
986
|
+
url=self.base_gui_proxy_url + "/kataloginformation/internal/service/index",
|
|
987
|
+
headers=self.headers,
|
|
988
|
+
).json()
|
|
989
|
+
return r
|
|
990
|
+
|
|
991
|
+
# added by GQMJr
|
|
992
|
+
def omradesbehorighet_JSON(self):
|
|
993
|
+
"""
|
|
994
|
+
Returns områdesbehörighet. See
|
|
995
|
+
|
|
996
|
+
https://antagning.se/globalassets/omradesbehorigheter-hogskolan.pdf
|
|
997
|
+
|
|
998
|
+
for more information.
|
|
999
|
+
"""
|
|
1000
|
+
r = self.session.get(
|
|
1001
|
+
url=self.base_gui_proxy_url
|
|
1002
|
+
+ "/kataloginformation/internal/grunddata/omradesbehorighet",
|
|
1003
|
+
headers=self.headers,
|
|
1004
|
+
).json()
|
|
1005
|
+
return r
|
|
1006
|
+
|
|
1007
|
+
##############################################################
|
|
1008
|
+
#
|
|
1009
|
+
# LadokSession
|
|
1010
|
+
#
|
|
1011
|
+
# get_results returnerar en dictionary med momentnamn och resultat
|
|
1012
|
+
# save_result sparar resultat för en student som utkast
|
|
1013
|
+
#
|
|
1014
|
+
# The original LadokSession code is from Alexander Baltatzis <alba@kth.se> on
|
|
1015
|
+
# 2020-07-20
|
|
1016
|
+
#
|
|
1017
|
+
# I (Gerald Q. Maguire Jr.) have extended on 2020-07-21 and later with the code
|
|
1018
|
+
# as noted below.
|
|
1019
|
+
#
|
|
1020
|
+
# I (Daniel Bosk) adapted (on 2021-01-08) the methods to a refactored
|
|
1021
|
+
# LadokSession class.
|
|
1022
|
+
|
|
1023
|
+
#####################################################################
|
|
1024
|
+
#
|
|
1025
|
+
# get_results
|
|
1026
|
+
#
|
|
1027
|
+
# person_nr - personnummer, siffror i strängformat
|
|
1028
|
+
# t.ex. 19461212-1212
|
|
1029
|
+
# course_code - kurskod t.ex. DD1321
|
|
1030
|
+
#
|
|
1031
|
+
# RETURNERAR en dictionary från ladok med momentnamn, resultat
|
|
1032
|
+
#
|
|
1033
|
+
# {'LABP': {'date': '2019-01-14', 'grade': 'P', 'status': 'attested'},
|
|
1034
|
+
# 'LABD': {'date': '2019-03-23', 'grade': 'E', 'status': 'pending(1)'},
|
|
1035
|
+
# 'TEN1': {'date': '2019-03-13', 'grade': 'F', 'status': 'pending(2)'}}
|
|
1036
|
+
#
|
|
1037
|
+
# status: kan ha följande värden vilket gissningsvis betyder:
|
|
1038
|
+
# attested - attesterad
|
|
1039
|
+
# pending(1) - utkast
|
|
1040
|
+
# pending(2) - klarmarkerad
|
|
1041
|
+
#
|
|
1042
|
+
def get_results(self, person_nr_raw, course_code):
|
|
1043
|
+
person_nr_raw = str(person_nr_raw)
|
|
1044
|
+
person_nr = format_personnummer(person_nr_raw)
|
|
1045
|
+
if not person_nr:
|
|
1046
|
+
raise Exception("Invalid person nr " + person_nr_raw)
|
|
1047
|
+
|
|
1048
|
+
student_data = self.__get_student_data(person_nr)
|
|
1049
|
+
|
|
1050
|
+
student_course = next(
|
|
1051
|
+
x
|
|
1052
|
+
for x in self.__get_student_courses(student_data["id"])
|
|
1053
|
+
if x["code"] == course_code
|
|
1054
|
+
)
|
|
1055
|
+
|
|
1056
|
+
# get attested results
|
|
1057
|
+
r = self.session.get(
|
|
1058
|
+
url=self.base_gui_proxy_url
|
|
1059
|
+
+ "/resultat/studentresultat/attesterade/student/"
|
|
1060
|
+
+ student_data["id"],
|
|
1061
|
+
headers=self.headers,
|
|
1062
|
+
).json()
|
|
1063
|
+
|
|
1064
|
+
results_attested_current_course = None
|
|
1065
|
+
results = {} # return value
|
|
1066
|
+
|
|
1067
|
+
for course in r["StudentresultatPerKurs"]:
|
|
1068
|
+
if course["KursUID"] == student_course["education_id"]:
|
|
1069
|
+
results_attested_current_course = course["Studentresultat"]
|
|
1070
|
+
break
|
|
1071
|
+
|
|
1072
|
+
if results_attested_current_course:
|
|
1073
|
+
for result in results_attested_current_course:
|
|
1074
|
+
try:
|
|
1075
|
+
d = {
|
|
1076
|
+
"grade": result["Betygsgradskod"],
|
|
1077
|
+
"status": "attested",
|
|
1078
|
+
"date": result["Examinationsdatum"],
|
|
1079
|
+
}
|
|
1080
|
+
results[result["Utbildningskod"]] = d
|
|
1081
|
+
except:
|
|
1082
|
+
pass # tillgodoräknanden har inga betyg och då är result['Utbildningskod'] == None
|
|
1083
|
+
|
|
1084
|
+
# get pending results
|
|
1085
|
+
r = self.session.get(
|
|
1086
|
+
url=self.base_gui_proxy_url
|
|
1087
|
+
+ "/resultat/resultat/resultat/student/"
|
|
1088
|
+
+ student_data["id"]
|
|
1089
|
+
+ "/kurs/"
|
|
1090
|
+
+ student_course["education_id"]
|
|
1091
|
+
+ "?resultatstatus=UTKAST&resultatstatus=KLARMARKERAT",
|
|
1092
|
+
headers=self.headers,
|
|
1093
|
+
).json()
|
|
1094
|
+
|
|
1095
|
+
for result in r["Resultat"]:
|
|
1096
|
+
r = self.session.get(
|
|
1097
|
+
url=self.base_gui_proxy_url
|
|
1098
|
+
+ "/resultat/utbildningsinstans/"
|
|
1099
|
+
+ result["UtbildningsinstansUID"],
|
|
1100
|
+
headers=self.headers,
|
|
1101
|
+
).json()
|
|
1102
|
+
d_grade = result["Betygsgradsobjekt"]["Kod"]
|
|
1103
|
+
d_status = "pending(" + str(result["ProcessStatus"]) + ")"
|
|
1104
|
+
# utkast har inte datum tydligen ...
|
|
1105
|
+
d_date = (
|
|
1106
|
+
"0"
|
|
1107
|
+
if "Examinationsdatum" not in result
|
|
1108
|
+
else result["Examinationsdatum"]
|
|
1109
|
+
)
|
|
1110
|
+
d = {"grade": d_grade, "status": d_status, "date": d_date}
|
|
1111
|
+
results[r["Utbildningskod"]] = d
|
|
1112
|
+
return results
|
|
1113
|
+
|
|
1114
|
+
#####################################################################
|
|
1115
|
+
#
|
|
1116
|
+
# save_result
|
|
1117
|
+
#
|
|
1118
|
+
# person_nr - personnummer, flera format accepteras enligt regex:
|
|
1119
|
+
# (\d\d)?(\d\d)(\d\d\d\d)[+\-]?(\w\w\w\w)
|
|
1120
|
+
# course_code - kurskod t.ex. DD1321
|
|
1121
|
+
# course_moment - ladokmoment/kursbetyg t.ex. TEN1, LAB1, DD1321 (!)
|
|
1122
|
+
# om labmomententet är samma som course_code så sätts kursbetyg!
|
|
1123
|
+
# result_date - betygsdatum, flera format accepteras enligt regex
|
|
1124
|
+
# (\d\d)?(\d\d)-?(\d\d)-?(\d\d)
|
|
1125
|
+
# grade_code - det betyg som ska sättas
|
|
1126
|
+
# grade_scale - betygsskala t.ex. AF eller PF. Möjliga betygsskalor
|
|
1127
|
+
# listas i self.__grade_scales.
|
|
1128
|
+
#
|
|
1129
|
+
# RETURNERAR True om det gått bra, kastar (förhoppningsvis) undantag
|
|
1130
|
+
# om det går dåligt.
|
|
1131
|
+
def save_result(
|
|
1132
|
+
self,
|
|
1133
|
+
person_nr_raw,
|
|
1134
|
+
course_code,
|
|
1135
|
+
course_moment,
|
|
1136
|
+
result_date_raw,
|
|
1137
|
+
grade_raw,
|
|
1138
|
+
grade_scale,
|
|
1139
|
+
):
|
|
1140
|
+
if grade_raw in ["AF", "PF"]:
|
|
1141
|
+
raise Exception("Invalid grade: " + grade_raw + " looks like a grade_scale")
|
|
746
1142
|
|
|
747
1143
|
if (grade_raw == "P" and grade_scale == "AF") or (
|
|
748
1144
|
grade_raw in "ABCDE" and grade_scale == "PF"
|
|
@@ -855,2848 +1251,93 @@ class LadokSession:
|
|
|
855
1251
|
+ grade_raw
|
|
856
1252
|
+ " "
|
|
857
1253
|
+ result_date_raw
|
|
858
|
-
+ ": "
|
|
859
|
-
+ r.json()["Meddelande"]
|
|
860
|
-
)
|
|
861
|
-
|
|
862
|
-
return True
|
|
863
|
-
|
|
864
|
-
#####################################################################
|
|
865
|
-
#
|
|
866
|
-
# get_student_data
|
|
867
|
-
#
|
|
868
|
-
# person_nr - personnummer, flera format accepteras enligt regex:
|
|
869
|
-
# (\d\d)?(\d\d)(\d\d\d\d)[+\-]?(\w\w\w\w)
|
|
870
|
-
#
|
|
871
|
-
# RETURNERAR {'id': 'xxxx', 'first_name': 'x', 'last_name': 'y', 'person_nr': 'xxx', 'alive': True}
|
|
872
|
-
|
|
873
|
-
def get_student_data(self, person_nr_raw):
|
|
874
|
-
person_nr = format_personnummer(person_nr_raw)
|
|
875
|
-
|
|
876
|
-
if not person_nr:
|
|
877
|
-
raise Exception("Invalid person nr " + person_nr_raw)
|
|
878
|
-
|
|
879
|
-
student_data = self.__get_student_data(person_nr)
|
|
880
|
-
return student_data
|
|
881
|
-
|
|
882
|
-
#####################################################################
|
|
883
|
-
#
|
|
884
|
-
# get_student_name
|
|
885
|
-
#
|
|
886
|
-
# person_nr - personnummer, flera format accepteras enligt regex:
|
|
887
|
-
# (\d\d)?(\d\d)(\d\d\d\d)[+\-]?(\w\w\w\w)
|
|
888
|
-
#
|
|
889
|
-
# RETURNERAR en dictionary med för- och efternamn
|
|
890
|
-
#
|
|
891
|
-
# {"first_name" : 'Anna', "last_name : 'Andersson'}
|
|
892
|
-
#
|
|
893
|
-
def get_student_name(self, person_nr_raw):
|
|
894
|
-
person_nr = format_personnummer(person_nr_raw)
|
|
895
|
-
|
|
896
|
-
if not person_nr:
|
|
897
|
-
raise Exception("Invalid person nr " + person_nr_raw)
|
|
898
|
-
|
|
899
|
-
student_data = self.__get_student_data(person_nr)
|
|
900
|
-
return {
|
|
901
|
-
"first_name": student_data["first_name"],
|
|
902
|
-
"last_name": student_data["last_name"],
|
|
903
|
-
}
|
|
904
|
-
|
|
905
|
-
# added by GQMJr
|
|
906
|
-
#####################################################################
|
|
907
|
-
#
|
|
908
|
-
# all_grading_scale
|
|
909
|
-
#
|
|
910
|
-
#
|
|
911
|
-
# RETURNERAR en dictionary of the grading scales
|
|
912
|
-
def all_grading_scale(self):
|
|
913
|
-
return self.get_grade_scales()
|
|
914
|
-
|
|
915
|
-
# added by GQMJr
|
|
916
|
-
#####################################################################
|
|
917
|
-
#
|
|
918
|
-
# grading_rights
|
|
919
|
-
#
|
|
920
|
-
#
|
|
921
|
-
# RETURNERAR en dictionary of the grading rights (of the logged in user)
|
|
922
|
-
def grading_rights(self):
|
|
923
|
-
r = self.session.get(
|
|
924
|
-
url=self.base_gui_proxy_url
|
|
925
|
-
+ "/resultat/resultatrattighet/listaforinloggadanvandare",
|
|
926
|
-
headers=self.headers,
|
|
927
|
-
).json()
|
|
928
|
-
return r["Resultatrattighet"]
|
|
929
|
-
|
|
930
|
-
# added by GQMJr
|
|
931
|
-
#####################################################################
|
|
932
|
-
#
|
|
933
|
-
# change_locale
|
|
934
|
-
#
|
|
935
|
-
# lang - language code 'en' or 'sv', defaults to 'sv'
|
|
936
|
-
#
|
|
937
|
-
# RETURNERAR reponse to the request
|
|
938
|
-
def change_locale(self, lang="sv"):
|
|
939
|
-
r = self.session.get(
|
|
940
|
-
url=self.base_gui_url + "/services/i18n/changeLocale?lang=" + lang,
|
|
941
|
-
headers=self.headers,
|
|
942
|
-
).json()
|
|
943
|
-
return r
|
|
944
|
-
|
|
945
|
-
# added by GQMJr
|
|
946
|
-
#####################################################################
|
|
947
|
-
#
|
|
948
|
-
# course_instances_JSON
|
|
949
|
-
#
|
|
950
|
-
# course_code - course code, such as "II2202"
|
|
951
|
-
#
|
|
952
|
-
# lang - language code 'en' or 'sv', defaults to 'sv'
|
|
953
|
-
#
|
|
954
|
-
# RETURNERAR JSON of resultat/kurstillfalle
|
|
955
|
-
#
|
|
956
|
-
# Example: ladok_session.course_instances('II2202', 'en')
|
|
957
|
-
def course_instances_JSON(self, course_code, lang="sv"):
|
|
958
|
-
# note that there seems to be a limit of 403 for the number of pages
|
|
959
|
-
r = self.session.get(
|
|
960
|
-
url=self.base_gui_proxy_url
|
|
961
|
-
+ "/resultat/kurstillfalle/filtrera?kurskod="
|
|
962
|
-
+ course_code
|
|
963
|
-
+ "&page=1&limit=100&skipCount=false&sprakkod="
|
|
964
|
-
+ lang,
|
|
965
|
-
headers=self.headers,
|
|
966
|
-
).json()
|
|
967
|
-
return r
|
|
968
|
-
|
|
969
|
-
# added by GQMJr
|
|
970
|
-
#####################################################################
|
|
971
|
-
#
|
|
972
|
-
# organization_info_JSON
|
|
973
|
-
#
|
|
974
|
-
# RETURNERAR en dictionary of organization information for the entire institution of the logged in user
|
|
975
|
-
def organization_info_JSON(self):
|
|
976
|
-
r = self.session.get(
|
|
977
|
-
url=self.base_gui_proxy_url + "/resultat/organisation/utanlankar",
|
|
978
|
-
headers=self.headers,
|
|
979
|
-
).json()
|
|
980
|
-
return r
|
|
981
|
-
|
|
982
|
-
# added by GQMJr
|
|
983
|
-
#####################################################################
|
|
984
|
-
#
|
|
985
|
-
# period_info_JSON
|
|
986
|
-
#
|
|
987
|
-
# RETURNERAR JSON of /resultat/grunddata/period
|
|
988
|
-
def period_info_JSON(self):
|
|
989
|
-
r = self.session.get(
|
|
990
|
-
url=self.base_gui_proxy_url + "/resultat/grunddata/period",
|
|
991
|
-
headers=self.headers,
|
|
992
|
-
).json()
|
|
993
|
-
return r
|
|
994
|
-
|
|
995
|
-
# added by GQMJr
|
|
996
|
-
#####################################################################
|
|
997
|
-
#
|
|
998
|
-
# instance_info
|
|
999
|
-
#
|
|
1000
|
-
# course_code - course code, such as "II2202"
|
|
1001
|
-
#
|
|
1002
|
-
# instance_code - instance of the course ('TillfallesKod')
|
|
1003
|
-
#
|
|
1004
|
-
# lang - language code 'en' or 'sv', defaults to 'sv'
|
|
1005
|
-
#
|
|
1006
|
-
# RETURNERAR en dictionary of course instance information
|
|
1007
|
-
#
|
|
1008
|
-
# Example: ii=ladok_session.instance_info('II2202', instance_code, 'en')
|
|
1009
|
-
def instance_info(self, course_code, instance_code, lang="sv"):
|
|
1010
|
-
r = self.session.get(
|
|
1011
|
-
url=self.base_gui_proxy_url
|
|
1012
|
-
+ "/resultat/kurstillfalle/filtrera?kurskod="
|
|
1013
|
-
+ course_code
|
|
1014
|
-
+ "&page=1&limit=25&skipCount=false&sprakkod="
|
|
1015
|
-
+ lang,
|
|
1016
|
-
headers=self.headers,
|
|
1017
|
-
)
|
|
1018
|
-
if r.status_code == requests.codes.ok:
|
|
1019
|
-
rj = r.json()
|
|
1020
|
-
for course in rj["Resultat"]:
|
|
1021
|
-
if course["TillfallesKod"] == instance_code:
|
|
1022
|
-
return course
|
|
1023
|
-
return None
|
|
1024
|
-
|
|
1025
|
-
# added by GQMJr
|
|
1026
|
-
#####################################################################
|
|
1027
|
-
#
|
|
1028
|
-
# instance_info_uid
|
|
1029
|
-
#
|
|
1030
|
-
# instance_uid -- course's Uid (from course_integration_id)
|
|
1031
|
-
#
|
|
1032
|
-
# RETURNERAR en dictionary of course instance information
|
|
1033
|
-
#
|
|
1034
|
-
# Example: ii=ladok_session.instance_info_uid(instance_uid)
|
|
1035
|
-
def instance_info_uid(self, instance_uid):
|
|
1036
|
-
r = self.session.get(
|
|
1037
|
-
url=self.base_gui_proxy_url + "/resultat/kurstillfalle/" + instance_uid,
|
|
1038
|
-
headers=self.headers,
|
|
1039
|
-
).json()
|
|
1040
|
-
return r
|
|
1041
|
-
|
|
1042
|
-
# added by GQMJr
|
|
1043
|
-
#####################################################################
|
|
1044
|
-
#
|
|
1045
|
-
# studystructure_student_JSON
|
|
1046
|
-
#
|
|
1047
|
-
# uid - uid of a student
|
|
1048
|
-
#
|
|
1049
|
-
# RETURNERAR en dictionary of student information
|
|
1050
|
-
def studystructure_student_JSON(self, uid):
|
|
1051
|
-
r = self.session.get(
|
|
1052
|
-
url=self.base_gui_proxy_url
|
|
1053
|
-
+ "/studiedeltagande/studiestruktur/student/"
|
|
1054
|
-
+ uid,
|
|
1055
|
-
headers=self.headers,
|
|
1056
|
-
)
|
|
1057
|
-
if r.status_code == 200:
|
|
1058
|
-
return r.json()
|
|
1059
|
-
return None
|
|
1060
|
-
|
|
1061
|
-
# added by GQMJr
|
|
1062
|
-
#####################################################################
|
|
1063
|
-
#
|
|
1064
|
-
# larosatesinformation_JSON
|
|
1065
|
-
#
|
|
1066
|
-
# RETURNERAR JSON of the university or college information
|
|
1067
|
-
def larosatesinformation_JSON(self):
|
|
1068
|
-
r = self.session.get(
|
|
1069
|
-
url=self.base_gui_proxy_url
|
|
1070
|
-
+ "/kataloginformation/grunddata/larosatesinformation",
|
|
1071
|
-
headers=self.headers,
|
|
1072
|
-
).json()
|
|
1073
|
-
return r
|
|
1074
|
-
|
|
1075
|
-
# { 'Larosatesinformation': [ { 'Benamning': { 'en': 'Royal Institute of '
|
|
1076
|
-
# 'Technology',
|
|
1077
|
-
# 'sv': 'Kungliga Tekniska '
|
|
1078
|
-
# 'högskolan'},
|
|
1079
|
-
# 'Beskrivning': {},
|
|
1080
|
-
# 'Giltighetsperiod': {'link': []},
|
|
1081
|
-
# 'ID': '29',
|
|
1082
|
-
# 'Kod': 'KTH',
|
|
1083
|
-
# 'LarosateID': 29,
|
|
1084
|
-
# 'OrtID': 18,
|
|
1085
|
-
# 'link': []}],
|
|
1086
|
-
# 'link': []}
|
|
1087
|
-
# added by GQMJr
|
|
1088
|
-
#####################################################################
|
|
1089
|
-
#
|
|
1090
|
-
# undervisningssprak
|
|
1091
|
-
#
|
|
1092
|
-
# RETURNERAR en dictionary of languages used for instruction
|
|
1093
|
-
def undervisningssprak_JSON(self):
|
|
1094
|
-
r = self.session.get(
|
|
1095
|
-
url=self.base_gui_proxy_url
|
|
1096
|
-
+ "/kataloginformation/grunddata/undervisningssprak",
|
|
1097
|
-
headers=self.headers,
|
|
1098
|
-
).json()
|
|
1099
|
-
return r
|
|
1100
|
-
|
|
1101
|
-
# { 'Undervisningssprak': [ { 'Benamning': { 'en': 'English',
|
|
1102
|
-
# 'sv': 'Engelska'},
|
|
1103
|
-
# 'Beskrivning': {},
|
|
1104
|
-
# 'Giltighetsperiod': {'link': []},
|
|
1105
|
-
# 'ID': '2',
|
|
1106
|
-
# 'Kod': 'ENG',
|
|
1107
|
-
# 'LarosateID': -1,
|
|
1108
|
-
# 'link': []},
|
|
1109
|
-
# { 'Benamning': {'en': 'Russian', 'sv': 'Ryska'},
|
|
1110
|
-
# 'Beskrivning': {},
|
|
1111
|
-
# 'Giltighetsperiod': {'link': []},
|
|
1112
|
-
# 'ID': '4',
|
|
1113
|
-
# 'Kod': 'RUS',
|
|
1114
|
-
# 'LarosateID': -1,
|
|
1115
|
-
# 'link': []},
|
|
1116
|
-
# { 'Benamning': { 'en': 'Sign Language',
|
|
1117
|
-
# 'sv': 'Teckenspråk'},
|
|
1118
|
-
# 'Beskrivning': {},
|
|
1119
|
-
# 'Giltighetsperiod': {'link': []},
|
|
1120
|
-
# 'ID': '5',
|
|
1121
|
-
# 'Kod': 'SGN',
|
|
1122
|
-
# 'LarosateID': -1,
|
|
1123
|
-
# 'link': []},
|
|
1124
|
-
# { 'Benamning': { 'en': 'Spanish',
|
|
1125
|
-
# 'sv': 'Spanska'},
|
|
1126
|
-
# 'Beskrivning': {},
|
|
1127
|
-
# 'Giltighetsperiod': {'link': []},
|
|
1128
|
-
# 'ID': '3',
|
|
1129
|
-
# 'Kod': 'SPA',
|
|
1130
|
-
# 'LarosateID': -1,
|
|
1131
|
-
# 'link': []},
|
|
1132
|
-
# { 'Benamning': { 'en': 'Swedish',
|
|
1133
|
-
# 'sv': 'Svenska'},
|
|
1134
|
-
# 'Beskrivning': {},
|
|
1135
|
-
# 'Giltighetsperiod': {'link': []},
|
|
1136
|
-
# 'ID': '1',
|
|
1137
|
-
# 'Kod': 'SWE',
|
|
1138
|
-
# 'LarosateID': -1,
|
|
1139
|
-
# 'link': []},
|
|
1140
|
-
# { 'Benamning': {'en': 'Danish', 'sv': 'Danska'},
|
|
1141
|
-
# 'Beskrivning': {},
|
|
1142
|
-
# 'Giltighetsperiod': {'link': []},
|
|
1143
|
-
# 'ID': '109804',
|
|
1144
|
-
# 'Kod': 'DAN',
|
|
1145
|
-
# 'LarosateID': -1,
|
|
1146
|
-
# 'link': []},
|
|
1147
|
-
# { 'Benamning': { 'en': 'Finnish',
|
|
1148
|
-
# 'sv': 'Finska'},
|
|
1149
|
-
# 'Beskrivning': {},
|
|
1150
|
-
# 'Giltighetsperiod': {'link': []},
|
|
1151
|
-
# 'ID': '109805',
|
|
1152
|
-
# 'Kod': 'FIN',
|
|
1153
|
-
# 'LarosateID': -1,
|
|
1154
|
-
# 'link': []},
|
|
1155
|
-
# { 'Benamning': { 'en': 'Italian',
|
|
1156
|
-
# 'sv': 'Italienska'},
|
|
1157
|
-
# 'Beskrivning': {},
|
|
1158
|
-
# 'Giltighetsperiod': {'link': []},
|
|
1159
|
-
# 'ID': '109806',
|
|
1160
|
-
# 'Kod': 'ITA',
|
|
1161
|
-
# 'LarosateID': -1,
|
|
1162
|
-
# 'link': []},
|
|
1163
|
-
# { 'Benamning': { 'en': 'Japanese',
|
|
1164
|
-
# 'sv': 'Japanska'},
|
|
1165
|
-
# 'Beskrivning': {},
|
|
1166
|
-
# 'Giltighetsperiod': {'link': []},
|
|
1167
|
-
# 'ID': '109807',
|
|
1168
|
-
# 'Kod': 'JPN',
|
|
1169
|
-
# 'LarosateID': -1,
|
|
1170
|
-
# 'link': []},
|
|
1171
|
-
# { 'Benamning': { 'en': 'Norwegian',
|
|
1172
|
-
# 'sv': 'Norska'},
|
|
1173
|
-
# 'Beskrivning': {},
|
|
1174
|
-
# 'Giltighetsperiod': {'link': []},
|
|
1175
|
-
# 'ID': '109808',
|
|
1176
|
-
# 'Kod': 'NOR',
|
|
1177
|
-
# 'LarosateID': -1,
|
|
1178
|
-
# 'link': []},
|
|
1179
|
-
# { 'Benamning': { 'en': 'Portugese',
|
|
1180
|
-
# 'sv': 'Portugisiska'},
|
|
1181
|
-
# 'Beskrivning': {},
|
|
1182
|
-
# 'Giltighetsperiod': {'link': []},
|
|
1183
|
-
# 'ID': '109809',
|
|
1184
|
-
# 'Kod': 'POR',
|
|
1185
|
-
# 'LarosateID': -1,
|
|
1186
|
-
# 'link': []},
|
|
1187
|
-
# { 'Benamning': { 'en': 'French',
|
|
1188
|
-
# 'sv': 'Franska'},
|
|
1189
|
-
# 'Beskrivning': {},
|
|
1190
|
-
# 'Giltighetsperiod': {'link': []},
|
|
1191
|
-
# 'ID': '109810',
|
|
1192
|
-
# 'Kod': 'FRE',
|
|
1193
|
-
# 'LarosateID': -1,
|
|
1194
|
-
# 'link': []},
|
|
1195
|
-
# { 'Benamning': {'en': 'German', 'sv': 'Tyska'},
|
|
1196
|
-
# 'Beskrivning': {},
|
|
1197
|
-
# 'Giltighetsperiod': {'link': []},
|
|
1198
|
-
# 'ID': '109811',
|
|
1199
|
-
# 'Kod': 'GER',
|
|
1200
|
-
# 'LarosateID': -1,
|
|
1201
|
-
# 'link': []},
|
|
1202
|
-
# { 'Benamning': { 'en': 'Chinese',
|
|
1203
|
-
# 'sv': 'Kinesiska'},
|
|
1204
|
-
# 'Beskrivning': {},
|
|
1205
|
-
# 'Giltighetsperiod': {'link': []},
|
|
1206
|
-
# 'ID': '111033',
|
|
1207
|
-
# 'Kod': 'CHI',
|
|
1208
|
-
# 'LarosateID': -1,
|
|
1209
|
-
# 'link': []},
|
|
1210
|
-
# { 'Benamning': { 'en': 'Arabic',
|
|
1211
|
-
# 'sv': 'Arabiska'},
|
|
1212
|
-
# 'Beskrivning': {},
|
|
1213
|
-
# 'Giltighetsperiod': {'link': []},
|
|
1214
|
-
# 'ID': '111032',
|
|
1215
|
-
# 'Kod': 'ARA',
|
|
1216
|
-
# 'LarosateID': -1,
|
|
1217
|
-
# 'link': []}],
|
|
1218
|
-
# 'link': []}
|
|
1219
|
-
# added by GQMJr
|
|
1220
|
-
#####################################################################
|
|
1221
|
-
#
|
|
1222
|
-
# i18n_translation_JSON
|
|
1223
|
-
#
|
|
1224
|
-
# lang - language code 'en' or 'sv', defaults to 'sv'
|
|
1225
|
-
# RETURNERAR JSON of i18n translations used in Ladok3
|
|
1226
|
-
def i18n_translation_JSON(self, lang="sv"):
|
|
1227
|
-
r = self.session.get(
|
|
1228
|
-
url=self.base_gui_proxy_url
|
|
1229
|
-
+ "/kataloginformation/i18n/oversattningar/sprakkod/"
|
|
1230
|
-
+ lang,
|
|
1231
|
-
headers=self.headers,
|
|
1232
|
-
).json()
|
|
1233
|
-
return r
|
|
1234
|
-
|
|
1235
|
-
# the above i18n translations are used for example in:
|
|
1236
|
-
# 'Utbildningstillfallestyp': { 'Benamningar': { 'en': 'Course instance', 'sv': 'Kurstillfälle'},
|
|
1237
|
-
# 'Giltighetsperiod': { 'link': [ ]},
|
|
1238
|
-
# 'Grundtyp': 'KURS',
|
|
1239
|
-
# 'ID': 52,
|
|
1240
|
-
# 'Kod': '2007KTF',
|
|
1241
|
-
# 'RegelverkForUtbildningstyp': { 'Regelvarden': [ { 'Regelnamn': 'commons.domain.regel.ingar.i.grupp.overfors.till.nya', 'link': [ ]},
|
|
1242
|
-
# { 'Regelnamn': 'commons.domain.regel.informationsbehorighet.grundavancerad', 'Varde': 'true', 'link': [ ]},
|
|
1243
|
-
# { 'Regelnamn': 'commons.domain.regel.kan.utannonseras', 'Varde': 'true', 'link': [ ]},
|
|
1244
|
-
# { 'Regelnamn': 'commons.domain.regel.grupp.for.utsokning',
|
|
1245
|
-
# 'Varde': 'grupp.for.utsokning.grundavanceradniva', 'link': [ ]}],
|
|
1246
|
-
# All of the things of the form "commons-domain.*" are i18n keys to look the actual text to be used.
|
|
1247
|
-
# for example:
|
|
1248
|
-
# in Swedish:
|
|
1249
|
-
# { 'I18nNyckel': 'commons.domain.regel.ingar.i.grupp.overfors.till.nya',
|
|
1250
|
-
# 'Text': 'Ingår i grupp: Överförs till NyA',
|
|
1251
|
-
# 'link': []},
|
|
1252
|
-
# In English:
|
|
1253
|
-
# { 'I18nNyckel': 'commons.domain.regel.ingar.i.grupp.overfors.till.nya',
|
|
1254
|
-
# 'Text': 'Part of group: Transferred to NyA',
|
|
1255
|
-
# 'link': []},
|
|
1256
|
-
# added by GQMJr
|
|
1257
|
-
#####################################################################
|
|
1258
|
-
#
|
|
1259
|
-
# svenskorter_JSON
|
|
1260
|
-
#
|
|
1261
|
-
# RETURNERAR JSON of places in Sweden with their KommunID
|
|
1262
|
-
def svenskorter_JSON(self):
|
|
1263
|
-
r = self.session.get(
|
|
1264
|
-
url=self.base_gui_proxy_url + "/kataloginformation/grunddata/svenskort",
|
|
1265
|
-
headers=self.headers,
|
|
1266
|
-
).json()
|
|
1267
|
-
return r
|
|
1254
|
+
+ ": "
|
|
1255
|
+
+ r.json()["Meddelande"]
|
|
1256
|
+
)
|
|
1268
1257
|
|
|
1269
|
-
|
|
1270
|
-
# { 'SvenskOrt': [ { 'Benamning': { 'en': 'Stockholm (Botkyrka)',
|
|
1271
|
-
# 'sv': 'Stockholm (Botkyrka)'},
|
|
1272
|
-
# 'Beskrivning': {},
|
|
1273
|
-
# 'Giltighetsperiod': {'link': []},
|
|
1274
|
-
# 'ID': '110990',
|
|
1275
|
-
# 'Kod': 'L0127',
|
|
1276
|
-
# 'KommunID': '8',
|
|
1277
|
-
# 'LarosateID': -1,
|
|
1278
|
-
# 'link': []},
|
|
1279
|
-
# ... ], 'link': []}
|
|
1280
|
-
# added by GQMJr
|
|
1281
|
-
#####################################################################
|
|
1282
|
-
#
|
|
1283
|
-
# kommuner_JSON
|
|
1284
|
-
#
|
|
1285
|
-
# RETURNERAR JSON of places in Sweden with their KommunID
|
|
1286
|
-
def kommuner_JSON(self):
|
|
1287
|
-
r = self.session.get(
|
|
1288
|
-
url=self.base_gui_proxy_url + "/kataloginformation/grunddata/kommun",
|
|
1289
|
-
headers=self.headers,
|
|
1290
|
-
).json()
|
|
1291
|
-
return r
|
|
1258
|
+
return True
|
|
1292
1259
|
|
|
1293
|
-
# returns:
|
|
1294
|
-
# { 'Kommun': [ { 'Benamning': {'en': 'Knivsta', 'sv': 'Knivsta'},
|
|
1295
|
-
# 'Beskrivning': {},
|
|
1296
|
-
# 'Giltighetsperiod': {'link': []},
|
|
1297
|
-
# 'ID': '29',
|
|
1298
|
-
# 'Kod': '0330',
|
|
1299
|
-
# 'LanID': 2,
|
|
1300
|
-
# 'LarosateID': -1,
|
|
1301
|
-
# 'link': []},
|
|
1302
|
-
# { 'Benamning': {'en': 'Heby', 'sv': 'Heby'},
|
|
1303
|
-
# 'Beskrivning': { 'sv': 'Överförd från Västmanlands '
|
|
1304
|
-
# 'till Uppsala län'},
|
|
1305
|
-
# 'Giltighetsperiod': { 'Startdatum': '2007-01-01',
|
|
1306
|
-
# 'link': []},
|
|
1307
|
-
# 'ID': '30',
|
|
1308
|
-
# 'Kod': '0331',
|
|
1309
|
-
# 'LanID': 2,
|
|
1310
|
-
# 'LarosateID': -1,
|
|
1311
|
-
# 'link': []},
|
|
1312
|
-
# ], 'link': []}
|
|
1313
|
-
# added by GQMJr
|
|
1314
1260
|
#####################################################################
|
|
1315
1261
|
#
|
|
1316
|
-
#
|
|
1317
|
-
#
|
|
1318
|
-
# RETURNERAR JSON of countries
|
|
1319
|
-
def lander_JSON(self):
|
|
1320
|
-
r = self.session.get(
|
|
1321
|
-
url=self.base_gui_proxy_url + "/kataloginformation/grunddata/land",
|
|
1322
|
-
headers=self.headers,
|
|
1323
|
-
).json()
|
|
1324
|
-
return r
|
|
1325
|
-
|
|
1326
|
-
# returns:
|
|
1327
|
-
# { 'Land': [ { 'Benamning': {'en': 'Bolivia', 'sv': 'Bolivia'},
|
|
1328
|
-
# 'Beskrivning': {},
|
|
1329
|
-
# 'Giltighetsperiod': {'link': []},
|
|
1330
|
-
# 'ID': '20',
|
|
1331
|
-
# 'Kod': 'BO',
|
|
1332
|
-
# 'LarosateID': -1,
|
|
1333
|
-
# 'link': []},
|
|
1334
|
-
# { 'Benamning': {'en': 'Brazil', 'sv': 'Brasilien'},
|
|
1335
|
-
# 'Beskrivning': {},
|
|
1336
|
-
# 'Giltighetsperiod': {'link': []},
|
|
1337
|
-
# 'ID': '21',
|
|
1338
|
-
# 'Kod': 'BR',
|
|
1339
|
-
# 'LarosateID': -1,
|
|
1340
|
-
# 'link': []},
|
|
1341
|
-
# ... ], 'link': []}
|
|
1342
|
-
# added by GQMJr
|
|
1343
|
-
#####################################################################
|
|
1262
|
+
# get_student_data
|
|
1344
1263
|
#
|
|
1345
|
-
#
|
|
1264
|
+
# person_nr - personnummer, flera format accepteras enligt regex:
|
|
1265
|
+
# (\d\d)?(\d\d)(\d\d\d\d)[+\-]?(\w\w\w\w)
|
|
1346
1266
|
#
|
|
1347
|
-
# RETURNERAR
|
|
1348
|
-
def undervisningstid_JSON(self):
|
|
1349
|
-
r = self.session.get(
|
|
1350
|
-
url=self.base_gui_proxy_url
|
|
1351
|
-
+ "/kataloginformation/grunddata/undervisningstid",
|
|
1352
|
-
headers=self.headers,
|
|
1353
|
-
).json()
|
|
1354
|
-
return r
|
|
1267
|
+
# RETURNERAR {'id': 'xxxx', 'first_name': 'x', 'last_name': 'y', 'person_nr': 'xxx', 'alive': True}
|
|
1355
1268
|
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
# 'sv': 'Blandad '
|
|
1359
|
-
# 'undervisningstid'},
|
|
1360
|
-
# 'Beskrivning': {},
|
|
1361
|
-
# 'Giltighetsperiod': {'link': []},
|
|
1362
|
-
# 'ID': '101051',
|
|
1363
|
-
# 'Kod': 'BLA',
|
|
1364
|
-
# 'LarosateID': -1,
|
|
1365
|
-
# 'link': []},
|
|
1366
|
-
# { 'Benamning': {'en': 'Day-time', 'sv': 'Dagtid'},
|
|
1367
|
-
# 'Beskrivning': {},
|
|
1368
|
-
# 'Giltighetsperiod': {'link': []},
|
|
1369
|
-
# 'ID': '101052',
|
|
1370
|
-
# 'Kod': 'DAG',
|
|
1371
|
-
# 'LarosateID': -1,
|
|
1372
|
-
# 'link': []},
|
|
1373
|
-
# { 'Benamning': { 'en': 'Afternoon-time',
|
|
1374
|
-
# 'sv': 'Eftermiddagstid'},
|
|
1375
|
-
# 'Beskrivning': {},
|
|
1376
|
-
# 'Giltighetsperiod': {'link': []},
|
|
1377
|
-
# 'ID': '101053',
|
|
1378
|
-
# 'Kod': 'EFT',
|
|
1379
|
-
# 'LarosateID': -1,
|
|
1380
|
-
# 'link': []},
|
|
1381
|
-
# { 'Benamning': { 'en': 'No teaching',
|
|
1382
|
-
# 'sv': 'Ingen '
|
|
1383
|
-
# 'undervisningstid'},
|
|
1384
|
-
# 'Beskrivning': {},
|
|
1385
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2016-04-30',
|
|
1386
|
-
# 'link': []},
|
|
1387
|
-
# 'ID': '101054',
|
|
1388
|
-
# 'Kod': 'ING',
|
|
1389
|
-
# 'LarosateID': -1,
|
|
1390
|
-
# 'link': []},
|
|
1391
|
-
# { 'Benamning': { 'en': 'Evening-time',
|
|
1392
|
-
# 'sv': 'Kvällstid'},
|
|
1393
|
-
# 'Beskrivning': {},
|
|
1394
|
-
# 'Giltighetsperiod': {'link': []},
|
|
1395
|
-
# 'ID': '101055',
|
|
1396
|
-
# 'Kod': 'KVÄ',
|
|
1397
|
-
# 'LarosateID': -1,
|
|
1398
|
-
# 'link': []},
|
|
1399
|
-
# { 'Benamning': { 'en': 'Weekends',
|
|
1400
|
-
# 'sv': 'Veckoslut'},
|
|
1401
|
-
# 'Beskrivning': {},
|
|
1402
|
-
# 'Giltighetsperiod': {'link': []},
|
|
1403
|
-
# 'ID': '101056',
|
|
1404
|
-
# 'Kod': 'VSL',
|
|
1405
|
-
# 'LarosateID': -1,
|
|
1406
|
-
# 'link': []}],
|
|
1407
|
-
# 'link': []}
|
|
1408
|
-
# added by GQMJr
|
|
1409
|
-
#####################################################################
|
|
1410
|
-
#
|
|
1411
|
-
# successivfordjupning_JSON
|
|
1412
|
-
#
|
|
1413
|
-
# RETURNERAR JSON of Successive Specializations
|
|
1414
|
-
def successivfordjupning_JSON(self):
|
|
1415
|
-
r = self.session.get(
|
|
1416
|
-
url=self.base_gui_proxy_url
|
|
1417
|
-
+ "/kataloginformation/grunddata/successivfordjupning",
|
|
1418
|
-
headers=self.headers,
|
|
1419
|
-
).json()
|
|
1420
|
-
return r
|
|
1269
|
+
def get_student_data(self, person_nr_raw):
|
|
1270
|
+
person_nr = format_personnummer(person_nr_raw)
|
|
1421
1271
|
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
# 'contains degree '
|
|
1425
|
-
# 'project for Master '
|
|
1426
|
-
# 'of Arts/Master of '
|
|
1427
|
-
# 'Science (60 '
|
|
1428
|
-
# 'credits)',
|
|
1429
|
-
# 'sv': 'Avancerad nivå, '
|
|
1430
|
-
# 'innehåller '
|
|
1431
|
-
# 'examensarbete för '
|
|
1432
|
-
# 'magisterexamen'},
|
|
1433
|
-
# 'Beskrivning': {},
|
|
1434
|
-
# 'Giltighetsperiod': {'link': []},
|
|
1435
|
-
# 'ID': '1',
|
|
1436
|
-
# 'Kod': 'A1E',
|
|
1437
|
-
# 'LarosateID': -1,
|
|
1438
|
-
# 'NivaInomStudieordningID': 2,
|
|
1439
|
-
# 'link': []},
|
|
1440
|
-
# { 'Benamning': { 'en': 'Second cycle, has '
|
|
1441
|
-
# 'second-cycle '
|
|
1442
|
-
# 'course/s as entry '
|
|
1443
|
-
# 'requirements',
|
|
1444
|
-
# 'sv': 'Avancerad nivå, '
|
|
1445
|
-
# 'har kurs/er på '
|
|
1446
|
-
# 'avancerad nivå som '
|
|
1447
|
-
# 'förkunskapskrav'},
|
|
1448
|
-
# 'Beskrivning': {},
|
|
1449
|
-
# 'Giltighetsperiod': {'link': []},
|
|
1450
|
-
# 'ID': '2',
|
|
1451
|
-
# 'Kod': 'A1F',
|
|
1452
|
-
# 'LarosateID': -1,
|
|
1453
|
-
# 'NivaInomStudieordningID': 2,
|
|
1454
|
-
# 'link': []},
|
|
1455
|
-
# ... ], 'link': []}
|
|
1456
|
-
# added by GQMJr
|
|
1457
|
-
#####################################################################
|
|
1458
|
-
#
|
|
1459
|
-
# undervisningsform_JSON
|
|
1460
|
-
#
|
|
1461
|
-
# RETURNERAR JSON of forms of education
|
|
1462
|
-
def undervisningsform_JSON(self):
|
|
1463
|
-
r = self.session.get(
|
|
1464
|
-
url=self.base_gui_proxy_url
|
|
1465
|
-
+ "/kataloginformation/grunddata/undervisningsform",
|
|
1466
|
-
headers=self.headers,
|
|
1467
|
-
).json()
|
|
1468
|
-
return r
|
|
1272
|
+
if not person_nr:
|
|
1273
|
+
raise Exception("Invalid person nr " + person_nr_raw)
|
|
1469
1274
|
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
# 'available -',
|
|
1473
|
-
# 'sv': 'IT-baserad distans'},
|
|
1474
|
-
# 'Beskrivning': {},
|
|
1475
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
1476
|
-
# 'link': []},
|
|
1477
|
-
# 'ID': '133253',
|
|
1478
|
-
# 'Kod': 'ITD',
|
|
1479
|
-
# 'LarosateID': 29,
|
|
1480
|
-
# 'link': []},
|
|
1481
|
-
# { 'Benamning': { 'en': '- No translation '
|
|
1482
|
-
# 'available -',
|
|
1483
|
-
# 'sv': 'Undervisningsområdet'},
|
|
1484
|
-
# 'Beskrivning': {},
|
|
1485
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
1486
|
-
# 'link': []},
|
|
1487
|
-
# 'ID': '133252',
|
|
1488
|
-
# 'Kod': 'LU',
|
|
1489
|
-
# 'LarosateID': 29,
|
|
1490
|
-
# 'link': []},
|
|
1491
|
-
# { 'Benamning': { 'en': 'Distance learning',
|
|
1492
|
-
# 'sv': 'Distans'},
|
|
1493
|
-
# 'Beskrivning': { 'sv': 'Obligatoriska '
|
|
1494
|
-
# 'träffar kan '
|
|
1495
|
-
# 'förekomma'},
|
|
1496
|
-
# 'Giltighetsperiod': {'link': []},
|
|
1497
|
-
# 'ID': '2',
|
|
1498
|
-
# 'Kod': 'DST',
|
|
1499
|
-
# 'LarosateID': -1,
|
|
1500
|
-
# 'link': []},
|
|
1501
|
-
# { 'Benamning': { 'en': 'No teaching',
|
|
1502
|
-
# 'sv': 'Ingen undervisning'},
|
|
1503
|
-
# 'Beskrivning': {},
|
|
1504
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2016-04-30',
|
|
1505
|
-
# 'link': []},
|
|
1506
|
-
# 'ID': '4',
|
|
1507
|
-
# 'Kod': 'ING',
|
|
1508
|
-
# 'LarosateID': -1,
|
|
1509
|
-
# 'link': []},
|
|
1510
|
-
# { 'Benamning': { 'en': 'Web-based distance '
|
|
1511
|
-
# 'learning',
|
|
1512
|
-
# 'sv': 'IT-baserad '
|
|
1513
|
-
# 'distansutbildning'},
|
|
1514
|
-
# 'Beskrivning': { 'sv': 'Ingen platsbunden '
|
|
1515
|
-
# 'undervisning'},
|
|
1516
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2016-04-30',
|
|
1517
|
-
# 'link': []},
|
|
1518
|
-
# 'ID': '3',
|
|
1519
|
-
# 'Kod': 'ITD',
|
|
1520
|
-
# 'LarosateID': -1,
|
|
1521
|
-
# 'link': []},
|
|
1522
|
-
# { 'Benamning': { 'en': 'Normal teaching',
|
|
1523
|
-
# 'sv': 'Normal'},
|
|
1524
|
-
# 'Beskrivning': {},
|
|
1525
|
-
# 'Giltighetsperiod': {'link': []},
|
|
1526
|
-
# 'ID': '1',
|
|
1527
|
-
# 'Kod': 'NML',
|
|
1528
|
-
# 'LarosateID': -1,
|
|
1529
|
-
# 'link': []}],
|
|
1530
|
-
# 'link': []}
|
|
1531
|
-
# added by GQMJr
|
|
1532
|
-
#####################################################################
|
|
1533
|
-
#
|
|
1534
|
-
# LokalaPerioder_JSON
|
|
1535
|
-
#
|
|
1536
|
-
# RETURNERAR JSON of local periods
|
|
1537
|
-
def LokalaPerioder_JSON(self):
|
|
1538
|
-
r = self.session.get(
|
|
1539
|
-
url=self.base_gui_proxy_url + "/kataloginformation/grunddata/period",
|
|
1540
|
-
headers=self.headers,
|
|
1541
|
-
).json()
|
|
1542
|
-
return r
|
|
1275
|
+
student_data = self.__get_student_data(person_nr)
|
|
1276
|
+
return student_data
|
|
1543
1277
|
|
|
1544
|
-
# returns:
|
|
1545
|
-
# { 'Period': [
|
|
1546
|
-
# ...
|
|
1547
|
-
# { 'Benamning': { 'en': 'Calendar year 2020',
|
|
1548
|
-
# 'sv': 'Kalenderår 2020'},
|
|
1549
|
-
# 'Beskrivning': {},
|
|
1550
|
-
# 'FromDatum': '2020-01-01',
|
|
1551
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2020-12-31',
|
|
1552
|
-
# 'Startdatum': '2020-01-01',
|
|
1553
|
-
# 'link': []},
|
|
1554
|
-
# 'ID': '29151',
|
|
1555
|
-
# 'Kod': '2020',
|
|
1556
|
-
# 'LarosateID': 29,
|
|
1557
|
-
# 'PeriodtypID': 1,
|
|
1558
|
-
# 'TomDatum': '2020-12-31',
|
|
1559
|
-
# 'link': []},
|
|
1560
|
-
# { 'Benamning': { 'en': 'Last six months of 2020',
|
|
1561
|
-
# 'sv': 'Andra halvår 2020'},
|
|
1562
|
-
# 'Beskrivning': {},
|
|
1563
|
-
# 'FromDatum': '2020-07-01',
|
|
1564
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2020-12-31',
|
|
1565
|
-
# 'Startdatum': '2020-07-01',
|
|
1566
|
-
# 'link': []},
|
|
1567
|
-
# 'ID': '29252',
|
|
1568
|
-
# 'Kod': '2020H',
|
|
1569
|
-
# 'LarosateID': 29,
|
|
1570
|
-
# 'PeriodtypID': 3,
|
|
1571
|
-
# 'TomDatum': '2020-12-31',
|
|
1572
|
-
# 'link': []},
|
|
1573
|
-
# { 'Benamning': { 'en': 'First six months of 2020',
|
|
1574
|
-
# 'sv': 'Första halvår 2020'},
|
|
1575
|
-
# 'Beskrivning': {},
|
|
1576
|
-
# 'FromDatum': '2020-01-01',
|
|
1577
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2020-06-30',
|
|
1578
|
-
# 'Startdatum': '2020-01-01',
|
|
1579
|
-
# 'link': []},
|
|
1580
|
-
# 'ID': '29324',
|
|
1581
|
-
# 'Kod': '2020V',
|
|
1582
|
-
# 'LarosateID': 29,
|
|
1583
|
-
# 'PeriodtypID': 3,
|
|
1584
|
-
# 'TomDatum': '2020-06-30',
|
|
1585
|
-
# 'link': []},
|
|
1586
|
-
# ...
|
|
1587
|
-
# 'link': []}
|
|
1588
|
-
# added by GQMJr
|
|
1589
1278
|
#####################################################################
|
|
1590
1279
|
#
|
|
1591
|
-
#
|
|
1592
|
-
#
|
|
1593
|
-
# RETURNERAR JSON of education levels
|
|
1594
|
-
def nivainomstudieordning_JSON(self):
|
|
1595
|
-
r = self.session.get(
|
|
1596
|
-
url=self.base_gui_proxy_url
|
|
1597
|
-
+ "/kataloginformation/grunddata/nivainomstudieordning",
|
|
1598
|
-
headers=self.headers,
|
|
1599
|
-
).json()
|
|
1600
|
-
return r
|
|
1601
|
-
|
|
1602
|
-
# returns:
|
|
1603
|
-
# { 'NivaInomStudieordning': [ { 'Benamning': { 'en': 'First cycle',
|
|
1604
|
-
# 'sv': 'Grundnivå'},
|
|
1605
|
-
# 'Beskrivning': {},
|
|
1606
|
-
# 'Giltighetsperiod': { 'Startdatum': '2007-07-01', 'link': []},
|
|
1607
|
-
# 'ID': '1',
|
|
1608
|
-
# 'Kod': '1',
|
|
1609
|
-
# 'LarosateID': -1,
|
|
1610
|
-
# 'link': []},
|
|
1611
|
-
# { 'Benamning': { 'en': 'Second cycle',
|
|
1612
|
-
# 'sv': 'Avancerad nivå'},
|
|
1613
|
-
# 'Beskrivning': {},
|
|
1614
|
-
# 'Giltighetsperiod': { 'Startdatum': '2007-07-01', 'link': []},
|
|
1615
|
-
# 'ID': '2',
|
|
1616
|
-
# 'Kod': '2',
|
|
1617
|
-
# 'LarosateID': -1,
|
|
1618
|
-
# 'link': []},
|
|
1619
|
-
# { 'Benamning': { 'en': 'Third cycle',
|
|
1620
|
-
# 'sv': 'Forskarnivå'},
|
|
1621
|
-
# 'Beskrivning': {},
|
|
1622
|
-
# 'Giltighetsperiod': { 'Startdatum': '2007-07-01', 'link': []},
|
|
1623
|
-
# 'ID': '3',
|
|
1624
|
-
# 'Kod': '3',
|
|
1625
|
-
# 'LarosateID': -1,
|
|
1626
|
-
# 'link': []},
|
|
1627
|
-
# { 'Benamning': { 'en': 'Postgraduate '
|
|
1628
|
-
# 'level',
|
|
1629
|
-
# 'sv': 'Forskarutbildning'},
|
|
1630
|
-
# 'Beskrivning': {},
|
|
1631
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2007-06-30',
|
|
1632
|
-
# 'Startdatum': '1977-07-01', 'link': []},
|
|
1633
|
-
# 'ID': '5',
|
|
1634
|
-
# 'Kod': 'F',
|
|
1635
|
-
# 'LarosateID': -1,
|
|
1636
|
-
# 'link': []},
|
|
1637
|
-
# { 'Benamning': { 'en': 'Undergraduate '
|
|
1638
|
-
# 'level',
|
|
1639
|
-
# 'sv': 'Grundutbildning'},
|
|
1640
|
-
# 'Beskrivning': {},
|
|
1641
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2007-06-30',
|
|
1642
|
-
# 'Startdatum': '1977-07-01', 'link': []},
|
|
1643
|
-
# 'ID': '4',
|
|
1644
|
-
# 'Kod': 'G',
|
|
1645
|
-
# 'LarosateID': -1,
|
|
1646
|
-
# 'link': []}],
|
|
1647
|
-
# 'link': []}
|
|
1648
|
-
# added by GQMJr
|
|
1649
|
-
#####################################################################
|
|
1280
|
+
# get_student_name
|
|
1650
1281
|
#
|
|
1651
|
-
#
|
|
1282
|
+
# person_nr - personnummer, flera format accepteras enligt regex:
|
|
1283
|
+
# (\d\d)?(\d\d)(\d\d\d\d)[+\-]?(\w\w\w\w)
|
|
1652
1284
|
#
|
|
1653
|
-
# RETURNERAR
|
|
1654
|
-
def amnesgrupp_JSON(self):
|
|
1655
|
-
r = self.session.get(
|
|
1656
|
-
url=self.base_gui_proxy_url + "/kataloginformation/grunddata/amnesgrupp",
|
|
1657
|
-
headers=self.headers,
|
|
1658
|
-
).json()
|
|
1659
|
-
return r
|
|
1660
|
-
|
|
1661
|
-
# returns:
|
|
1662
|
-
# { 'Amnesgrupp': [ { 'Benamning': { 'en': 'Archival Science',
|
|
1663
|
-
# 'sv': 'Arkivvetenskap'},
|
|
1664
|
-
# 'Beskrivning': {},
|
|
1665
|
-
# 'Giltighetsperiod': {'link': []},
|
|
1666
|
-
# 'ID': '10',
|
|
1667
|
-
# 'Kod': 'AV1',
|
|
1668
|
-
# 'LarosateID': -1,
|
|
1669
|
-
# 'link': []},
|
|
1670
|
-
# ...
|
|
1671
|
-
# { 'Benamning': {'en': 'Philosophy', 'sv': 'Filosofi'},
|
|
1672
|
-
# 'Beskrivning': {},
|
|
1673
|
-
# 'Giltighetsperiod': {'link': []},
|
|
1674
|
-
# 'ID': '42',
|
|
1675
|
-
# 'Kod': 'FI2',
|
|
1676
|
-
# 'LarosateID': -1,
|
|
1677
|
-
# 'link': []},
|
|
1678
|
-
# ...
|
|
1679
|
-
# { 'Benamning': { 'en': 'Informatics/Computer and '
|
|
1680
|
-
# 'Systems Sciences',
|
|
1681
|
-
# 'sv': 'Informatik/data- och '
|
|
1682
|
-
# 'systemvetenskap'},
|
|
1683
|
-
# 'Beskrivning': {},
|
|
1684
|
-
# 'Giltighetsperiod': {'link': []},
|
|
1685
|
-
# 'ID': '68',
|
|
1686
|
-
# 'Kod': 'IF1',
|
|
1687
|
-
# 'LarosateID': -1,
|
|
1688
|
-
# 'link': []},
|
|
1689
|
-
# ...
|
|
1690
|
-
# { 'Benamning': { 'en': 'Electronics',
|
|
1691
|
-
# 'sv': 'Elektronik'},
|
|
1692
|
-
# 'Beskrivning': {},
|
|
1693
|
-
# 'Giltighetsperiod': {'link': []},
|
|
1694
|
-
# 'ID': '30',
|
|
1695
|
-
# 'Kod': 'EL1',
|
|
1696
|
-
# 'LarosateID': -1,
|
|
1697
|
-
# 'link': []},
|
|
1698
|
-
# ... ],
|
|
1699
|
-
# 'link': []}
|
|
1700
|
-
# added by GQMJr
|
|
1701
|
-
#####################################################################
|
|
1285
|
+
# RETURNERAR en dictionary med för- och efternamn
|
|
1702
1286
|
#
|
|
1703
|
-
#
|
|
1287
|
+
# {"first_name" : 'Anna', "last_name : 'Andersson'}
|
|
1704
1288
|
#
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
r = self.session.get(
|
|
1708
|
-
url=self.base_gui_proxy_url + "/kataloginformation/grunddata/studietakt",
|
|
1709
|
-
headers=self.headers,
|
|
1710
|
-
).json()
|
|
1711
|
-
return r
|
|
1289
|
+
def get_student_name(self, person_nr_raw):
|
|
1290
|
+
person_nr = format_personnummer(person_nr_raw)
|
|
1712
1291
|
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
# 'sv': 'Noll'},
|
|
1716
|
-
# 'Beskrivning': {},
|
|
1717
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
1718
|
-
# 'link': []},
|
|
1719
|
-
# 'ID': '133268',
|
|
1720
|
-
# 'Kod': '0',
|
|
1721
|
-
# 'LarosateID': 29,
|
|
1722
|
-
# 'Takt': 0,
|
|
1723
|
-
# 'link': []},
|
|
1724
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
1725
|
-
# 'sv': 'Kvartstid'},
|
|
1726
|
-
# 'Beskrivning': {},
|
|
1727
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
1728
|
-
# 'link': []},
|
|
1729
|
-
# 'ID': '133270',
|
|
1730
|
-
# 'Kod': '1',
|
|
1731
|
-
# 'LarosateID': 29,
|
|
1732
|
-
# 'Takt': 1,
|
|
1733
|
-
# 'link': []},
|
|
1734
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
1735
|
-
# 'sv': 'Kvartstid'},
|
|
1736
|
-
# 'Beskrivning': {},
|
|
1737
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
1738
|
-
# 'link': []},
|
|
1739
|
-
# 'ID': '133282',
|
|
1740
|
-
# 'Kod': '11',
|
|
1741
|
-
# 'LarosateID': 29,
|
|
1742
|
-
# 'Takt': 11,
|
|
1743
|
-
# 'link': []},
|
|
1744
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
1745
|
-
# 'sv': 'Kvartstid'},
|
|
1746
|
-
# 'Beskrivning': {},
|
|
1747
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
1748
|
-
# 'link': []},
|
|
1749
|
-
# 'ID': '133281',
|
|
1750
|
-
# 'Kod': '13',
|
|
1751
|
-
# 'LarosateID': 29,
|
|
1752
|
-
# 'Takt': 13,
|
|
1753
|
-
# 'link': []},
|
|
1754
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
1755
|
-
# 'sv': 'Kvartstid'},
|
|
1756
|
-
# 'Beskrivning': {},
|
|
1757
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
1758
|
-
# 'link': []},
|
|
1759
|
-
# 'ID': '133278',
|
|
1760
|
-
# 'Kod': '14',
|
|
1761
|
-
# 'LarosateID': 29,
|
|
1762
|
-
# 'Takt': 14,
|
|
1763
|
-
# 'link': []},
|
|
1764
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
1765
|
-
# 'sv': 'Kvartstid'},
|
|
1766
|
-
# 'Beskrivning': {},
|
|
1767
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
1768
|
-
# 'link': []},
|
|
1769
|
-
# 'ID': '133283',
|
|
1770
|
-
# 'Kod': '15',
|
|
1771
|
-
# 'LarosateID': 29,
|
|
1772
|
-
# 'Takt': 15,
|
|
1773
|
-
# 'link': []},
|
|
1774
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
1775
|
-
# 'sv': 'Kvartstid'},
|
|
1776
|
-
# 'Beskrivning': {},
|
|
1777
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
1778
|
-
# 'link': []},
|
|
1779
|
-
# 'ID': '133280',
|
|
1780
|
-
# 'Kod': '16',
|
|
1781
|
-
# 'LarosateID': 29,
|
|
1782
|
-
# 'Takt': 16,
|
|
1783
|
-
# 'link': []},
|
|
1784
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
1785
|
-
# 'sv': 'Kvartstid'},
|
|
1786
|
-
# 'Beskrivning': {},
|
|
1787
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
1788
|
-
# 'link': []},
|
|
1789
|
-
# 'ID': '133289',
|
|
1790
|
-
# 'Kod': '18',
|
|
1791
|
-
# 'LarosateID': 29,
|
|
1792
|
-
# 'Takt': 18,
|
|
1793
|
-
# 'link': []},
|
|
1794
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
1795
|
-
# 'sv': 'Kvartstid'},
|
|
1796
|
-
# 'Beskrivning': {},
|
|
1797
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
1798
|
-
# 'link': []},
|
|
1799
|
-
# 'ID': '133279',
|
|
1800
|
-
# 'Kod': '19',
|
|
1801
|
-
# 'LarosateID': 29,
|
|
1802
|
-
# 'Takt': 19,
|
|
1803
|
-
# 'link': []},
|
|
1804
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
1805
|
-
# 'sv': 'Kvartstid'},
|
|
1806
|
-
# 'Beskrivning': {},
|
|
1807
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
1808
|
-
# 'link': []},
|
|
1809
|
-
# 'ID': '133271',
|
|
1810
|
-
# 'Kod': '2',
|
|
1811
|
-
# 'LarosateID': 29,
|
|
1812
|
-
# 'Takt': 2,
|
|
1813
|
-
# 'link': []},
|
|
1814
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
1815
|
-
# 'sv': 'Kvartstid'},
|
|
1816
|
-
# 'Beskrivning': {},
|
|
1817
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
1818
|
-
# 'link': []},
|
|
1819
|
-
# 'ID': '133285',
|
|
1820
|
-
# 'Kod': '20',
|
|
1821
|
-
# 'LarosateID': 29,
|
|
1822
|
-
# 'Takt': 20,
|
|
1823
|
-
# 'link': []},
|
|
1824
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
1825
|
-
# 'sv': 'Kvartstid'},
|
|
1826
|
-
# 'Beskrivning': {},
|
|
1827
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
1828
|
-
# 'link': []},
|
|
1829
|
-
# 'ID': '133287',
|
|
1830
|
-
# 'Kod': '21',
|
|
1831
|
-
# 'LarosateID': 29,
|
|
1832
|
-
# 'Takt': 21,
|
|
1833
|
-
# 'link': []},
|
|
1834
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
1835
|
-
# 'sv': 'Kvartstid'},
|
|
1836
|
-
# 'Beskrivning': {},
|
|
1837
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
1838
|
-
# 'link': []},
|
|
1839
|
-
# 'ID': '133290',
|
|
1840
|
-
# 'Kod': '22',
|
|
1841
|
-
# 'LarosateID': 29,
|
|
1842
|
-
# 'Takt': 22,
|
|
1843
|
-
# 'link': []},
|
|
1844
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
1845
|
-
# 'sv': 'Kvartstid'},
|
|
1846
|
-
# 'Beskrivning': {},
|
|
1847
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
1848
|
-
# 'link': []},
|
|
1849
|
-
# 'ID': '133284',
|
|
1850
|
-
# 'Kod': '23',
|
|
1851
|
-
# 'LarosateID': 29,
|
|
1852
|
-
# 'Takt': 23,
|
|
1853
|
-
# 'link': []},
|
|
1854
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
1855
|
-
# 'sv': 'Kvartstid'},
|
|
1856
|
-
# 'Beskrivning': {},
|
|
1857
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
1858
|
-
# 'link': []},
|
|
1859
|
-
# 'ID': '133286',
|
|
1860
|
-
# 'Kod': '24',
|
|
1861
|
-
# 'LarosateID': 29,
|
|
1862
|
-
# 'Takt': 24,
|
|
1863
|
-
# 'link': []},
|
|
1864
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
1865
|
-
# 'sv': 'Kvartstid'},
|
|
1866
|
-
# 'Beskrivning': {},
|
|
1867
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
1868
|
-
# 'link': []},
|
|
1869
|
-
# 'ID': '133288',
|
|
1870
|
-
# 'Kod': '26',
|
|
1871
|
-
# 'LarosateID': 29,
|
|
1872
|
-
# 'Takt': 26,
|
|
1873
|
-
# 'link': []},
|
|
1874
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
1875
|
-
# 'sv': 'Kvartstid'},
|
|
1876
|
-
# 'Beskrivning': {},
|
|
1877
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
1878
|
-
# 'link': []},
|
|
1879
|
-
# 'ID': '133291',
|
|
1880
|
-
# 'Kod': '27',
|
|
1881
|
-
# 'LarosateID': 29,
|
|
1882
|
-
# 'Takt': 27,
|
|
1883
|
-
# 'link': []},
|
|
1884
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
1885
|
-
# 'sv': 'Kvartstid'},
|
|
1886
|
-
# 'Beskrivning': {},
|
|
1887
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
1888
|
-
# 'link': []},
|
|
1889
|
-
# 'ID': '133292',
|
|
1890
|
-
# 'Kod': '28',
|
|
1891
|
-
# 'LarosateID': 29,
|
|
1892
|
-
# 'Takt': 28,
|
|
1893
|
-
# 'link': []},
|
|
1894
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
1895
|
-
# 'sv': 'Kvartstid'},
|
|
1896
|
-
# 'Beskrivning': {},
|
|
1897
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
1898
|
-
# 'link': []},
|
|
1899
|
-
# 'ID': '133294',
|
|
1900
|
-
# 'Kod': '29',
|
|
1901
|
-
# 'LarosateID': 29,
|
|
1902
|
-
# 'Takt': 29,
|
|
1903
|
-
# 'link': []},
|
|
1904
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
1905
|
-
# 'sv': 'Kvartstid'},
|
|
1906
|
-
# 'Beskrivning': {},
|
|
1907
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
1908
|
-
# 'link': []},
|
|
1909
|
-
# 'ID': '133274',
|
|
1910
|
-
# 'Kod': '3',
|
|
1911
|
-
# 'LarosateID': 29,
|
|
1912
|
-
# 'Takt': 3,
|
|
1913
|
-
# 'link': []},
|
|
1914
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
1915
|
-
# 'sv': 'Kvartstid'},
|
|
1916
|
-
# 'Beskrivning': {},
|
|
1917
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
1918
|
-
# 'link': []},
|
|
1919
|
-
# 'ID': '133293',
|
|
1920
|
-
# 'Kod': '30',
|
|
1921
|
-
# 'LarosateID': 29,
|
|
1922
|
-
# 'Takt': 30,
|
|
1923
|
-
# 'link': []},
|
|
1924
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
1925
|
-
# 'sv': 'Kvartstid'},
|
|
1926
|
-
# 'Beskrivning': {},
|
|
1927
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
1928
|
-
# 'link': []},
|
|
1929
|
-
# 'ID': '133296',
|
|
1930
|
-
# 'Kod': '31',
|
|
1931
|
-
# 'LarosateID': 29,
|
|
1932
|
-
# 'Takt': 31,
|
|
1933
|
-
# 'link': []},
|
|
1934
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
1935
|
-
# 'sv': 'Kvartstid'},
|
|
1936
|
-
# 'Beskrivning': {},
|
|
1937
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
1938
|
-
# 'link': []},
|
|
1939
|
-
# 'ID': '133295',
|
|
1940
|
-
# 'Kod': '32',
|
|
1941
|
-
# 'LarosateID': 29,
|
|
1942
|
-
# 'Takt': 32,
|
|
1943
|
-
# 'link': []},
|
|
1944
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
1945
|
-
# 'sv': 'Kvartstid'},
|
|
1946
|
-
# 'Beskrivning': {},
|
|
1947
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
1948
|
-
# 'link': []},
|
|
1949
|
-
# 'ID': '133299',
|
|
1950
|
-
# 'Kod': '34',
|
|
1951
|
-
# 'LarosateID': 29,
|
|
1952
|
-
# 'Takt': 34,
|
|
1953
|
-
# 'link': []},
|
|
1954
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
1955
|
-
# 'sv': 'Kvartstid'},
|
|
1956
|
-
# 'Beskrivning': {},
|
|
1957
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
1958
|
-
# 'link': []},
|
|
1959
|
-
# 'ID': '133298',
|
|
1960
|
-
# 'Kod': '35',
|
|
1961
|
-
# 'LarosateID': 29,
|
|
1962
|
-
# 'Takt': 35,
|
|
1963
|
-
# 'link': []},
|
|
1964
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
1965
|
-
# 'sv': 'Kvartstid'},
|
|
1966
|
-
# 'Beskrivning': {},
|
|
1967
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
1968
|
-
# 'link': []},
|
|
1969
|
-
# 'ID': '133297',
|
|
1970
|
-
# 'Kod': '36',
|
|
1971
|
-
# 'LarosateID': 29,
|
|
1972
|
-
# 'Takt': 36,
|
|
1973
|
-
# 'link': []},
|
|
1974
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
1975
|
-
# 'sv': 'Kvartstid'},
|
|
1976
|
-
# 'Beskrivning': {},
|
|
1977
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
1978
|
-
# 'link': []},
|
|
1979
|
-
# 'ID': '133307',
|
|
1980
|
-
# 'Kod': '37',
|
|
1981
|
-
# 'LarosateID': 29,
|
|
1982
|
-
# 'Takt': 37,
|
|
1983
|
-
# 'link': []},
|
|
1984
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
1985
|
-
# 'sv': 'Halvtid'},
|
|
1986
|
-
# 'Beskrivning': {},
|
|
1987
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
1988
|
-
# 'link': []},
|
|
1989
|
-
# 'ID': '133303',
|
|
1990
|
-
# 'Kod': '38',
|
|
1991
|
-
# 'LarosateID': 29,
|
|
1992
|
-
# 'Takt': 38,
|
|
1993
|
-
# 'link': []},
|
|
1994
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
1995
|
-
# 'sv': 'Halvtid'},
|
|
1996
|
-
# 'Beskrivning': {},
|
|
1997
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
1998
|
-
# 'link': []},
|
|
1999
|
-
# 'ID': '133300',
|
|
2000
|
-
# 'Kod': '39',
|
|
2001
|
-
# 'LarosateID': 29,
|
|
2002
|
-
# 'Takt': 39,
|
|
2003
|
-
# 'link': []},
|
|
2004
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2005
|
-
# 'sv': 'Kvartstid'},
|
|
2006
|
-
# 'Beskrivning': {},
|
|
2007
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2008
|
-
# 'link': []},
|
|
2009
|
-
# 'ID': '133269',
|
|
2010
|
-
# 'Kod': '4',
|
|
2011
|
-
# 'LarosateID': 29,
|
|
2012
|
-
# 'Takt': 4,
|
|
2013
|
-
# 'link': []},
|
|
2014
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2015
|
-
# 'sv': 'Halvtid'},
|
|
2016
|
-
# 'Beskrivning': {},
|
|
2017
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2018
|
-
# 'link': []},
|
|
2019
|
-
# 'ID': '133302',
|
|
2020
|
-
# 'Kod': '40',
|
|
2021
|
-
# 'LarosateID': 29,
|
|
2022
|
-
# 'Takt': 40,
|
|
2023
|
-
# 'link': []},
|
|
2024
|
-
# { 'Benamning': { 'en': 'One-tenth-time',
|
|
2025
|
-
# 'sv': 'Tiondelsfart'},
|
|
2026
|
-
# 'Beskrivning': {},
|
|
2027
|
-
# 'Giltighetsperiod': {'link': []},
|
|
2028
|
-
# 'ID': '8',
|
|
2029
|
-
# 'Kod': '10',
|
|
2030
|
-
# 'LarosateID': -1,
|
|
2031
|
-
# 'Takt': 10,
|
|
2032
|
-
# 'link': []},
|
|
2033
|
-
# { 'Benamning': {'en': 'Full-time', 'sv': 'Helfart'},
|
|
2034
|
-
# 'Beskrivning': {},
|
|
2035
|
-
# 'Giltighetsperiod': {'link': []},
|
|
2036
|
-
# 'ID': '1',
|
|
2037
|
-
# 'Kod': '100',
|
|
2038
|
-
# 'LarosateID': -1,
|
|
2039
|
-
# 'Takt': 100,
|
|
2040
|
-
# 'link': []},
|
|
2041
|
-
# { 'Benamning': { 'en': 'One-eight-time',
|
|
2042
|
-
# 'sv': 'Åttondelsfart'},
|
|
2043
|
-
# 'Beskrivning': {},
|
|
2044
|
-
# 'Giltighetsperiod': {'link': []},
|
|
2045
|
-
# 'ID': '128190',
|
|
2046
|
-
# 'Kod': '12',
|
|
2047
|
-
# 'LarosateID': -1,
|
|
2048
|
-
# 'Takt': 12,
|
|
2049
|
-
# 'link': []},
|
|
2050
|
-
# { 'Benamning': { 'en': 'One-sixth-time',
|
|
2051
|
-
# 'sv': 'Sjättedelsfart'},
|
|
2052
|
-
# 'Beskrivning': {},
|
|
2053
|
-
# 'Giltighetsperiod': {'link': []},
|
|
2054
|
-
# 'ID': '7',
|
|
2055
|
-
# 'Kod': '17',
|
|
2056
|
-
# 'LarosateID': -1,
|
|
2057
|
-
# 'Takt': 17,
|
|
2058
|
-
# 'link': []},
|
|
2059
|
-
# { 'Benamning': { 'en': 'One-quarter-time',
|
|
2060
|
-
# 'sv': 'Kvartsfart'},
|
|
2061
|
-
# 'Beskrivning': {},
|
|
2062
|
-
# 'Giltighetsperiod': {'link': []},
|
|
2063
|
-
# 'ID': '6',
|
|
2064
|
-
# 'Kod': '25',
|
|
2065
|
-
# 'LarosateID': -1,
|
|
2066
|
-
# 'Takt': 25,
|
|
2067
|
-
# 'link': []},
|
|
2068
|
-
# { 'Benamning': { 'en': 'One-third-time',
|
|
2069
|
-
# 'sv': 'Tredjedelsfart'},
|
|
2070
|
-
# 'Beskrivning': {},
|
|
2071
|
-
# 'Giltighetsperiod': {'link': []},
|
|
2072
|
-
# 'ID': '5',
|
|
2073
|
-
# 'Kod': '33',
|
|
2074
|
-
# 'LarosateID': -1,
|
|
2075
|
-
# 'Takt': 33,
|
|
2076
|
-
# 'link': []},
|
|
2077
|
-
# { 'Benamning': {'en': 'Half-time', 'sv': 'Halvfart'},
|
|
2078
|
-
# 'Beskrivning': {},
|
|
2079
|
-
# 'Giltighetsperiod': {'link': []},
|
|
2080
|
-
# 'ID': '4',
|
|
2081
|
-
# 'Kod': '50',
|
|
2082
|
-
# 'LarosateID': -1,
|
|
2083
|
-
# 'Takt': 50,
|
|
2084
|
-
# 'link': []},
|
|
2085
|
-
# { 'Benamning': { 'en': 'Two-thirds-time',
|
|
2086
|
-
# 'sv': 'Tvåtredjedelsfart'},
|
|
2087
|
-
# 'Beskrivning': { 'sv': 'Ändras till '
|
|
2088
|
-
# '"Tvåtredjedelsfart" efter '
|
|
2089
|
-
# 'fullbordad '
|
|
2090
|
-
# 'produktionssättning.'},
|
|
2091
|
-
# 'Giltighetsperiod': {'link': []},
|
|
2092
|
-
# 'ID': '3',
|
|
2093
|
-
# 'Kod': '67',
|
|
2094
|
-
# 'LarosateID': -1,
|
|
2095
|
-
# 'Takt': 67,
|
|
2096
|
-
# 'link': []},
|
|
2097
|
-
# { 'Benamning': { 'en': 'Three-quarters-time',
|
|
2098
|
-
# 'sv': 'Trekvartsfart'},
|
|
2099
|
-
# 'Beskrivning': {},
|
|
2100
|
-
# 'Giltighetsperiod': {'link': []},
|
|
2101
|
-
# 'ID': '2',
|
|
2102
|
-
# 'Kod': '75',
|
|
2103
|
-
# 'LarosateID': -1,
|
|
2104
|
-
# 'Takt': 75,
|
|
2105
|
-
# 'link': []},
|
|
2106
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2107
|
-
# 'sv': 'Halvtid'},
|
|
2108
|
-
# 'Beskrivning': {},
|
|
2109
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2110
|
-
# 'link': []},
|
|
2111
|
-
# 'ID': '133304',
|
|
2112
|
-
# 'Kod': '41',
|
|
2113
|
-
# 'LarosateID': 29,
|
|
2114
|
-
# 'Takt': 41,
|
|
2115
|
-
# 'link': []},
|
|
2116
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2117
|
-
# 'sv': 'Halvtid'},
|
|
2118
|
-
# 'Beskrivning': {},
|
|
2119
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2120
|
-
# 'link': []},
|
|
2121
|
-
# 'ID': '133305',
|
|
2122
|
-
# 'Kod': '42',
|
|
2123
|
-
# 'LarosateID': 29,
|
|
2124
|
-
# 'Takt': 42,
|
|
2125
|
-
# 'link': []},
|
|
2126
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2127
|
-
# 'sv': 'Halvtid'},
|
|
2128
|
-
# 'Beskrivning': {},
|
|
2129
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2130
|
-
# 'link': []},
|
|
2131
|
-
# 'ID': '133301',
|
|
2132
|
-
# 'Kod': '43',
|
|
2133
|
-
# 'LarosateID': 29,
|
|
2134
|
-
# 'Takt': 43,
|
|
2135
|
-
# 'link': []},
|
|
2136
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2137
|
-
# 'sv': 'Halvtid'},
|
|
2138
|
-
# 'Beskrivning': {},
|
|
2139
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2140
|
-
# 'link': []},
|
|
2141
|
-
# 'ID': '133312',
|
|
2142
|
-
# 'Kod': '44',
|
|
2143
|
-
# 'LarosateID': 29,
|
|
2144
|
-
# 'Takt': 44,
|
|
2145
|
-
# 'link': []},
|
|
2146
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2147
|
-
# 'sv': 'Halvtid'},
|
|
2148
|
-
# 'Beskrivning': {},
|
|
2149
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2150
|
-
# 'link': []},
|
|
2151
|
-
# 'ID': '133308',
|
|
2152
|
-
# 'Kod': '45',
|
|
2153
|
-
# 'LarosateID': 29,
|
|
2154
|
-
# 'Takt': 45,
|
|
2155
|
-
# 'link': []},
|
|
2156
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2157
|
-
# 'sv': 'Halvtid'},
|
|
2158
|
-
# 'Beskrivning': {},
|
|
2159
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2160
|
-
# 'link': []},
|
|
2161
|
-
# 'ID': '133306',
|
|
2162
|
-
# 'Kod': '46',
|
|
2163
|
-
# 'LarosateID': 29,
|
|
2164
|
-
# 'Takt': 46,
|
|
2165
|
-
# 'link': []},
|
|
2166
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2167
|
-
# 'sv': 'Halvtid'},
|
|
2168
|
-
# 'Beskrivning': {},
|
|
2169
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2170
|
-
# 'link': []},
|
|
2171
|
-
# 'ID': '133310',
|
|
2172
|
-
# 'Kod': '47',
|
|
2173
|
-
# 'LarosateID': 29,
|
|
2174
|
-
# 'Takt': 47,
|
|
2175
|
-
# 'link': []},
|
|
2176
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2177
|
-
# 'sv': 'Halvtid'},
|
|
2178
|
-
# 'Beskrivning': {},
|
|
2179
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2180
|
-
# 'link': []},
|
|
2181
|
-
# 'ID': '133309',
|
|
2182
|
-
# 'Kod': '48',
|
|
2183
|
-
# 'LarosateID': 29,
|
|
2184
|
-
# 'Takt': 48,
|
|
2185
|
-
# 'link': []},
|
|
2186
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2187
|
-
# 'sv': 'Halvtid'},
|
|
2188
|
-
# 'Beskrivning': {},
|
|
2189
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2190
|
-
# 'link': []},
|
|
2191
|
-
# 'ID': '133311',
|
|
2192
|
-
# 'Kod': '49',
|
|
2193
|
-
# 'LarosateID': 29,
|
|
2194
|
-
# 'Takt': 49,
|
|
2195
|
-
# 'link': []},
|
|
2196
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2197
|
-
# 'sv': 'Kvartstid'},
|
|
2198
|
-
# 'Beskrivning': {},
|
|
2199
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2200
|
-
# 'link': []},
|
|
2201
|
-
# 'ID': '133276',
|
|
2202
|
-
# 'Kod': '5',
|
|
2203
|
-
# 'LarosateID': 29,
|
|
2204
|
-
# 'Takt': 5,
|
|
2205
|
-
# 'link': []},
|
|
2206
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2207
|
-
# 'sv': 'Halvtid'},
|
|
2208
|
-
# 'Beskrivning': {},
|
|
2209
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2210
|
-
# 'link': []},
|
|
2211
|
-
# 'ID': '133318',
|
|
2212
|
-
# 'Kod': '51',
|
|
2213
|
-
# 'LarosateID': 29,
|
|
2214
|
-
# 'Takt': 51,
|
|
2215
|
-
# 'link': []},
|
|
2216
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2217
|
-
# 'sv': 'Halvtid'},
|
|
2218
|
-
# 'Beskrivning': {},
|
|
2219
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2220
|
-
# 'link': []},
|
|
2221
|
-
# 'ID': '133315',
|
|
2222
|
-
# 'Kod': '52',
|
|
2223
|
-
# 'LarosateID': 29,
|
|
2224
|
-
# 'Takt': 52,
|
|
2225
|
-
# 'link': []},
|
|
2226
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2227
|
-
# 'sv': 'Halvtid'},
|
|
2228
|
-
# 'Beskrivning': {},
|
|
2229
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2230
|
-
# 'link': []},
|
|
2231
|
-
# 'ID': '133314',
|
|
2232
|
-
# 'Kod': '53',
|
|
2233
|
-
# 'LarosateID': 29,
|
|
2234
|
-
# 'Takt': 53,
|
|
2235
|
-
# 'link': []},
|
|
2236
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2237
|
-
# 'sv': 'Halvtid'},
|
|
2238
|
-
# 'Beskrivning': {},
|
|
2239
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2240
|
-
# 'link': []},
|
|
2241
|
-
# 'ID': '133313',
|
|
2242
|
-
# 'Kod': '54',
|
|
2243
|
-
# 'LarosateID': 29,
|
|
2244
|
-
# 'Takt': 54,
|
|
2245
|
-
# 'link': []},
|
|
2246
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2247
|
-
# 'sv': 'Halvtid'},
|
|
2248
|
-
# 'Beskrivning': {},
|
|
2249
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2250
|
-
# 'link': []},
|
|
2251
|
-
# 'ID': '133316',
|
|
2252
|
-
# 'Kod': '55',
|
|
2253
|
-
# 'LarosateID': 29,
|
|
2254
|
-
# 'Takt': 55,
|
|
2255
|
-
# 'link': []},
|
|
2256
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2257
|
-
# 'sv': 'Halvtid'},
|
|
2258
|
-
# 'Beskrivning': {},
|
|
2259
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2260
|
-
# 'link': []},
|
|
2261
|
-
# 'ID': '133319',
|
|
2262
|
-
# 'Kod': '56',
|
|
2263
|
-
# 'LarosateID': 29,
|
|
2264
|
-
# 'Takt': 56,
|
|
2265
|
-
# 'link': []},
|
|
2266
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2267
|
-
# 'sv': 'Halvtid'},
|
|
2268
|
-
# 'Beskrivning': {},
|
|
2269
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2270
|
-
# 'link': []},
|
|
2271
|
-
# 'ID': '133317',
|
|
2272
|
-
# 'Kod': '57',
|
|
2273
|
-
# 'LarosateID': 29,
|
|
2274
|
-
# 'Takt': 57,
|
|
2275
|
-
# 'link': []},
|
|
2276
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2277
|
-
# 'sv': 'Halvtid'},
|
|
2278
|
-
# 'Beskrivning': {},
|
|
2279
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2280
|
-
# 'link': []},
|
|
2281
|
-
# 'ID': '133320',
|
|
2282
|
-
# 'Kod': '58',
|
|
2283
|
-
# 'LarosateID': 29,
|
|
2284
|
-
# 'Takt': 58,
|
|
2285
|
-
# 'link': []},
|
|
2286
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2287
|
-
# 'sv': 'Halvtid'},
|
|
2288
|
-
# 'Beskrivning': {},
|
|
2289
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2290
|
-
# 'link': []},
|
|
2291
|
-
# 'ID': '133322',
|
|
2292
|
-
# 'Kod': '59',
|
|
2293
|
-
# 'LarosateID': 29,
|
|
2294
|
-
# 'Takt': 59,
|
|
2295
|
-
# 'link': []},
|
|
2296
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2297
|
-
# 'sv': 'Kvartstid'},
|
|
2298
|
-
# 'Beskrivning': {},
|
|
2299
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2300
|
-
# 'link': []},
|
|
2301
|
-
# 'ID': '133272',
|
|
2302
|
-
# 'Kod': '6',
|
|
2303
|
-
# 'LarosateID': 29,
|
|
2304
|
-
# 'Takt': 6,
|
|
2305
|
-
# 'link': []},
|
|
2306
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2307
|
-
# 'sv': 'Halvtid'},
|
|
2308
|
-
# 'Beskrivning': {},
|
|
2309
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2310
|
-
# 'link': []},
|
|
2311
|
-
# 'ID': '133323',
|
|
2312
|
-
# 'Kod': '60',
|
|
2313
|
-
# 'LarosateID': 29,
|
|
2314
|
-
# 'Takt': 60,
|
|
2315
|
-
# 'link': []},
|
|
2316
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2317
|
-
# 'sv': 'Halvtid'},
|
|
2318
|
-
# 'Beskrivning': {},
|
|
2319
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2320
|
-
# 'link': []},
|
|
2321
|
-
# 'ID': '133321',
|
|
2322
|
-
# 'Kod': '61',
|
|
2323
|
-
# 'LarosateID': 29,
|
|
2324
|
-
# 'Takt': 61,
|
|
2325
|
-
# 'link': []},
|
|
2326
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2327
|
-
# 'sv': 'Halvtid'},
|
|
2328
|
-
# 'Beskrivning': {},
|
|
2329
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2330
|
-
# 'link': []},
|
|
2331
|
-
# 'ID': '133332',
|
|
2332
|
-
# 'Kod': '62',
|
|
2333
|
-
# 'LarosateID': 29,
|
|
2334
|
-
# 'Takt': 62,
|
|
2335
|
-
# 'link': []},
|
|
2336
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2337
|
-
# 'sv': 'Halvtid'},
|
|
2338
|
-
# 'Beskrivning': {},
|
|
2339
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2340
|
-
# 'link': []},
|
|
2341
|
-
# 'ID': '133331',
|
|
2342
|
-
# 'Kod': '63',
|
|
2343
|
-
# 'LarosateID': 29,
|
|
2344
|
-
# 'Takt': 63,
|
|
2345
|
-
# 'link': []},
|
|
2346
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2347
|
-
# 'sv': 'Halvtid'},
|
|
2348
|
-
# 'Beskrivning': {},
|
|
2349
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2350
|
-
# 'link': []},
|
|
2351
|
-
# 'ID': '133325',
|
|
2352
|
-
# 'Kod': '64',
|
|
2353
|
-
# 'LarosateID': 29,
|
|
2354
|
-
# 'Takt': 64,
|
|
2355
|
-
# 'link': []},
|
|
2356
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2357
|
-
# 'sv': 'Halvtid'},
|
|
2358
|
-
# 'Beskrivning': {},
|
|
2359
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2360
|
-
# 'link': []},
|
|
2361
|
-
# 'ID': '133324',
|
|
2362
|
-
# 'Kod': '65',
|
|
2363
|
-
# 'LarosateID': 29,
|
|
2364
|
-
# 'Takt': 65,
|
|
2365
|
-
# 'link': []},
|
|
2366
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2367
|
-
# 'sv': 'Halvtid'},
|
|
2368
|
-
# 'Beskrivning': {},
|
|
2369
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2370
|
-
# 'link': []},
|
|
2371
|
-
# 'ID': '133327',
|
|
2372
|
-
# 'Kod': '66',
|
|
2373
|
-
# 'LarosateID': 29,
|
|
2374
|
-
# 'Takt': 66,
|
|
2375
|
-
# 'link': []},
|
|
2376
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2377
|
-
# 'sv': 'Halvtid'},
|
|
2378
|
-
# 'Beskrivning': {},
|
|
2379
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2380
|
-
# 'link': []},
|
|
2381
|
-
# 'ID': '133328',
|
|
2382
|
-
# 'Kod': '68',
|
|
2383
|
-
# 'LarosateID': 29,
|
|
2384
|
-
# 'Takt': 68,
|
|
2385
|
-
# 'link': []},
|
|
2386
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2387
|
-
# 'sv': 'Halvtid'},
|
|
2388
|
-
# 'Beskrivning': {},
|
|
2389
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2390
|
-
# 'link': []},
|
|
2391
|
-
# 'ID': '133329',
|
|
2392
|
-
# 'Kod': '69',
|
|
2393
|
-
# 'LarosateID': 29,
|
|
2394
|
-
# 'Takt': 69,
|
|
2395
|
-
# 'link': []},
|
|
2396
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2397
|
-
# 'sv': 'Kvartstid'},
|
|
2398
|
-
# 'Beskrivning': {},
|
|
2399
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2400
|
-
# 'link': []},
|
|
2401
|
-
# 'ID': '133277',
|
|
2402
|
-
# 'Kod': '7',
|
|
2403
|
-
# 'LarosateID': 29,
|
|
2404
|
-
# 'Takt': 7,
|
|
2405
|
-
# 'link': []},
|
|
2406
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2407
|
-
# 'sv': 'Halvtid'},
|
|
2408
|
-
# 'Beskrivning': {},
|
|
2409
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2410
|
-
# 'link': []},
|
|
2411
|
-
# 'ID': '133330',
|
|
2412
|
-
# 'Kod': '70',
|
|
2413
|
-
# 'LarosateID': 29,
|
|
2414
|
-
# 'Takt': 70,
|
|
2415
|
-
# 'link': []},
|
|
2416
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2417
|
-
# 'sv': 'Halvtid'},
|
|
2418
|
-
# 'Beskrivning': {},
|
|
2419
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2420
|
-
# 'link': []},
|
|
2421
|
-
# 'ID': '133326',
|
|
2422
|
-
# 'Kod': '71',
|
|
2423
|
-
# 'LarosateID': 29,
|
|
2424
|
-
# 'Takt': 71,
|
|
2425
|
-
# 'link': []},
|
|
2426
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2427
|
-
# 'sv': 'Halvtid'},
|
|
2428
|
-
# 'Beskrivning': {},
|
|
2429
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2430
|
-
# 'link': []},
|
|
2431
|
-
# 'ID': '133333',
|
|
2432
|
-
# 'Kod': '72',
|
|
2433
|
-
# 'LarosateID': 29,
|
|
2434
|
-
# 'Takt': 72,
|
|
2435
|
-
# 'link': []},
|
|
2436
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2437
|
-
# 'sv': 'Nästan heltid'},
|
|
2438
|
-
# 'Beskrivning': {},
|
|
2439
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2440
|
-
# 'link': []},
|
|
2441
|
-
# 'ID': '133334',
|
|
2442
|
-
# 'Kod': '73',
|
|
2443
|
-
# 'LarosateID': 29,
|
|
2444
|
-
# 'Takt': 73,
|
|
2445
|
-
# 'link': []},
|
|
2446
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2447
|
-
# 'sv': 'Nästan heltid'},
|
|
2448
|
-
# 'Beskrivning': {},
|
|
2449
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2450
|
-
# 'link': []},
|
|
2451
|
-
# 'ID': '133342',
|
|
2452
|
-
# 'Kod': '74',
|
|
2453
|
-
# 'LarosateID': 29,
|
|
2454
|
-
# 'Takt': 74,
|
|
2455
|
-
# 'link': []},
|
|
2456
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2457
|
-
# 'sv': 'Nästan heltid'},
|
|
2458
|
-
# 'Beskrivning': {},
|
|
2459
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2460
|
-
# 'link': []},
|
|
2461
|
-
# 'ID': '133335',
|
|
2462
|
-
# 'Kod': '76',
|
|
2463
|
-
# 'LarosateID': 29,
|
|
2464
|
-
# 'Takt': 76,
|
|
2465
|
-
# 'link': []},
|
|
2466
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2467
|
-
# 'sv': 'Nästan heltid'},
|
|
2468
|
-
# 'Beskrivning': {},
|
|
2469
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2470
|
-
# 'link': []},
|
|
2471
|
-
# 'ID': '133347',
|
|
2472
|
-
# 'Kod': '77',
|
|
2473
|
-
# 'LarosateID': 29,
|
|
2474
|
-
# 'Takt': 77,
|
|
2475
|
-
# 'link': []},
|
|
2476
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2477
|
-
# 'sv': 'Nästan heltid'},
|
|
2478
|
-
# 'Beskrivning': {},
|
|
2479
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2480
|
-
# 'link': []},
|
|
2481
|
-
# 'ID': '133339',
|
|
2482
|
-
# 'Kod': '78',
|
|
2483
|
-
# 'LarosateID': 29,
|
|
2484
|
-
# 'Takt': 78,
|
|
2485
|
-
# 'link': []},
|
|
2486
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2487
|
-
# 'sv': 'Nästan heltid'},
|
|
2488
|
-
# 'Beskrivning': {},
|
|
2489
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2490
|
-
# 'link': []},
|
|
2491
|
-
# 'ID': '133338',
|
|
2492
|
-
# 'Kod': '79',
|
|
2493
|
-
# 'LarosateID': 29,
|
|
2494
|
-
# 'Takt': 79,
|
|
2495
|
-
# 'link': []},
|
|
2496
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2497
|
-
# 'sv': 'Kvartstid'},
|
|
2498
|
-
# 'Beskrivning': {},
|
|
2499
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2500
|
-
# 'link': []},
|
|
2501
|
-
# 'ID': '133275',
|
|
2502
|
-
# 'Kod': '8',
|
|
2503
|
-
# 'LarosateID': 29,
|
|
2504
|
-
# 'Takt': 8,
|
|
2505
|
-
# 'link': []},
|
|
2506
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2507
|
-
# 'sv': 'Nästan heltid'},
|
|
2508
|
-
# 'Beskrivning': {},
|
|
2509
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2510
|
-
# 'link': []},
|
|
2511
|
-
# 'ID': '133337',
|
|
2512
|
-
# 'Kod': '80',
|
|
2513
|
-
# 'LarosateID': 29,
|
|
2514
|
-
# 'Takt': 80,
|
|
2515
|
-
# 'link': []},
|
|
2516
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2517
|
-
# 'sv': 'Nästan heltid'},
|
|
2518
|
-
# 'Beskrivning': {},
|
|
2519
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2520
|
-
# 'link': []},
|
|
2521
|
-
# 'ID': '133336',
|
|
2522
|
-
# 'Kod': '81',
|
|
2523
|
-
# 'LarosateID': 29,
|
|
2524
|
-
# 'Takt': 81,
|
|
2525
|
-
# 'link': []},
|
|
2526
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2527
|
-
# 'sv': 'Nästan heltid'},
|
|
2528
|
-
# 'Beskrivning': {},
|
|
2529
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2530
|
-
# 'link': []},
|
|
2531
|
-
# 'ID': '133340',
|
|
2532
|
-
# 'Kod': '82',
|
|
2533
|
-
# 'LarosateID': 29,
|
|
2534
|
-
# 'Takt': 82,
|
|
2535
|
-
# 'link': []},
|
|
2536
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2537
|
-
# 'sv': 'Nästan heltid'},
|
|
2538
|
-
# 'Beskrivning': {},
|
|
2539
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2540
|
-
# 'link': []},
|
|
2541
|
-
# 'ID': '133345',
|
|
2542
|
-
# 'Kod': '83',
|
|
2543
|
-
# 'LarosateID': 29,
|
|
2544
|
-
# 'Takt': 83,
|
|
2545
|
-
# 'link': []},
|
|
2546
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2547
|
-
# 'sv': 'Nästan heltid'},
|
|
2548
|
-
# 'Beskrivning': {},
|
|
2549
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2550
|
-
# 'link': []},
|
|
2551
|
-
# 'ID': '133341',
|
|
2552
|
-
# 'Kod': '84',
|
|
2553
|
-
# 'LarosateID': 29,
|
|
2554
|
-
# 'Takt': 84,
|
|
2555
|
-
# 'link': []},
|
|
2556
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2557
|
-
# 'sv': 'Nästan heltid'},
|
|
2558
|
-
# 'Beskrivning': {},
|
|
2559
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2560
|
-
# 'link': []},
|
|
2561
|
-
# 'ID': '133343',
|
|
2562
|
-
# 'Kod': '85',
|
|
2563
|
-
# 'LarosateID': 29,
|
|
2564
|
-
# 'Takt': 85,
|
|
2565
|
-
# 'link': []},
|
|
2566
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2567
|
-
# 'sv': 'Nästan heltid'},
|
|
2568
|
-
# 'Beskrivning': {},
|
|
2569
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2570
|
-
# 'link': []},
|
|
2571
|
-
# 'ID': '133344',
|
|
2572
|
-
# 'Kod': '86',
|
|
2573
|
-
# 'LarosateID': 29,
|
|
2574
|
-
# 'Takt': 86,
|
|
2575
|
-
# 'link': []},
|
|
2576
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2577
|
-
# 'sv': 'Nästan heltid'},
|
|
2578
|
-
# 'Beskrivning': {},
|
|
2579
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2580
|
-
# 'link': []},
|
|
2581
|
-
# 'ID': '133346',
|
|
2582
|
-
# 'Kod': '87',
|
|
2583
|
-
# 'LarosateID': 29,
|
|
2584
|
-
# 'Takt': 87,
|
|
2585
|
-
# 'link': []},
|
|
2586
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2587
|
-
# 'sv': 'Nästan heltid'},
|
|
2588
|
-
# 'Beskrivning': {},
|
|
2589
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2590
|
-
# 'link': []},
|
|
2591
|
-
# 'ID': '133348',
|
|
2592
|
-
# 'Kod': '88',
|
|
2593
|
-
# 'LarosateID': 29,
|
|
2594
|
-
# 'Takt': 88,
|
|
2595
|
-
# 'link': []},
|
|
2596
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2597
|
-
# 'sv': 'Nästan heltid'},
|
|
2598
|
-
# 'Beskrivning': {},
|
|
2599
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2600
|
-
# 'link': []},
|
|
2601
|
-
# 'ID': '133349',
|
|
2602
|
-
# 'Kod': '89',
|
|
2603
|
-
# 'LarosateID': 29,
|
|
2604
|
-
# 'Takt': 89,
|
|
2605
|
-
# 'link': []},
|
|
2606
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2607
|
-
# 'sv': 'Kvartstid'},
|
|
2608
|
-
# 'Beskrivning': {},
|
|
2609
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2610
|
-
# 'link': []},
|
|
2611
|
-
# 'ID': '133273',
|
|
2612
|
-
# 'Kod': '9',
|
|
2613
|
-
# 'LarosateID': 29,
|
|
2614
|
-
# 'Takt': 9,
|
|
2615
|
-
# 'link': []},
|
|
2616
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2617
|
-
# 'sv': 'Nästan heltid'},
|
|
2618
|
-
# 'Beskrivning': {},
|
|
2619
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2620
|
-
# 'link': []},
|
|
2621
|
-
# 'ID': '133350',
|
|
2622
|
-
# 'Kod': '90',
|
|
2623
|
-
# 'LarosateID': 29,
|
|
2624
|
-
# 'Takt': 90,
|
|
2625
|
-
# 'link': []},
|
|
2626
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2627
|
-
# 'sv': 'Nästan heltid'},
|
|
2628
|
-
# 'Beskrivning': {},
|
|
2629
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2630
|
-
# 'link': []},
|
|
2631
|
-
# 'ID': '133352',
|
|
2632
|
-
# 'Kod': '91',
|
|
2633
|
-
# 'LarosateID': 29,
|
|
2634
|
-
# 'Takt': 91,
|
|
2635
|
-
# 'link': []},
|
|
2636
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2637
|
-
# 'sv': 'Nästan heltid'},
|
|
2638
|
-
# 'Beskrivning': {},
|
|
2639
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2640
|
-
# 'link': []},
|
|
2641
|
-
# 'ID': '133358',
|
|
2642
|
-
# 'Kod': '92',
|
|
2643
|
-
# 'LarosateID': 29,
|
|
2644
|
-
# 'Takt': 92,
|
|
2645
|
-
# 'link': []},
|
|
2646
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2647
|
-
# 'sv': 'Nästan heltid'},
|
|
2648
|
-
# 'Beskrivning': {},
|
|
2649
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2650
|
-
# 'link': []},
|
|
2651
|
-
# 'ID': '133353',
|
|
2652
|
-
# 'Kod': '93',
|
|
2653
|
-
# 'LarosateID': 29,
|
|
2654
|
-
# 'Takt': 93,
|
|
2655
|
-
# 'link': []},
|
|
2656
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2657
|
-
# 'sv': 'Nästan heltid'},
|
|
2658
|
-
# 'Beskrivning': {},
|
|
2659
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2660
|
-
# 'link': []},
|
|
2661
|
-
# 'ID': '133354',
|
|
2662
|
-
# 'Kod': '94',
|
|
2663
|
-
# 'LarosateID': 29,
|
|
2664
|
-
# 'Takt': 94,
|
|
2665
|
-
# 'link': []},
|
|
2666
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2667
|
-
# 'sv': 'Nästan heltid'},
|
|
2668
|
-
# 'Beskrivning': {},
|
|
2669
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2670
|
-
# 'link': []},
|
|
2671
|
-
# 'ID': '133351',
|
|
2672
|
-
# 'Kod': '95',
|
|
2673
|
-
# 'LarosateID': 29,
|
|
2674
|
-
# 'Takt': 95,
|
|
2675
|
-
# 'link': []},
|
|
2676
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2677
|
-
# 'sv': 'Nästan heltid'},
|
|
2678
|
-
# 'Beskrivning': {},
|
|
2679
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2680
|
-
# 'link': []},
|
|
2681
|
-
# 'ID': '133355',
|
|
2682
|
-
# 'Kod': '96',
|
|
2683
|
-
# 'LarosateID': 29,
|
|
2684
|
-
# 'Takt': 96,
|
|
2685
|
-
# 'link': []},
|
|
2686
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2687
|
-
# 'sv': 'Nästan heltid'},
|
|
2688
|
-
# 'Beskrivning': {},
|
|
2689
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2690
|
-
# 'link': []},
|
|
2691
|
-
# 'ID': '133357',
|
|
2692
|
-
# 'Kod': '97',
|
|
2693
|
-
# 'LarosateID': 29,
|
|
2694
|
-
# 'Takt': 97,
|
|
2695
|
-
# 'link': []},
|
|
2696
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2697
|
-
# 'sv': 'Nästan heltid'},
|
|
2698
|
-
# 'Beskrivning': {},
|
|
2699
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2700
|
-
# 'link': []},
|
|
2701
|
-
# 'ID': '133356',
|
|
2702
|
-
# 'Kod': '98',
|
|
2703
|
-
# 'LarosateID': 29,
|
|
2704
|
-
# 'Takt': 98,
|
|
2705
|
-
# 'link': []},
|
|
2706
|
-
# { 'Benamning': { 'en': '- No translation available -',
|
|
2707
|
-
# 'sv': 'Nästan heltid'},
|
|
2708
|
-
# 'Beskrivning': {},
|
|
2709
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-06-19',
|
|
2710
|
-
# 'link': []},
|
|
2711
|
-
# 'ID': '133359',
|
|
2712
|
-
# 'Kod': '99',
|
|
2713
|
-
# 'LarosateID': 29,
|
|
2714
|
-
# 'Takt': 99,
|
|
2715
|
-
# 'link': []}],
|
|
2716
|
-
# 'link': []}
|
|
2717
|
-
# added by GQMJr
|
|
2718
|
-
#####################################################################
|
|
2719
|
-
#
|
|
2720
|
-
# finansieringsform_JSON
|
|
2721
|
-
#
|
|
2722
|
-
# RETURNERAR JSON forms of financing
|
|
2723
|
-
def finansieringsform_JSON(self):
|
|
2724
|
-
r = self.session.get(
|
|
2725
|
-
url=self.base_gui_proxy_url
|
|
2726
|
-
+ "/kataloginformation/grunddata/finansieringsform",
|
|
2727
|
-
headers=self.headers,
|
|
2728
|
-
).json()
|
|
2729
|
-
return r
|
|
1292
|
+
if not person_nr:
|
|
1293
|
+
raise Exception("Invalid person nr " + person_nr_raw)
|
|
2730
1294
|
|
|
2731
|
-
|
|
2732
|
-
|
|
2733
|
-
|
|
2734
|
-
|
|
2735
|
-
|
|
2736
|
-
# 'Beskrivning': {},
|
|
2737
|
-
# 'Giltighetsperiod': {'link': []},
|
|
2738
|
-
# 'ID': '131704',
|
|
2739
|
-
# 'Kod': 'ALU',
|
|
2740
|
-
# 'LarosateID': 29,
|
|
2741
|
-
# 'link': []},
|
|
2742
|
-
# { 'Benamning': { 'en': '- No translation '
|
|
2743
|
-
# ...
|
|
2744
|
-
# added by GQMJr
|
|
2745
|
-
#####################################################################
|
|
2746
|
-
#
|
|
2747
|
-
# utbildningsomrade_JSON
|
|
2748
|
-
#
|
|
2749
|
-
# RETURNERAR JSON of subjects
|
|
2750
|
-
def utbildningsomrade_JSON(self):
|
|
2751
|
-
r = self.session.get(
|
|
2752
|
-
url=self.base_gui_proxy_url
|
|
2753
|
-
+ "/kataloginformation/grunddata/utbildningsomrade",
|
|
2754
|
-
headers=self.headers,
|
|
2755
|
-
).json()
|
|
2756
|
-
return r
|
|
1295
|
+
student_data = self.__get_student_data(person_nr)
|
|
1296
|
+
return {
|
|
1297
|
+
"first_name": student_data["first_name"],
|
|
1298
|
+
"last_name": student_data["last_name"],
|
|
1299
|
+
}
|
|
2757
1300
|
|
|
2758
|
-
# returns:
|
|
2759
|
-
# { 'Utbildningsomrade': [ { 'Benamning': { 'en': 'Dance',
|
|
2760
|
-
# 'sv': 'Dansområdet'},
|
|
2761
|
-
# 'Beskrivning': { 'sv': 'Infördes från '
|
|
2762
|
-
# 'budgetåret 1994/95. '
|
|
2763
|
-
# 'Tidigare fanns bara '
|
|
2764
|
-
# 'ett konstnärligt '
|
|
2765
|
-
# 'utbildningsområde '
|
|
2766
|
-
# '(vars '
|
|
2767
|
-
# 'ersättningsbelopp '
|
|
2768
|
-
# 'varierade mellan '
|
|
2769
|
-
# 'lärosätena).'},
|
|
2770
|
-
# 'Giltighetsperiod': { 'Startdatum': '1994-07-01',
|
|
2771
|
-
# 'link': []},
|
|
2772
|
-
# 'ID': '1',
|
|
2773
|
-
# 'Kod': 'DA',
|
|
2774
|
-
# 'LarosateID': -1,
|
|
2775
|
-
# 'link': []},
|
|
2776
|
-
# ...
|
|
2777
|
-
# { 'Benamning': { 'en': 'Education',
|
|
2778
|
-
# 'sv': 'Undervisningsområdet'},
|
|
2779
|
-
# 'Beskrivning': { 'sv': 'Avser utbildning '
|
|
2780
|
-
# 'inom det allmänna '
|
|
2781
|
-
# 'utbildningsområdet '
|
|
2782
|
-
# 'och den '
|
|
2783
|
-
# 'utbildningsvetenskapliga '
|
|
2784
|
-
# 'kärnan. T.o.m. '
|
|
2785
|
-
# '2012-12-31 avsågs '
|
|
2786
|
-
# 'även övrig '
|
|
2787
|
-
# 'verksamhetsförlagd '
|
|
2788
|
-
# 'utbildning (se '
|
|
2789
|
-
# 'VU).'},
|
|
2790
|
-
# 'Giltighetsperiod': { 'Startdatum': '1993-07-01',
|
|
2791
|
-
# 'link': []},
|
|
2792
|
-
# 'ID': '9',
|
|
2793
|
-
# 'Kod': 'LU',
|
|
2794
|
-
# 'LarosateID': -1,
|
|
2795
|
-
# 'link': []},
|
|
2796
|
-
# ...
|
|
2797
|
-
# { 'Benamning': { 'en': 'Natural sciences',
|
|
2798
|
-
# 'sv': 'Naturvetenskapliga '
|
|
2799
|
-
# 'området'},
|
|
2800
|
-
# 'Beskrivning': {},
|
|
2801
|
-
# 'Giltighetsperiod': { 'Startdatum': '1993-07-01',
|
|
2802
|
-
# 'link': []},
|
|
2803
|
-
# 'ID': '13',
|
|
2804
|
-
# 'Kod': 'NA',
|
|
2805
|
-
# 'LarosateID': -1,
|
|
2806
|
-
# 'link': []},
|
|
2807
|
-
# ...
|
|
2808
|
-
# { 'Benamning': { 'en': 'Technology',
|
|
2809
|
-
# 'sv': 'Tekniska området'},
|
|
2810
|
-
# 'Beskrivning': {},
|
|
2811
|
-
# 'Giltighetsperiod': { 'Startdatum': '1993-07-01',
|
|
2812
|
-
# 'link': []},
|
|
2813
|
-
# 'ID': '19',
|
|
2814
|
-
# 'Kod': 'TE',
|
|
2815
|
-
# 'LarosateID': -1,
|
|
2816
|
-
# 'link': []},
|
|
2817
|
-
# ... ],
|
|
2818
|
-
# 'link': []}
|
|
2819
1301
|
# added by GQMJr
|
|
2820
1302
|
#####################################################################
|
|
2821
1303
|
#
|
|
2822
|
-
#
|
|
2823
|
-
#
|
|
2824
|
-
# RETURNERAR JSON of krequirements for earlier studies
|
|
2825
|
-
def kravpatidigarestudier_JSON(self):
|
|
2826
|
-
r = self.session.get(
|
|
2827
|
-
url=self.base_gui_proxy_url
|
|
2828
|
-
+ "/kataloginformation/grunddata/kravpatidigarestudier",
|
|
2829
|
-
headers=self.headers,
|
|
2830
|
-
).json()
|
|
2831
|
-
return r
|
|
2832
|
-
|
|
2833
|
-
# returns
|
|
2834
|
-
# { 'KravPaTidigareStudier': [ { 'Benamning': { 'en': 'University '
|
|
2835
|
-
# 'studies required',
|
|
2836
|
-
# 'sv': 'Tidigare '
|
|
2837
|
-
# 'högskolestudier '
|
|
2838
|
-
# 'krävs'},
|
|
2839
|
-
# 'Beskrivning': {},
|
|
2840
|
-
# 'Emilvarde': 'uh',
|
|
2841
|
-
# 'Giltighetsperiod': {'link': []},
|
|
2842
|
-
# 'ID': '1',
|
|
2843
|
-
# 'Kod': 'UH',
|
|
2844
|
-
# 'LarosateID': -1,
|
|
2845
|
-
# 'link': []},
|
|
2846
|
-
# { 'Benamning': { 'en': 'Upper secondary '
|
|
2847
|
-
# 'or equivalent',
|
|
2848
|
-
# 'sv': 'Inga tidigare '
|
|
2849
|
-
# 'högskolestudier '
|
|
2850
|
-
# 'krävs'},
|
|
2851
|
-
# 'Beskrivning': {},
|
|
2852
|
-
# 'Emilvarde': 'grundlaggande',
|
|
2853
|
-
# 'Giltighetsperiod': {'link': []},
|
|
2854
|
-
# 'ID': '2',
|
|
2855
|
-
# 'Kod': 'GR',
|
|
2856
|
-
# 'LarosateID': -1,
|
|
2857
|
-
# 'link': []},
|
|
2858
|
-
# { 'Benamning': { 'en': 'No general entry '
|
|
2859
|
-
# 'requirements '
|
|
2860
|
-
# 'needed',
|
|
2861
|
-
# 'sv': 'Ingen '
|
|
2862
|
-
# 'grundläggande '
|
|
2863
|
-
# 'behörighet krävs'},
|
|
2864
|
-
# 'Beskrivning': {},
|
|
2865
|
-
# 'Emilvarde': 'inga',
|
|
2866
|
-
# 'Giltighetsperiod': {'link': []},
|
|
2867
|
-
# 'ID': '3',
|
|
2868
|
-
# 'Kod': 'IN',
|
|
2869
|
-
# 'LarosateID': -1,
|
|
2870
|
-
# 'link': []}],
|
|
2871
|
-
# 'link': []}
|
|
2872
|
-
# added by GQMJr
|
|
2873
|
-
#####################################################################
|
|
1304
|
+
# all_grading_scale
|
|
2874
1305
|
#
|
|
2875
|
-
# studieordning_JSON
|
|
2876
1306
|
#
|
|
2877
|
-
# RETURNERAR
|
|
2878
|
-
def
|
|
2879
|
-
|
|
2880
|
-
url=self.base_gui_proxy_url + "/kataloginformation/grunddata/studieordning",
|
|
2881
|
-
headers=self.headers,
|
|
2882
|
-
).json()
|
|
2883
|
-
return r
|
|
1307
|
+
# RETURNERAR en dictionary of the grading scales
|
|
1308
|
+
def all_grading_scale(self):
|
|
1309
|
+
return self.get_grade_scales()
|
|
2884
1310
|
|
|
2885
|
-
# returns:
|
|
2886
|
-
# { 'Studieordning': [ { 'Benamning': { 'en': 'Higher education, study '
|
|
2887
|
-
# 'regulation of 1993',
|
|
2888
|
-
# 'sv': 'Högskoleutbildning, 1993 '
|
|
2889
|
-
# 'års studieordning'},
|
|
2890
|
-
# 'Beskrivning': { 'sv': 'Avser i Ladok 1993 års '
|
|
2891
|
-
# 'studieordning inklusive '
|
|
2892
|
-
# 'dess föregångare'},
|
|
2893
|
-
# 'EnhetID': 9,
|
|
2894
|
-
# 'Giltighetsperiod': {'link': []},
|
|
2895
|
-
# 'ID': '2',
|
|
2896
|
-
# 'Kod': 'HÖ93',
|
|
2897
|
-
# 'LarosateID': -1,
|
|
2898
|
-
# 'UtbildningsformID': 1,
|
|
2899
|
-
# 'link': []},
|
|
2900
|
-
# { 'Benamning': { 'en': 'Higher education, study '
|
|
2901
|
-
# 'regulation of 2007',
|
|
2902
|
-
# 'sv': 'Högskoleutbildning, 2007 '
|
|
2903
|
-
# 'års studieordning'},
|
|
2904
|
-
# 'Beskrivning': {},
|
|
2905
|
-
# 'EnhetID': 2,
|
|
2906
|
-
# 'Giltighetsperiod': { 'Startdatum': '2007-07-01',
|
|
2907
|
-
# 'link': []},
|
|
2908
|
-
# 'ID': '1',
|
|
2909
|
-
# 'Kod': 'HÖ07',
|
|
2910
|
-
# 'LarosateID': -1,
|
|
2911
|
-
# 'UtbildningsformID': 1,
|
|
2912
|
-
# 'link': []},
|
|
2913
|
-
# { 'Benamning': { 'en': 'Access education (hours)',
|
|
2914
|
-
# 'sv': 'Behörighetsgivande '
|
|
2915
|
-
# 'förutbildning (timmar)'},
|
|
2916
|
-
# 'Beskrivning': {},
|
|
2917
|
-
# 'EnhetID': 5,
|
|
2918
|
-
# 'Giltighetsperiod': {'link': []},
|
|
2919
|
-
# 'ID': '12',
|
|
2920
|
-
# 'Kod': 'ÖVBT',
|
|
2921
|
-
# 'LarosateID': -1,
|
|
2922
|
-
# 'UtbildningsformID': 100970,
|
|
2923
|
-
# 'link': []},
|
|
2924
|
-
# { 'Benamning': { 'en': 'Access education (fup)',
|
|
2925
|
-
# 'sv': 'Behörighetsgivande '
|
|
2926
|
-
# 'förutbildning (poäng)'},
|
|
2927
|
-
# 'Beskrivning': { 'sv': 'Utbildning enligt '
|
|
2928
|
-
# 'förordning (2018:1519) '
|
|
2929
|
-
# 'om behörighetsgivande '
|
|
2930
|
-
# 'och '
|
|
2931
|
-
# 'högskoleintroducerande '
|
|
2932
|
-
# 'utbildning resp. '
|
|
2933
|
-
# 'tidigare gällande '
|
|
2934
|
-
# 'förordning (2007:432) '
|
|
2935
|
-
# 'om behörighetsgivande '
|
|
2936
|
-
# 'förutbildning vid '
|
|
2937
|
-
# 'universitet och '
|
|
2938
|
-
# 'högskolor'},
|
|
2939
|
-
# 'EnhetID': 4,
|
|
2940
|
-
# 'Giltighetsperiod': {'link': []},
|
|
2941
|
-
# 'ID': '3',
|
|
2942
|
-
# 'Kod': 'FÖPO',
|
|
2943
|
-
# 'LarosateID': -1,
|
|
2944
|
-
# 'UtbildningsformID': 2,
|
|
2945
|
-
# 'link': []},
|
|
2946
|
-
# { 'Benamning': { 'en': 'Access education (weeks)',
|
|
2947
|
-
# 'sv': 'Behörighetsgivande '
|
|
2948
|
-
# 'förutbildning (veckor)'},
|
|
2949
|
-
# 'Beskrivning': { 'sv': 'Utbildning enligt '
|
|
2950
|
-
# 'förordning (2018:1519) '
|
|
2951
|
-
# 'om behörighetsgivande '
|
|
2952
|
-
# 'och '
|
|
2953
|
-
# 'högskoleintroducerande '
|
|
2954
|
-
# 'utbildning resp. '
|
|
2955
|
-
# 'tidigare gällande '
|
|
2956
|
-
# 'förordning (2007:432) '
|
|
2957
|
-
# 'om behörighetsgivande '
|
|
2958
|
-
# 'förutbildning vid '
|
|
2959
|
-
# 'universitet och '
|
|
2960
|
-
# 'högskolor'},
|
|
2961
|
-
# 'EnhetID': 1,
|
|
2962
|
-
# 'Giltighetsperiod': {'link': []},
|
|
2963
|
-
# 'ID': '4',
|
|
2964
|
-
# 'Kod': 'FÖVE',
|
|
2965
|
-
# 'LarosateID': -1,
|
|
2966
|
-
# 'UtbildningsformID': 2,
|
|
2967
|
-
# 'link': []},
|
|
2968
|
-
# { 'Benamning': { 'en': 'Internal education (ORU)',
|
|
2969
|
-
# 'sv': 'Högskoleintern utbildning '
|
|
2970
|
-
# '(ORU)'},
|
|
2971
|
-
# 'Beskrivning': { 'sv': 'Intern utbildning vid '
|
|
2972
|
-
# 'Örebro universitet'},
|
|
2973
|
-
# 'EnhetID': 6,
|
|
2974
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2007-06-30',
|
|
2975
|
-
# 'Startdatum': '2004-01-01',
|
|
2976
|
-
# 'link': []},
|
|
2977
|
-
# 'ID': '15',
|
|
2978
|
-
# 'Kod': 'ÖVHI',
|
|
2979
|
-
# 'LarosateID': -1,
|
|
2980
|
-
# 'UtbildningsformID': 100970,
|
|
2981
|
-
# 'link': []},
|
|
2982
|
-
# { 'Benamning': { 'en': 'Older defence education',
|
|
2983
|
-
# 'sv': 'Äldre utbildning vid '
|
|
2984
|
-
# 'Försvarshögskolan'},
|
|
2985
|
-
# 'Beskrivning': { 'sv': 'Utbildning enligt '
|
|
2986
|
-
# 'förordningen '
|
|
2987
|
-
# '(1996:1476) med '
|
|
2988
|
-
# 'instruktion för '
|
|
2989
|
-
# 'Försvarshögskolan'},
|
|
2990
|
-
# 'EnhetID': 10,
|
|
2991
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2007-12-31',
|
|
2992
|
-
# 'link': []},
|
|
2993
|
-
# 'ID': '16',
|
|
2994
|
-
# 'Kod': 'ÖVFU',
|
|
2995
|
-
# 'LarosateID': -1,
|
|
2996
|
-
# 'UtbildningsformID': 100970,
|
|
2997
|
-
# 'link': []},
|
|
2998
|
-
# { 'Benamning': { 'en': 'Post-secondary vocational '
|
|
2999
|
-
# 'education and training',
|
|
3000
|
-
# 'sv': 'Kvalificerad '
|
|
3001
|
-
# 'yrkesutbildning'},
|
|
3002
|
-
# 'Beskrivning': { 'sv': 'Utbildning enligt '
|
|
3003
|
-
# 'förordningen '
|
|
3004
|
-
# '(2001:1131) om '
|
|
3005
|
-
# 'kvalificerad '
|
|
3006
|
-
# 'yrkesutbildning '
|
|
3007
|
-
# '(upphävd 2009-04-15)'},
|
|
3008
|
-
# 'EnhetID': 7,
|
|
3009
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2013-12-31',
|
|
3010
|
-
# 'link': []},
|
|
3011
|
-
# 'ID': '13',
|
|
3012
|
-
# 'Kod': 'KY02',
|
|
3013
|
-
# 'LarosateID': -1,
|
|
3014
|
-
# 'UtbildningsformID': 100968,
|
|
3015
|
-
# 'link': []},
|
|
3016
|
-
# { 'Benamning': { 'en': 'Preparatory education',
|
|
3017
|
-
# 'sv': 'Preparandutbildning'},
|
|
3018
|
-
# 'Beskrivning': { 'sv': 'Utbildning enligt '
|
|
3019
|
-
# 'förordningen (1985:681) '
|
|
3020
|
-
# 'om preparandutbildning '
|
|
3021
|
-
# 'i svenska (upphävd '
|
|
3022
|
-
# '1993-07-01)'},
|
|
3023
|
-
# 'EnhetID': 6,
|
|
3024
|
-
# 'Giltighetsperiod': { 'Slutdatum': '1993-06-30',
|
|
3025
|
-
# 'link': []},
|
|
3026
|
-
# 'ID': '14',
|
|
3027
|
-
# 'Kod': 'ÖVPR',
|
|
3028
|
-
# 'LarosateID': -1,
|
|
3029
|
-
# 'UtbildningsformID': 100970,
|
|
3030
|
-
# 'link': []},
|
|
3031
|
-
# { 'Benamning': { 'en': 'Contract education '
|
|
3032
|
-
# '(hours)',
|
|
3033
|
-
# 'sv': 'Uppdragsutbildning, Övrig '
|
|
3034
|
-
# 'utbildning (timmar)'},
|
|
3035
|
-
# 'Beskrivning': {},
|
|
3036
|
-
# 'EnhetID': 5,
|
|
3037
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-12-31',
|
|
3038
|
-
# 'link': []},
|
|
3039
|
-
# 'ID': '9',
|
|
3040
|
-
# 'Kod': 'ÖVUT',
|
|
3041
|
-
# 'LarosateID': -1,
|
|
3042
|
-
# 'UtbildningsformID': 100970,
|
|
3043
|
-
# 'link': []},
|
|
3044
|
-
# { 'Benamning': { 'en': 'Higher vocational '
|
|
3045
|
-
# 'education',
|
|
3046
|
-
# 'sv': 'Yrkeshögskoleutbildning'},
|
|
3047
|
-
# 'Beskrivning': { 'sv': 'Utbildning enligt '
|
|
3048
|
-
# 'förordning (2009:130) '
|
|
3049
|
-
# 'om yrkeshögskolan'},
|
|
3050
|
-
# 'EnhetID': 8,
|
|
3051
|
-
# 'Giltighetsperiod': { 'Startdatum': '2009-07-01',
|
|
3052
|
-
# 'link': []},
|
|
3053
|
-
# 'ID': '5',
|
|
3054
|
-
# 'Kod': 'YH09',
|
|
3055
|
-
# 'LarosateID': -1,
|
|
3056
|
-
# 'UtbildningsformID': 4,
|
|
3057
|
-
# 'link': []},
|
|
3058
|
-
# { 'Benamning': { 'en': 'Contract education '
|
|
3059
|
-
# '(credits)',
|
|
3060
|
-
# 'sv': 'Uppdragsutbildning '
|
|
3061
|
-
# '(högskolepoäng)'},
|
|
3062
|
-
# 'Beskrivning': {},
|
|
3063
|
-
# 'EnhetID': 2,
|
|
3064
|
-
# 'Giltighetsperiod': { 'Startdatum': '2007-07-01',
|
|
3065
|
-
# 'link': []},
|
|
3066
|
-
# 'ID': '17',
|
|
3067
|
-
# 'Kod': 'UPHP',
|
|
3068
|
-
# 'LarosateID': -1,
|
|
3069
|
-
# 'UtbildningsformID': 100928,
|
|
3070
|
-
# 'link': []},
|
|
3071
|
-
# { 'Benamning': { 'en': 'Contract education '
|
|
3072
|
-
# '(weeks)',
|
|
3073
|
-
# 'sv': 'Uppdragsutbildning '
|
|
3074
|
-
# '(veckor)'},
|
|
3075
|
-
# 'Beskrivning': {},
|
|
3076
|
-
# 'EnhetID': 1,
|
|
3077
|
-
# 'Giltighetsperiod': {'link': []},
|
|
3078
|
-
# 'ID': '18',
|
|
3079
|
-
# 'Kod': 'UPVE',
|
|
3080
|
-
# 'LarosateID': -1,
|
|
3081
|
-
# 'UtbildningsformID': 100928,
|
|
3082
|
-
# 'link': []},
|
|
3083
|
-
# { 'Benamning': { 'en': 'Police education',
|
|
3084
|
-
# 'sv': 'Polisutbildning'},
|
|
3085
|
-
# 'Beskrivning': { 'sv': 'Polisutbildning som ej '
|
|
3086
|
-
# 'uppfyller alla '
|
|
3087
|
-
# 'kvalitetskrav för '
|
|
3088
|
-
# 'högskoleutbildning.'},
|
|
3089
|
-
# 'EnhetID': 2,
|
|
3090
|
-
# 'Giltighetsperiod': {'link': []},
|
|
3091
|
-
# 'ID': '109831',
|
|
3092
|
-
# 'Kod': 'PU99',
|
|
3093
|
-
# 'LarosateID': -1,
|
|
3094
|
-
# 'UtbildningsformID': 100969,
|
|
3095
|
-
# 'link': []},
|
|
3096
|
-
# { 'Benamning': { 'en': 'Police education, equal '
|
|
3097
|
-
# 'to Higher education',
|
|
3098
|
-
# 'sv': 'Polisutbildning, '
|
|
3099
|
-
# 'motsvarande '
|
|
3100
|
-
# 'högskoleutbildning'},
|
|
3101
|
-
# 'Beskrivning': { 'sv': 'Polisutbildning som '
|
|
3102
|
-
# 'uppfyller '
|
|
3103
|
-
# 'kvalitetskraven för '
|
|
3104
|
-
# 'högskoleutbildning'},
|
|
3105
|
-
# 'EnhetID': 2,
|
|
3106
|
-
# 'Giltighetsperiod': { 'Startdatum': '2018-07-01',
|
|
3107
|
-
# 'link': []},
|
|
3108
|
-
# 'ID': '135370',
|
|
3109
|
-
# 'Kod': 'PU18',
|
|
3110
|
-
# 'LarosateID': -1,
|
|
3111
|
-
# 'UtbildningsformID': 100969,
|
|
3112
|
-
# 'link': []},
|
|
3113
|
-
# { 'Benamning': {'en': 'Ö-Fel', 'sv': 'Ö-Fel'},
|
|
3114
|
-
# 'Beskrivning': {},
|
|
3115
|
-
# 'EnhetID': 1,
|
|
3116
|
-
# 'Giltighetsperiod': { 'Slutdatum': '1900-01-01',
|
|
3117
|
-
# 'link': []},
|
|
3118
|
-
# 'ID': '138710',
|
|
3119
|
-
# 'Kod': 'FEL',
|
|
3120
|
-
# 'LarosateID': -1,
|
|
3121
|
-
# 'UtbildningsformID': 100970,
|
|
3122
|
-
# 'link': []},
|
|
3123
|
-
# { 'Benamning': { 'en': 'Contract education '
|
|
3124
|
-
# '(hours)',
|
|
3125
|
-
# 'sv': 'Uppdragsutbildning '
|
|
3126
|
-
# '(timmar)'},
|
|
3127
|
-
# 'Beskrivning': {},
|
|
3128
|
-
# 'EnhetID': 5,
|
|
3129
|
-
# 'Giltighetsperiod': { 'Startdatum': '2019-01-01',
|
|
3130
|
-
# 'link': []},
|
|
3131
|
-
# 'ID': '147898',
|
|
3132
|
-
# 'Kod': 'UPTI',
|
|
3133
|
-
# 'LarosateID': -1,
|
|
3134
|
-
# 'UtbildningsformID': 100928,
|
|
3135
|
-
# 'link': []}],
|
|
3136
|
-
# 'link': []}
|
|
3137
1311
|
# added by GQMJr
|
|
3138
1312
|
#####################################################################
|
|
3139
1313
|
#
|
|
3140
|
-
#
|
|
3141
|
-
#
|
|
3142
|
-
# RETURNERAR JSON of units
|
|
3143
|
-
def enhet_JSON(self):
|
|
3144
|
-
r = self.session.get(
|
|
3145
|
-
url=self.base_gui_proxy_url + "/kataloginformation/grunddata/enhet",
|
|
3146
|
-
headers=self.headers,
|
|
3147
|
-
).json()
|
|
3148
|
-
return r
|
|
3149
|
-
|
|
3150
|
-
# returns:
|
|
3151
|
-
# { 'Enhet': [ { 'Benamning': { 'en': 'Credit points',
|
|
3152
|
-
# 'sv': 'Poäng (Övrig utbildning)'},
|
|
3153
|
-
# 'Beskrivning': {},
|
|
3154
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2018-01-01',
|
|
3155
|
-
# 'link': []},
|
|
3156
|
-
# 'Helarsvarde': 40,
|
|
3157
|
-
# 'ID': '6',
|
|
3158
|
-
# 'Kod': 'AUP',
|
|
3159
|
-
# 'LarosateID': -1,
|
|
3160
|
-
# 'link': []},
|
|
3161
|
-
# { 'Benamning': { 'en': 'Pre-education credits',
|
|
3162
|
-
# 'sv': 'Förutbildningspoäng'},
|
|
3163
|
-
# 'Beskrivning': {},
|
|
3164
|
-
# 'Giltighetsperiod': {'link': []},
|
|
3165
|
-
# 'Helarsvarde': 60,
|
|
3166
|
-
# 'ID': '4',
|
|
3167
|
-
# 'Kod': 'FUP',
|
|
3168
|
-
# 'LarosateID': -1,
|
|
3169
|
-
# 'link': []},
|
|
3170
|
-
# { 'Benamning': {'en': 'Credits', 'sv': 'Högskolepoäng'},
|
|
3171
|
-
# 'Beskrivning': { 'sv': 'Översattes 2007-2010 med Higher '
|
|
3172
|
-
# 'education credits'},
|
|
3173
|
-
# 'Giltighetsperiod': { 'Startdatum': '2007-07-01',
|
|
3174
|
-
# 'link': []},
|
|
3175
|
-
# 'Helarsvarde': 60,
|
|
3176
|
-
# 'ID': '2',
|
|
3177
|
-
# 'Kod': 'HP',
|
|
3178
|
-
# 'LarosateID': -1,
|
|
3179
|
-
# 'link': []},
|
|
3180
|
-
# { 'Benamning': { 'en': 'Converted credits',
|
|
3181
|
-
# 'sv': 'Konverterade högskolepoäng'},
|
|
3182
|
-
# 'Beskrivning': { 'sv': 'Enheten poäng konverterades '
|
|
3183
|
-
# 'till högskolepoäng i Ladok för '
|
|
3184
|
-
# '1993 års studieordning i '
|
|
3185
|
-
# 'samband med övergången till '
|
|
3186
|
-
# '2007 års studieordning'},
|
|
3187
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2007-06-30',
|
|
3188
|
-
# 'link': []},
|
|
3189
|
-
# 'Helarsvarde': 60,
|
|
3190
|
-
# 'ID': '9',
|
|
3191
|
-
# 'Kod': 'HP-K',
|
|
3192
|
-
# 'LarosateID': -1,
|
|
3193
|
-
# 'link': []},
|
|
3194
|
-
# { 'Benamning': { 'en': 'Internal credits',
|
|
3195
|
-
# 'sv': 'Interna poäng'},
|
|
3196
|
-
# 'Beskrivning': { 'sv': 'Har enbart använts av '
|
|
3197
|
-
# 'Försvarshögskolan'},
|
|
3198
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2016-07-01',
|
|
3199
|
-
# 'link': []},
|
|
3200
|
-
# 'Helarsvarde': 60,
|
|
3201
|
-
# 'ID': '10',
|
|
3202
|
-
# 'Kod': 'IP',
|
|
3203
|
-
# 'LarosateID': -1,
|
|
3204
|
-
# 'link': []},
|
|
3205
|
-
# { 'Benamning': {'en': 'KY credits', 'sv': 'KY-poäng'},
|
|
3206
|
-
# 'Beskrivning': {},
|
|
3207
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2013-12-31',
|
|
3208
|
-
# 'Startdatum': '2002-01-01',
|
|
3209
|
-
# 'link': []},
|
|
3210
|
-
# 'Helarsvarde': 40,
|
|
3211
|
-
# 'ID': '7',
|
|
3212
|
-
# 'Kod': 'KYP',
|
|
3213
|
-
# 'LarosateID': -1,
|
|
3214
|
-
# 'link': []},
|
|
3215
|
-
# { 'Benamning': {'en': 'Hours', 'sv': 'Timmar'},
|
|
3216
|
-
# 'Beskrivning': {},
|
|
3217
|
-
# 'Giltighetsperiod': {'link': []},
|
|
3218
|
-
# 'Helarsvarde': 1600,
|
|
3219
|
-
# 'ID': '5',
|
|
3220
|
-
# 'Kod': 'T',
|
|
3221
|
-
# 'LarosateID': -1,
|
|
3222
|
-
# 'link': []},
|
|
3223
|
-
# { 'Benamning': {'en': 'Weeks', 'sv': 'Veckor'},
|
|
3224
|
-
# 'Beskrivning': {},
|
|
3225
|
-
# 'Giltighetsperiod': {'link': []},
|
|
3226
|
-
# 'Helarsvarde': 40,
|
|
3227
|
-
# 'ID': '1',
|
|
3228
|
-
# 'Kod': 'V',
|
|
3229
|
-
# 'LarosateID': -1,
|
|
3230
|
-
# 'link': []},
|
|
3231
|
-
# { 'Benamning': { 'en': 'HVE credits',
|
|
3232
|
-
# 'sv': 'Yrkeshögskolepoäng'},
|
|
3233
|
-
# 'Beskrivning': {},
|
|
3234
|
-
# 'Giltighetsperiod': { 'Startdatum': '2009-07-01',
|
|
3235
|
-
# 'link': []},
|
|
3236
|
-
# 'Helarsvarde': 200,
|
|
3237
|
-
# 'ID': '8',
|
|
3238
|
-
# 'Kod': 'YHP',
|
|
3239
|
-
# 'LarosateID': -1,
|
|
3240
|
-
# 'link': []}],
|
|
3241
|
-
# 'link': []}
|
|
3242
|
-
# added by GQMJr
|
|
3243
|
-
#####################################################################
|
|
1314
|
+
# change_locale
|
|
3244
1315
|
#
|
|
3245
|
-
#
|
|
1316
|
+
# lang - language code 'en' or 'sv', defaults to 'sv'
|
|
3246
1317
|
#
|
|
3247
|
-
# RETURNERAR
|
|
3248
|
-
def
|
|
1318
|
+
# RETURNERAR reponse to the request
|
|
1319
|
+
def change_locale(self, lang="sv"):
|
|
3249
1320
|
r = self.session.get(
|
|
3250
|
-
url=self.
|
|
3251
|
-
+ "/kataloginformation/grunddata/studielokalisering",
|
|
1321
|
+
url=self.base_gui_url + "/services/i18n/changeLocale?lang=" + lang,
|
|
3252
1322
|
headers=self.headers,
|
|
3253
1323
|
).json()
|
|
3254
1324
|
return r
|
|
3255
1325
|
|
|
3256
|
-
# returns:
|
|
3257
|
-
# { 'Studielokalisering': [ { 'Benamning': { 'en': 'Botkyrka',
|
|
3258
|
-
# 'sv': 'Botkyrka'},
|
|
3259
|
-
# 'Beskrivning': {},
|
|
3260
|
-
# 'Giltighetsperiod': { 'Slutdatum': '1997-12-31',
|
|
3261
|
-
# 'Startdatum': '1997-08-01',
|
|
3262
|
-
# 'link': []},
|
|
3263
|
-
# 'ID': '131772',
|
|
3264
|
-
# 'Kod': '0127',
|
|
3265
|
-
# 'LarosateID': 29,
|
|
3266
|
-
# 'OrtID': 110990,
|
|
3267
|
-
# 'link': [ { 'mediaType': 'application/vnd.ladok+xml',
|
|
3268
|
-
# 'method': 'GET',
|
|
3269
|
-
# 'rel': 'svenskort',
|
|
3270
|
-
# 'uri': 'https://api.ladok.se:443/kataloginformation/svenskort/110990'}]},
|
|
3271
|
-
# { 'Benamning': { 'en': 'Haninge',
|
|
3272
|
-
# 'sv': 'Haninge'},
|
|
3273
|
-
# 'Beskrivning': {},
|
|
3274
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2016-06-30',
|
|
3275
|
-
# 'Startdatum': '1994-08-01',
|
|
3276
|
-
# 'link': []},
|
|
3277
|
-
# 'ID': '131773',
|
|
3278
|
-
# 'Kod': '0136',
|
|
3279
|
-
# 'LarosateID': 29,
|
|
3280
|
-
# 'OrtID': 110991,
|
|
3281
|
-
# 'link': [ { 'mediaType': 'application/vnd.ladok+xml',
|
|
3282
|
-
# 'method': 'GET',
|
|
3283
|
-
# 'rel': 'svenskort',
|
|
3284
|
-
# 'uri': 'https://api.ladok.se:443/kataloginformation/svenskort/110991'}]},
|
|
3285
|
-
# { 'Benamning': { 'en': 'Nyköping',
|
|
3286
|
-
# 'sv': 'Nyköping'},
|
|
3287
|
-
# 'Beskrivning': {},
|
|
3288
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2005-06-30',
|
|
3289
|
-
# 'Startdatum': '2005-01-01',
|
|
3290
|
-
# 'link': []},
|
|
3291
|
-
# 'ID': '131777',
|
|
3292
|
-
# 'Kod': '0480',
|
|
3293
|
-
# 'LarosateID': 29,
|
|
3294
|
-
# 'OrtID': 44,
|
|
3295
|
-
# 'link': [ { 'mediaType': 'application/vnd.ladok+xml',
|
|
3296
|
-
# 'method': 'GET',
|
|
3297
|
-
# 'rel': 'svenskort',
|
|
3298
|
-
# 'uri': 'https://api.ladok.se:443/kataloginformation/svenskort/44'}]},
|
|
3299
|
-
# { 'Benamning': { 'en': 'Valdemarsvik',
|
|
3300
|
-
# 'sv': 'Valdemarsvik'},
|
|
3301
|
-
# 'Beskrivning': {},
|
|
3302
|
-
# 'Giltighetsperiod': { 'Slutdatum': '1999-12-31',
|
|
3303
|
-
# 'link': []},
|
|
3304
|
-
# 'ID': '131780',
|
|
3305
|
-
# 'Kod': '0563',
|
|
3306
|
-
# 'LarosateID': 29,
|
|
3307
|
-
# 'OrtID': 60,
|
|
3308
|
-
# 'link': [ { 'mediaType': 'application/vnd.ladok+xml',
|
|
3309
|
-
# 'method': 'GET',
|
|
3310
|
-
# 'rel': 'svenskort',
|
|
3311
|
-
# 'uri': 'https://api.ladok.se:443/kataloginformation/svenskort/60'}]},
|
|
3312
|
-
# { 'Benamning': {'en': 'Visby', 'sv': 'Visby'},
|
|
3313
|
-
# 'Beskrivning': {},
|
|
3314
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2000-12-31',
|
|
3315
|
-
# 'Startdatum': '1991-08-01',
|
|
3316
|
-
# 'link': []},
|
|
3317
|
-
# 'ID': '131781',
|
|
3318
|
-
# 'Kod': '0980',
|
|
3319
|
-
# 'LarosateID': 29,
|
|
3320
|
-
# 'OrtID': 108,
|
|
3321
|
-
# 'link': [ { 'mediaType': 'application/vnd.ladok+xml',
|
|
3322
|
-
# 'method': 'GET',
|
|
3323
|
-
# 'rel': 'svenskort',
|
|
3324
|
-
# 'uri': 'https://api.ladok.se:443/kataloginformation/svenskort/108'}]},
|
|
3325
|
-
# { 'Benamning': { 'en': 'Ängelholm',
|
|
3326
|
-
# 'sv': 'Ängelholm'},
|
|
3327
|
-
# 'Beskrivning': {},
|
|
3328
|
-
# 'Giltighetsperiod': { 'Slutdatum': '1997-12-31',
|
|
3329
|
-
# 'Startdatum': '1997-12-31',
|
|
3330
|
-
# 'link': []},
|
|
3331
|
-
# 'ID': '131782',
|
|
3332
|
-
# 'Kod': '1292',
|
|
3333
|
-
# 'LarosateID': 29,
|
|
3334
|
-
# 'OrtID': 154,
|
|
3335
|
-
# 'link': [ { 'mediaType': 'application/vnd.ladok+xml',
|
|
3336
|
-
# 'method': 'GET',
|
|
3337
|
-
# 'rel': 'svenskort',
|
|
3338
|
-
# 'uri': 'https://api.ladok.se:443/kataloginformation/svenskort/154'}]},
|
|
3339
|
-
# { 'Benamning': {'en': 'Falun', 'sv': 'Falun'},
|
|
3340
|
-
# 'Beskrivning': {},
|
|
3341
|
-
# 'Giltighetsperiod': { 'Slutdatum': '1998-12-31',
|
|
3342
|
-
# 'Startdatum': '1994-08-01',
|
|
3343
|
-
# 'link': []},
|
|
3344
|
-
# 'ID': '131787',
|
|
3345
|
-
# 'Kod': '2080',
|
|
3346
|
-
# 'LarosateID': 29,
|
|
3347
|
-
# 'OrtID': 263,
|
|
3348
|
-
# 'link': [ { 'mediaType': 'application/vnd.ladok+xml',
|
|
3349
|
-
# 'method': 'GET',
|
|
3350
|
-
# 'rel': 'svenskort',
|
|
3351
|
-
# 'uri': 'https://api.ladok.se:443/kataloginformation/svenskort/263'}]},
|
|
3352
|
-
# { 'Benamning': {'en': 'Gävle', 'sv': 'Gävle'},
|
|
3353
|
-
# 'Beskrivning': {},
|
|
3354
|
-
# 'Giltighetsperiod': { 'Slutdatum': '1998-12-31',
|
|
3355
|
-
# 'Startdatum': '1997-08-01',
|
|
3356
|
-
# 'link': []},
|
|
3357
|
-
# 'ID': '131784',
|
|
3358
|
-
# 'Kod': '2180',
|
|
3359
|
-
# 'LarosateID': 29,
|
|
3360
|
-
# 'OrtID': 273,
|
|
3361
|
-
# 'link': [ { 'mediaType': 'application/vnd.ladok+xml',
|
|
3362
|
-
# 'method': 'GET',
|
|
3363
|
-
# 'rel': 'svenskort',
|
|
3364
|
-
# 'uri': 'https://api.ladok.se:443/kataloginformation/svenskort/273'}]},
|
|
3365
|
-
# { 'Benamning': { 'en': 'Stockholm School of '
|
|
3366
|
-
# 'Economics',
|
|
3367
|
-
# 'sv': 'Handelshögskolan'},
|
|
3368
|
-
# 'Beskrivning': {},
|
|
3369
|
-
# 'Giltighetsperiod': { 'Startdatum': '2018-06-20',
|
|
3370
|
-
# 'link': []},
|
|
3371
|
-
# 'ID': '135191',
|
|
3372
|
-
# 'Kod': 'HANDELS',
|
|
3373
|
-
# 'LarosateID': 29,
|
|
3374
|
-
# 'OrtID': 18,
|
|
3375
|
-
# 'link': [ { 'mediaType': 'application/vnd.ladok+xml',
|
|
3376
|
-
# 'method': 'GET',
|
|
3377
|
-
# 'rel': 'svenskort',
|
|
3378
|
-
# 'uri': 'https://api.ladok.se:443/kataloginformation/svenskort/18'}]},
|
|
3379
|
-
# { 'Benamning': { 'en': 'KI Flemingsberg',
|
|
3380
|
-
# 'sv': 'KI Flemingsberg'},
|
|
3381
|
-
# 'Beskrivning': {},
|
|
3382
|
-
# 'Giltighetsperiod': { 'Startdatum': '2018-06-20',
|
|
3383
|
-
# 'link': []},
|
|
3384
|
-
# 'ID': '135192',
|
|
3385
|
-
# 'Kod': 'KI_FLEMINGS',
|
|
3386
|
-
# 'LarosateID': 29,
|
|
3387
|
-
# 'OrtID': 7,
|
|
3388
|
-
# 'link': [ { 'mediaType': 'application/vnd.ladok+xml',
|
|
3389
|
-
# 'method': 'GET',
|
|
3390
|
-
# 'rel': 'svenskort',
|
|
3391
|
-
# 'uri': 'https://api.ladok.se:443/kataloginformation/svenskort/7'}]},
|
|
3392
|
-
# { 'Benamning': { 'en': 'University of Arts, '
|
|
3393
|
-
# 'Crafts and Design',
|
|
3394
|
-
# 'sv': 'Konstfack'},
|
|
3395
|
-
# 'Beskrivning': {},
|
|
3396
|
-
# 'Giltighetsperiod': { 'Startdatum': '2018-08-27',
|
|
3397
|
-
# 'link': []},
|
|
3398
|
-
# 'ID': '147750',
|
|
3399
|
-
# 'Kod': 'KONSTFACK',
|
|
3400
|
-
# 'LarosateID': 29,
|
|
3401
|
-
# 'OrtID': 18,
|
|
3402
|
-
# 'link': [ { 'mediaType': 'application/vnd.ladok+xml',
|
|
3403
|
-
# 'method': 'GET',
|
|
3404
|
-
# 'rel': 'svenskort',
|
|
3405
|
-
# 'uri': 'https://api.ladok.se:443/kataloginformation/svenskort/18'}]},
|
|
3406
|
-
# { 'Benamning': { 'en': 'KTH Campus',
|
|
3407
|
-
# 'sv': 'KTH Campus'},
|
|
3408
|
-
# 'Beskrivning': { 'sv': '"Campus" '
|
|
3409
|
-
# 'Valhallavägen'},
|
|
3410
|
-
# 'Giltighetsperiod': { 'Startdatum': '2018-06-20',
|
|
3411
|
-
# 'link': []},
|
|
3412
|
-
# 'ID': '135195',
|
|
3413
|
-
# 'Kod': 'KTHCAMPUS',
|
|
3414
|
-
# 'LarosateID': 29,
|
|
3415
|
-
# 'OrtID': 18,
|
|
3416
|
-
# 'link': [ { 'mediaType': 'application/vnd.ladok+xml',
|
|
3417
|
-
# 'method': 'GET',
|
|
3418
|
-
# 'rel': 'svenskort',
|
|
3419
|
-
# 'uri': 'https://api.ladok.se:443/kataloginformation/svenskort/18'}]},
|
|
3420
|
-
# { 'Benamning': {'en': 'Täby', 'sv': 'Täby'},
|
|
3421
|
-
# 'Beskrivning': {},
|
|
3422
|
-
# 'Giltighetsperiod': { 'Slutdatum': '1999-12-31',
|
|
3423
|
-
# 'link': []},
|
|
3424
|
-
# 'ID': '131774',
|
|
3425
|
-
# 'Kod': '0160',
|
|
3426
|
-
# 'LarosateID': 29,
|
|
3427
|
-
# 'OrtID': 14,
|
|
3428
|
-
# 'link': [ { 'mediaType': 'application/vnd.ladok+xml',
|
|
3429
|
-
# 'method': 'GET',
|
|
3430
|
-
# 'rel': 'svenskort',
|
|
3431
|
-
# 'uri': 'https://api.ladok.se:443/kataloginformation/svenskort/14'}]},
|
|
3432
|
-
# { 'Benamning': { 'en': 'Stockholm',
|
|
3433
|
-
# 'sv': 'Stockholm'},
|
|
3434
|
-
# 'Beskrivning': {},
|
|
3435
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2019-01-14',
|
|
3436
|
-
# 'Startdatum': '1917-10-19',
|
|
3437
|
-
# 'link': []},
|
|
3438
|
-
# 'ID': '131778',
|
|
3439
|
-
# 'Kod': '0180',
|
|
3440
|
-
# 'LarosateID': 29,
|
|
3441
|
-
# 'OrtID': 18,
|
|
3442
|
-
# 'link': [ { 'mediaType': 'application/vnd.ladok+xml',
|
|
3443
|
-
# 'method': 'GET',
|
|
3444
|
-
# 'rel': 'svenskort',
|
|
3445
|
-
# 'uri': 'https://api.ladok.se:443/kataloginformation/svenskort/18'}]},
|
|
3446
|
-
# { 'Benamning': { 'en': 'Sundsvall',
|
|
3447
|
-
# 'sv': 'Sundsvall'},
|
|
3448
|
-
# 'Beskrivning': {},
|
|
3449
|
-
# 'Giltighetsperiod': { 'Slutdatum': '1997-12-31',
|
|
3450
|
-
# 'Startdatum': '1996-08-01',
|
|
3451
|
-
# 'link': []},
|
|
3452
|
-
# 'ID': '131785',
|
|
3453
|
-
# 'Kod': '2281',
|
|
3454
|
-
# 'LarosateID': 29,
|
|
3455
|
-
# 'OrtID': 281,
|
|
3456
|
-
# 'link': [ { 'mediaType': 'application/vnd.ladok+xml',
|
|
3457
|
-
# 'method': 'GET',
|
|
3458
|
-
# 'rel': 'svenskort',
|
|
3459
|
-
# 'uri': 'https://api.ladok.se:443/kataloginformation/svenskort/281'}]},
|
|
3460
|
-
# { 'Benamning': { 'en': 'Örnsköldsvik',
|
|
3461
|
-
# 'sv': 'Örnsköldsvik'},
|
|
3462
|
-
# 'Beskrivning': {},
|
|
3463
|
-
# 'Giltighetsperiod': { 'Slutdatum': '1997-12-31',
|
|
3464
|
-
# 'Startdatum': '1997-01-01',
|
|
3465
|
-
# 'link': []},
|
|
3466
|
-
# 'ID': '131788',
|
|
3467
|
-
# 'Kod': '2284',
|
|
3468
|
-
# 'LarosateID': 29,
|
|
3469
|
-
# 'OrtID': 284,
|
|
3470
|
-
# 'link': [ { 'mediaType': 'application/vnd.ladok+xml',
|
|
3471
|
-
# 'method': 'GET',
|
|
3472
|
-
# 'rel': 'svenskort',
|
|
3473
|
-
# 'uri': 'https://api.ladok.se:443/kataloginformation/svenskort/284'}]},
|
|
3474
|
-
# { 'Benamning': { 'en': 'KTH Solna',
|
|
3475
|
-
# 'sv': 'KTH Solna'},
|
|
3476
|
-
# 'Beskrivning': { 'en': 'SciLife Labs, '
|
|
3477
|
-
# 'Solna',
|
|
3478
|
-
# 'sv': 'SciLife Labs, '
|
|
3479
|
-
# 'Solna'},
|
|
3480
|
-
# 'Giltighetsperiod': { 'Startdatum': '2018-06-18',
|
|
3481
|
-
# 'link': []},
|
|
3482
|
-
# 'ID': '135610',
|
|
3483
|
-
# 'Kod': 'SCILIFELAB',
|
|
3484
|
-
# 'LarosateID': 29,
|
|
3485
|
-
# 'OrtID': 25,
|
|
3486
|
-
# 'link': [ { 'mediaType': 'application/vnd.ladok+xml',
|
|
3487
|
-
# 'method': 'GET',
|
|
3488
|
-
# 'rel': 'svenskort',
|
|
3489
|
-
# 'uri': 'https://api.ladok.se:443/kataloginformation/svenskort/25'}]},
|
|
3490
|
-
# { 'Benamning': { 'en': 'KTH Södertälje',
|
|
3491
|
-
# 'sv': 'KTH Södertälje'},
|
|
3492
|
-
# 'Beskrivning': {'sv': '"Campus" Södertälje'},
|
|
3493
|
-
# 'Giltighetsperiod': { 'Startdatum': '2018-06-20',
|
|
3494
|
-
# 'link': []},
|
|
3495
|
-
# 'ID': '135196',
|
|
3496
|
-
# 'Kod': 'SODERTALJE',
|
|
3497
|
-
# 'LarosateID': 29,
|
|
3498
|
-
# 'OrtID': 20,
|
|
3499
|
-
# 'link': [ { 'mediaType': 'application/vnd.ladok+xml',
|
|
3500
|
-
# 'method': 'GET',
|
|
3501
|
-
# 'rel': 'svenskort',
|
|
3502
|
-
# 'uri': 'https://api.ladok.se:443/kataloginformation/svenskort/20'}]},
|
|
3503
|
-
# { 'Benamning': { 'en': 'Järfälla',
|
|
3504
|
-
# 'sv': 'Järfälla'},
|
|
3505
|
-
# 'Beskrivning': {},
|
|
3506
|
-
# 'Giltighetsperiod': { 'Slutdatum': '1996-06-30',
|
|
3507
|
-
# 'Startdatum': '1994-08-01',
|
|
3508
|
-
# 'link': []},
|
|
3509
|
-
# 'ID': '131775',
|
|
3510
|
-
# 'Kod': '0123',
|
|
3511
|
-
# 'LarosateID': 29,
|
|
3512
|
-
# 'OrtID': 5,
|
|
3513
|
-
# 'link': [ { 'mediaType': 'application/vnd.ladok+xml',
|
|
3514
|
-
# 'method': 'GET',
|
|
3515
|
-
# 'rel': 'svenskort',
|
|
3516
|
-
# 'uri': 'https://api.ladok.se:443/kataloginformation/svenskort/5'}]},
|
|
3517
|
-
# { 'Benamning': { 'en': 'Huddinge',
|
|
3518
|
-
# 'sv': 'Huddinge'},
|
|
3519
|
-
# 'Beskrivning': {},
|
|
3520
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2019-01-14',
|
|
3521
|
-
# 'Startdatum': '2002-01-01',
|
|
3522
|
-
# 'link': []},
|
|
3523
|
-
# 'ID': '131779',
|
|
3524
|
-
# 'Kod': '0126',
|
|
3525
|
-
# 'LarosateID': 29,
|
|
3526
|
-
# 'OrtID': 109830,
|
|
3527
|
-
# 'link': [ { 'mediaType': 'application/vnd.ladok+xml',
|
|
3528
|
-
# 'method': 'GET',
|
|
3529
|
-
# 'rel': 'svenskort',
|
|
3530
|
-
# 'uri': 'https://api.ladok.se:443/kataloginformation/svenskort/109830'}]},
|
|
3531
|
-
# { 'Benamning': { 'en': 'Södertälje',
|
|
3532
|
-
# 'sv': 'Södertälje'},
|
|
3533
|
-
# 'Beskrivning': {},
|
|
3534
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2019-01-14',
|
|
3535
|
-
# 'Startdatum': '1987-01-01',
|
|
3536
|
-
# 'link': []},
|
|
3537
|
-
# 'ID': '131771',
|
|
3538
|
-
# 'Kod': '0181',
|
|
3539
|
-
# 'LarosateID': 29,
|
|
3540
|
-
# 'OrtID': 20,
|
|
3541
|
-
# 'link': [ { 'mediaType': 'application/vnd.ladok+xml',
|
|
3542
|
-
# 'method': 'GET',
|
|
3543
|
-
# 'rel': 'svenskort',
|
|
3544
|
-
# 'uri': 'https://api.ladok.se:443/kataloginformation/svenskort/20'}]},
|
|
3545
|
-
# { 'Benamning': { 'en': 'Norrtälje',
|
|
3546
|
-
# 'sv': 'Norrtälje'},
|
|
3547
|
-
# 'Beskrivning': {},
|
|
3548
|
-
# 'Giltighetsperiod': { 'Slutdatum': '2005-06-30',
|
|
3549
|
-
# 'Startdatum': '1997-08-01',
|
|
3550
|
-
# 'link': []},
|
|
3551
|
-
# 'ID': '131776',
|
|
3552
|
-
# 'Kod': '0188',
|
|
3553
|
-
# 'LarosateID': 29,
|
|
3554
|
-
# 'OrtID': 28,
|
|
3555
|
-
# 'link': [ { 'mediaType': 'application/vnd.ladok+xml',
|
|
3556
|
-
# 'method': 'GET',
|
|
3557
|
-
# 'rel': 'svenskort',
|
|
3558
|
-
# 'uri': 'https://api.ladok.se:443/kataloginformation/svenskort/28'}]},
|
|
3559
|
-
# { 'Benamning': {'en': 'Örebro', 'sv': 'Örebro'},
|
|
3560
|
-
# 'Beskrivning': {},
|
|
3561
|
-
# 'Giltighetsperiod': { 'Slutdatum': '1998-06-30',
|
|
3562
|
-
# 'Startdatum': '1996-08-01',
|
|
3563
|
-
# 'link': []},
|
|
3564
|
-
# 'ID': '131786',
|
|
3565
|
-
# 'Kod': '1880',
|
|
3566
|
-
# 'LarosateID': 29,
|
|
3567
|
-
# 'OrtID': 237,
|
|
3568
|
-
# 'link': [ { 'mediaType': 'application/vnd.ladok+xml',
|
|
3569
|
-
# 'method': 'GET',
|
|
3570
|
-
# 'rel': 'svenskort',
|
|
3571
|
-
# 'uri': 'https://api.ladok.se:443/kataloginformation/svenskort/237'}]},
|
|
3572
|
-
# { 'Benamning': { 'en': 'Västerås',
|
|
3573
|
-
# 'sv': 'Västerås'},
|
|
3574
|
-
# 'Beskrivning': {},
|
|
3575
|
-
# 'Giltighetsperiod': { 'Slutdatum': '1999-12-31',
|
|
3576
|
-
# 'Startdatum': '1994-08-01',
|
|
3577
|
-
# 'link': []},
|
|
3578
|
-
# 'ID': '131783',
|
|
3579
|
-
# 'Kod': '1980',
|
|
3580
|
-
# 'LarosateID': 29,
|
|
3581
|
-
# 'OrtID': 248,
|
|
3582
|
-
# 'link': [ { 'mediaType': 'application/vnd.ladok+xml',
|
|
3583
|
-
# 'method': 'GET',
|
|
3584
|
-
# 'rel': 'svenskort',
|
|
3585
|
-
# 'uri': 'https://api.ladok.se:443/kataloginformation/svenskort/248'}]},
|
|
3586
|
-
# { 'Benamning': { 'en': 'AlbaNova',
|
|
3587
|
-
# 'sv': 'AlbaNova'},
|
|
3588
|
-
# 'Beskrivning': {},
|
|
3589
|
-
# 'Giltighetsperiod': { 'Startdatum': '2018-06-20',
|
|
3590
|
-
# 'link': []},
|
|
3591
|
-
# 'ID': '135190',
|
|
3592
|
-
# 'Kod': 'ALBANOVA',
|
|
3593
|
-
# 'LarosateID': 29,
|
|
3594
|
-
# 'OrtID': 18,
|
|
3595
|
-
# 'link': [ { 'mediaType': 'application/vnd.ladok+xml',
|
|
3596
|
-
# 'method': 'GET',
|
|
3597
|
-
# 'rel': 'svenskort',
|
|
3598
|
-
# 'uri': 'https://api.ladok.se:443/kataloginformation/svenskort/18'}]},
|
|
3599
|
-
# { 'Benamning': { 'en': 'KTH Flemingsberg',
|
|
3600
|
-
# 'sv': 'KTH Flemingsberg'},
|
|
3601
|
-
# 'Beskrivning': { 'sv': '"campus" '
|
|
3602
|
-
# 'Flemingsberg'},
|
|
3603
|
-
# 'Giltighetsperiod': { 'Startdatum': '2018-06-20',
|
|
3604
|
-
# 'link': []},
|
|
3605
|
-
# 'ID': '135198',
|
|
3606
|
-
# 'Kod': 'FLEMINGSB',
|
|
3607
|
-
# 'LarosateID': 29,
|
|
3608
|
-
# 'OrtID': 7,
|
|
3609
|
-
# 'link': [ { 'mediaType': 'application/vnd.ladok+xml',
|
|
3610
|
-
# 'method': 'GET',
|
|
3611
|
-
# 'rel': 'svenskort',
|
|
3612
|
-
# 'uri': 'https://api.ladok.se:443/kataloginformation/svenskort/7'}]},
|
|
3613
|
-
# { 'Benamning': { 'en': 'KI Solna',
|
|
3614
|
-
# 'sv': 'KI Solna'},
|
|
3615
|
-
# 'Beskrivning': {},
|
|
3616
|
-
# 'Giltighetsperiod': { 'Startdatum': '2018-06-20',
|
|
3617
|
-
# 'link': []},
|
|
3618
|
-
# 'ID': '135193',
|
|
3619
|
-
# 'Kod': 'KI_SOLNA',
|
|
3620
|
-
# 'LarosateID': 29,
|
|
3621
|
-
# 'OrtID': 25,
|
|
3622
|
-
# 'link': [ { 'mediaType': 'application/vnd.ladok+xml',
|
|
3623
|
-
# 'method': 'GET',
|
|
3624
|
-
# 'rel': 'svenskort',
|
|
3625
|
-
# 'uri': 'https://api.ladok.se:443/kataloginformation/svenskort/25'}]},
|
|
3626
|
-
# { 'Benamning': { 'en': 'KTH Kista',
|
|
3627
|
-
# 'sv': 'KTH Kista'},
|
|
3628
|
-
# 'Beskrivning': {'sv': '"Campus" Kista'},
|
|
3629
|
-
# 'Giltighetsperiod': { 'Startdatum': '2018-06-20',
|
|
3630
|
-
# 'link': []},
|
|
3631
|
-
# 'ID': '135194',
|
|
3632
|
-
# 'Kod': 'KISTA',
|
|
3633
|
-
# 'LarosateID': 29,
|
|
3634
|
-
# 'OrtID': 18,
|
|
3635
|
-
# 'link': [ { 'mediaType': 'application/vnd.ladok+xml',
|
|
3636
|
-
# 'method': 'GET',
|
|
3637
|
-
# 'rel': 'svenskort',
|
|
3638
|
-
# 'uri': 'https://api.ladok.se:443/kataloginformation/svenskort/18'}]},
|
|
3639
|
-
# { 'Benamning': { 'en': 'Stockholm University',
|
|
3640
|
-
# 'sv': 'Stockholms '
|
|
3641
|
-
# 'universitet'},
|
|
3642
|
-
# 'Beskrivning': {},
|
|
3643
|
-
# 'Giltighetsperiod': { 'Startdatum': '2018-06-20',
|
|
3644
|
-
# 'link': []},
|
|
3645
|
-
# 'ID': '135197',
|
|
3646
|
-
# 'Kod': 'SU',
|
|
3647
|
-
# 'LarosateID': 29,
|
|
3648
|
-
# 'OrtID': 18,
|
|
3649
|
-
# 'link': [ { 'mediaType': 'application/vnd.ladok+xml',
|
|
3650
|
-
# 'method': 'GET',
|
|
3651
|
-
# 'rel': 'svenskort',
|
|
3652
|
-
# 'uri': 'https://api.ladok.se:443/kataloginformation/svenskort/18'}]}],
|
|
3653
|
-
# 'link': []}
|
|
3654
1326
|
# added by GQMJr
|
|
3655
1327
|
#####################################################################
|
|
3656
1328
|
#
|
|
3657
|
-
#
|
|
1329
|
+
# period_info_JSON
|
|
3658
1330
|
#
|
|
3659
|
-
# RETURNERAR JSON of
|
|
3660
|
-
def
|
|
1331
|
+
# RETURNERAR JSON of /resultat/grunddata/period
|
|
1332
|
+
def period_info_JSON(self):
|
|
3661
1333
|
r = self.session.get(
|
|
3662
|
-
url=self.base_gui_proxy_url
|
|
3663
|
-
|
|
1334
|
+
url=self.base_gui_proxy_url + "/resultat/internal/grunddata/period",
|
|
1335
|
+
# doesn't work, but also not after adding 'internal/' between 'resultat/'
|
|
1336
|
+
# and 'grunddata' /CO
|
|
3664
1337
|
headers=self.headers,
|
|
3665
1338
|
).json()
|
|
3666
1339
|
return r
|
|
3667
1340
|
|
|
3668
|
-
# returns:
|
|
3669
|
-
# { 'Antagningsomgang': [ { 'Benamning': { 'en': 'Application to courses '
|
|
3670
|
-
# 'within programme at '
|
|
3671
|
-
# 'KTH HT2020',
|
|
3672
|
-
# 'sv': 'Anmälan till kurs inom '
|
|
3673
|
-
# 'program på KTH HT2020'},
|
|
3674
|
-
# 'Beskrivning': {},
|
|
3675
|
-
# 'Giltighetsperiod': {'link': []},
|
|
3676
|
-
# 'ID': '150233',
|
|
3677
|
-
# 'Kod': '29AKPHT20',
|
|
3678
|
-
# 'LarosateID': 29,
|
|
3679
|
-
# 'SistaAnmalningsdag': '2020-05-15',
|
|
3680
|
-
# 'SistaAnnonseringsdag': '2021-05-15',
|
|
3681
|
-
# 'Studieavgiftsbelagd': True,
|
|
3682
|
-
# 'link': []},
|
|
3683
|
-
# { 'Benamning': { 'en': 'Application to courses '
|
|
3684
|
-
# 'within programme at '
|
|
3685
|
-
# 'KTH VT2019',
|
|
3686
|
-
# 'sv': 'Antagning till kurs '
|
|
3687
|
-
# 'inom program KTH '
|
|
3688
|
-
# 'VT2019'},
|
|
3689
|
-
# 'Beskrivning': {},
|
|
3690
|
-
# 'Giltighetsperiod': {'link': []},
|
|
3691
|
-
# 'ID': '142134',
|
|
3692
|
-
# 'Kod': '29AKPVT19',
|
|
3693
|
-
# 'LarosateID': 29,
|
|
3694
|
-
# 'SistaAnmalningsdag': '2018-11-15',
|
|
3695
|
-
# 'SistaAnnonseringsdag': '2019-02-28',
|
|
3696
|
-
# 'Studieavgiftsbelagd': True,
|
|
3697
|
-
# 'link': []},
|
|
3698
|
-
# ... ],
|
|
3699
|
-
# 'link': []}
|
|
3700
1341
|
# added by GQMJr
|
|
3701
1342
|
#####################################################################
|
|
3702
1343
|
#
|
|
@@ -3725,233 +1366,42 @@ class LadokSession:
|
|
|
3725
1366
|
# 'rel': 'self',
|
|
3726
1367
|
# 'uri': 'https://api.ladok.se:443/kataloginformation/organisation/2474f616-dc41-11e8-8cc1-eaeeb71b497f'}]}
|
|
3727
1368
|
# added by GQMJr
|
|
3728
|
-
|
|
3729
|
-
|
|
3730
|
-
|
|
3731
|
-
|
|
3732
|
-
# RETURNERAR JSON of types of education
|
|
3733
|
-
# for information about these see https://ladok.se/wp-content/uploads/2018/01/Funktionsbeskrivning_095.pdf
|
|
3734
|
-
def utbildningstyp_JSON(self):
|
|
1369
|
+
def examen_student_uid_JSON(self, studentUID):
|
|
1370
|
+
"""
|
|
1371
|
+
Returns the student's degree.
|
|
1372
|
+
"""
|
|
3735
1373
|
r = self.session.get(
|
|
3736
|
-
url=self.base_gui_proxy_url
|
|
3737
|
-
+ "/kataloginformation/grunddata/utbildningstyp",
|
|
1374
|
+
url=self.base_gui_proxy_url + "examen/internal/student/+studentUID",
|
|
3738
1375
|
headers=self.headers,
|
|
3739
1376
|
).json()
|
|
3740
1377
|
return r
|
|
3741
1378
|
|
|
3742
|
-
# returns:
|
|
3743
|
-
# { 'Utbildningstyp': [ { 'AvserTillfalle': False,
|
|
3744
|
-
# 'Benamning': { 'en': 'Module without scope',
|
|
3745
|
-
# 'sv': 'Modul utan omfattning'},
|
|
3746
|
-
# 'Beskrivning': {},
|
|
3747
|
-
# 'Giltighetsperiod': {'link': []},
|
|
3748
|
-
# 'Grundtyp': 'MODUL',
|
|
3749
|
-
# 'ID': '3',
|
|
3750
|
-
# 'Kod': '2007MUO',
|
|
3751
|
-
# 'LarosateID': -1,
|
|
3752
|
-
# 'Regelverk': { 'Regelvarden': [ { 'Regelnamn': 'commons.domain.regel.ingar.i.grupp.overfors.till.nya',
|
|
3753
|
-
# 'Uid': 'd31a4080-e80a-11e8-b1f1-65de97d74aa5',
|
|
3754
|
-
# 'Varde': 'true',
|
|
3755
|
-
# 'link': [ ]},
|
|
3756
|
-
# { 'Regelnamn': 'commons.domain.regel.informationsbehorighet.forskarutbildning',
|
|
3757
|
-
# 'Uid': 'd31a4084-e80a-11e8-b1f1-65de97d74aa5',
|
|
3758
|
-
# 'Varde': 'true',
|
|
3759
|
-
# 'link': [ ]},
|
|
3760
|
-
# { 'Regelnamn': 'commons.domain.regel.sjalvstandig',
|
|
3761
|
-
# 'Uid': 'd31a4086-e80a-11e8-b1f1-65de97d74aa5',
|
|
3762
|
-
# 'Varde': 'false',
|
|
3763
|
-
# 'link': [ ]},
|
|
3764
|
-
# { 'Regelnamn': 'commons.domain.regel.informationsbehorighet.grundavancerad',
|
|
3765
|
-
# 'Uid': 'd31a4085-e80a-11e8-b1f1-65de97d74aa5',
|
|
3766
|
-
# 'Varde': 'true',
|
|
3767
|
-
# 'link': [ ]},
|
|
3768
|
-
# { 'Regelnamn': 'commons.domain.regel.har.omfattning',
|
|
3769
|
-
# 'Uid': 'd31a4082-e80a-11e8-b1f1-65de97d74aa5',
|
|
3770
|
-
# 'Varde': 'false',
|
|
3771
|
-
# 'link': [ ]},
|
|
3772
|
-
# { 'Regelnamn': 'commons.domain.regel.grupp.for.utsokning',
|
|
3773
|
-
# 'Uid': 'd31a196f-e80a-11e8-b1f1-65de97d74aa5',
|
|
3774
|
-
# 'Varde': 'grupp.for.utsokning.forskarniva',
|
|
3775
|
-
# 'link': [ ]},
|
|
3776
|
-
# { 'Regelnamn': 'commons.domain.regel.grupp.for.utsokning',
|
|
3777
|
-
# 'Uid': 'd31a4081-e80a-11e8-b1f1-65de97d74aa5',
|
|
3778
|
-
# 'Varde': 'grupp.for.utsokning.grundavanceradniva',
|
|
3779
|
-
# 'link': [ ]},
|
|
3780
|
-
# { 'Regelnamn': 'commons.domain.regel.versionshanteras',
|
|
3781
|
-
# 'Uid': 'd31a4083-e80a-11e8-b1f1-65de97d74aa5',
|
|
3782
|
-
# 'Varde': 'false',
|
|
3783
|
-
# 'link': [ ]}],
|
|
3784
|
-
# 'Uid': '0441f5ba-1b3f-11e6-aff0-464044604cb6',
|
|
3785
|
-
# 'link': []},
|
|
3786
|
-
# 'Sorteringsordning': 50,
|
|
3787
|
-
# 'StudieordningID': 1,
|
|
3788
|
-
# 'TillfalleInomUtbildningstyper': [],
|
|
3789
|
-
# 'UtbildningstyperInomUtbildningstyp': [],
|
|
3790
|
-
# 'link': []},
|
|
3791
|
-
# { 'AvserTillfalle': False,
|
|
3792
|
-
# 'Benamning': {'en': 'Module', 'sv': 'Modul'},
|
|
3793
|
-
# 'Beskrivning': {},
|
|
3794
|
-
# 'Giltighetsperiod': {'link': []},
|
|
3795
|
-
# 'Grundtyp': 'MODUL',
|
|
3796
|
-
# 'ID': '4',
|
|
3797
|
-
# 'Kod': '2007MOD',
|
|
3798
|
-
# 'LarosateID': -1,
|
|
3799
|
-
# 'Regelverk': { 'Regelvarden': [ { 'Regelnamn': 'commons.domain.regel.versionshanteras',
|
|
3800
|
-
# 'Uid': 'b18301be-e80a-11e8-b1f1-65de97d74aa5',
|
|
3801
|
-
# 'Varde': 'false',
|
|
3802
|
-
# 'link': [ ]},
|
|
3803
|
-
# { 'Regelnamn': 'commons.domain.regel.informationsbehorighet.forskarutbildning',
|
|
3804
|
-
# 'Uid': 'b18301c1-e80a-11e8-b1f1-65de97d74aa5',
|
|
3805
|
-
# 'Varde': 'true',
|
|
3806
|
-
# 'link': [ ]},
|
|
3807
|
-
# { 'Regelnamn': 'commons.domain.regel.ingar.i.grupp.overfors.till.nya',
|
|
3808
|
-
# 'Uid': 'b18301bb-e80a-11e8-b1f1-65de97d74aa5',
|
|
3809
|
-
# 'Varde': 'true',
|
|
3810
|
-
# 'link': [ ]},
|
|
3811
|
-
# { 'Regelnamn': 'commons.domain.regel.sjalvstandig',
|
|
3812
|
-
# 'Uid': 'b18301bf-e80a-11e8-b1f1-65de97d74aa5',
|
|
3813
|
-
# 'Varde': 'false',
|
|
3814
|
-
# 'link': [ ]},
|
|
3815
|
-
# { 'Regelnamn': 'commons.domain.regel.grupp.for.utsokning',
|
|
3816
|
-
# 'Uid': 'b18301bd-e80a-11e8-b1f1-65de97d74aa5',
|
|
3817
|
-
# 'Varde': 'grupp.for.utsokning.grundavanceradniva',
|
|
3818
|
-
# 'link': [ ]},
|
|
3819
|
-
# { 'Regelnamn': 'commons.domain.regel.informationsbehorighet.grundavancerad',
|
|
3820
|
-
# 'Uid': 'b18301bc-e80a-11e8-b1f1-65de97d74aa5',
|
|
3821
|
-
# 'Varde': 'true',
|
|
3822
|
-
# 'link': [ ]},
|
|
3823
|
-
# { 'Regelnamn': 'commons.domain.regel.grupp.for.utsokning',
|
|
3824
|
-
# 'Uid': 'b18301c0-e80a-11e8-b1f1-65de97d74aa5',
|
|
3825
|
-
# 'Varde': 'grupp.for.utsokning.forskarniva',
|
|
3826
|
-
# 'link': [ ]}],
|
|
3827
|
-
# 'Uid': '0461b2c4-1b3f-11e6-aff0-464044604cb6',
|
|
3828
|
-
# 'link': []},
|
|
3829
|
-
# 'Sorteringsordning': 50,
|
|
3830
|
-
# 'StudieordningID': 1,
|
|
3831
|
-
# 'TillfalleInomUtbildningstyper': [],
|
|
3832
|
-
# 'UtbildningstyperInomUtbildningstyp': [],
|
|
3833
|
-
# 'link': []},
|
|
3834
|
-
# ...
|
|
3835
|
-
# ],
|
|
3836
|
-
# 'link': []}
|
|
3837
1379
|
# added by GQMJr
|
|
3838
|
-
|
|
3839
|
-
|
|
3840
|
-
|
|
3841
|
-
|
|
3842
|
-
|
|
3843
|
-
|
|
1380
|
+
def student_participation_JSON(self, studentUID):
|
|
1381
|
+
"""
|
|
1382
|
+
Returns the student's participation in courses.
|
|
1383
|
+
"""
|
|
1384
|
+
headers = self.headers.copy()
|
|
1385
|
+
headers["Content-Type"] = "application/vnd.ladok-studiedeltagande"
|
|
1386
|
+
headers["Accept"] += ", application/vnd.ladok-studiedeltagande"
|
|
3844
1387
|
r = self.session.get(
|
|
3845
1388
|
url=self.base_gui_proxy_url
|
|
3846
|
-
+ "/
|
|
3847
|
-
|
|
3848
|
-
|
|
3849
|
-
return r
|
|
3850
|
-
|
|
3851
|
-
# returns:
|
|
3852
|
-
# { 'Aktivitetstillfallestyp': [ { 'Benamning': { 'en': 'Partial Exam',
|
|
3853
|
-
# 'sv': 'Kontrollskrivning'},
|
|
3854
|
-
# 'Beskrivning': {},
|
|
3855
|
-
# 'Giltighetsperiod': { 'Startdatum': '2018-06-20', 'link': []},
|
|
3856
|
-
# 'ID': '135201',
|
|
3857
|
-
# 'Kod': 'KS',
|
|
3858
|
-
# 'LarosateID': 29, 'link': []},
|
|
3859
|
-
# { 'Benamning': { 'en': 'Re-examination',
|
|
3860
|
-
# 'sv': 'Omtentamen'},
|
|
3861
|
-
# 'Beskrivning': {},
|
|
3862
|
-
# 'Giltighetsperiod': { 'Startdatum': '2018-06-20', 'link': []},
|
|
3863
|
-
# 'ID': '135200',
|
|
3864
|
-
# 'Kod': 'OMTENTA',
|
|
3865
|
-
# 'LarosateID': 29, 'link': []},
|
|
3866
|
-
# { 'Benamning': { 'en': 'Examination',
|
|
3867
|
-
# 'sv': 'Tentamen'},
|
|
3868
|
-
# 'Beskrivning': {},
|
|
3869
|
-
# 'Giltighetsperiod': { 'Startdatum': '2018-06-20', 'link': []},
|
|
3870
|
-
# 'ID': '135199',
|
|
3871
|
-
# 'Kod': 'TENTAMEN',
|
|
3872
|
-
# 'LarosateID': 29, 'link': []},
|
|
3873
|
-
# { 'Benamning': { 'en': 'Unspecified '
|
|
3874
|
-
# 'activity',
|
|
3875
|
-
# 'sv': 'Övrigt '
|
|
3876
|
-
# 'aktivitetstillfälle'},
|
|
3877
|
-
# 'Beskrivning': {},
|
|
3878
|
-
# 'Giltighetsperiod': {'link': []},
|
|
3879
|
-
# 'ID': '1',
|
|
3880
|
-
# 'Kod': 'ÖV',
|
|
3881
|
-
# 'LarosateID': -1, 'link': []}],
|
|
3882
|
-
# 'link': []}
|
|
3883
|
-
# added by GQMJr
|
|
3884
|
-
#####################################################################
|
|
3885
|
-
#
|
|
3886
|
-
# catalog_service_index__JSON
|
|
3887
|
-
#
|
|
3888
|
-
# RETURNERAR JSON of admission round
|
|
3889
|
-
def catalog_service_index__JSON(self):
|
|
3890
|
-
r = self.session.get(
|
|
3891
|
-
url=self.base_gui_proxy_url + "/kataloginformation/service/index",
|
|
1389
|
+
+ "/studiedeltagande/internal/tillfallesdeltagande"
|
|
1390
|
+
+ "/kurstillfallesdeltagande/"
|
|
1391
|
+
+ studentUID,
|
|
3892
1392
|
headers=self.headers,
|
|
3893
|
-
)
|
|
3894
|
-
return r
|
|
1393
|
+
)
|
|
1394
|
+
return r.json()
|
|
3895
1395
|
|
|
3896
|
-
# returns:
|
|
3897
|
-
# { 'ServiceName': 'Ladok3 REST-tjänst för kataloginformation',
|
|
3898
|
-
# 'link': [ { 'mediaType': 'application/vnd.ladok+xml,application/vnd.ladok-kataloginformation+xml,application/vnd.ladok-kataloginformation+json',
|
|
3899
|
-
# 'method': 'GET',
|
|
3900
|
-
# 'rel': 'http://relations.ladok.se/kataloginformation/utbildningstyp',
|
|
3901
|
-
# 'uri': 'https://api.ladok.se:443/kataloginformation/grunddata/utbildningstyp'},
|
|
3902
|
-
# { 'mediaType': 'application/vnd.ladok+xml,application/vnd.ladok-kataloginformation+xml,application/vnd.ladok-kataloginformation+json',
|
|
3903
|
-
# 'method': 'GET',
|
|
3904
|
-
# 'rel': 'http://relations.ladok.se/kataloginformation/betygsskala',
|
|
3905
|
-
# 'uri': 'https://api.ladok.se:443/kataloginformation/grunddata/betygsskala'},
|
|
3906
|
-
# ...
|
|
3907
|
-
# { 'mediaType': 'application/vnd.ladok+xml,application/vnd.ladok-kataloginformation+xml,application/vnd.ladok-kataloginformation+json',
|
|
3908
|
-
# 'method': 'GET',
|
|
3909
|
-
# 'rel': 'http://relations.ladok.se/kataloginformation/anvandarbehorighetlista',
|
|
3910
|
-
# 'uri': 'https://api.ladok.se:443/kataloginformation/behorigheter'}]}
|
|
3911
1396
|
# added by GQMJr
|
|
3912
|
-
|
|
3913
|
-
|
|
3914
|
-
|
|
3915
|
-
|
|
3916
|
-
# RETURNERAR JSON of "omradesbehorighet"
|
|
3917
|
-
# for information see https://antagning.se/globalassets/omradesbehorigheter-hogskolan.pdf
|
|
3918
|
-
def omradesbehorighet_JSON(self):
|
|
1397
|
+
def hamtaStudieResultatForStudent_JSON(self, studentUID):
|
|
1398
|
+
"""
|
|
1399
|
+
Returns the study results for a student.
|
|
1400
|
+
"""
|
|
3919
1401
|
r = self.session.get(
|
|
3920
1402
|
url=self.base_gui_proxy_url
|
|
3921
|
-
+ "/
|
|
3922
|
-
|
|
3923
|
-
).json()
|
|
3924
|
-
return r
|
|
3925
|
-
|
|
3926
|
-
# added by GQMJr
|
|
3927
|
-
#####################################################################
|
|
3928
|
-
#
|
|
3929
|
-
# hamtaStudieResultatForStudent_JSON
|
|
3930
|
-
#
|
|
3931
|
-
# studentUID -- student's UID
|
|
3932
|
-
# RETURNERAR JSON of results
|
|
3933
|
-
|
|
3934
|
-
# NOTE: These are a work in progress and not ready yet
|
|
3935
|
-
# def hamtaStudieResultatForStudent_JSON (self, studentUID):
|
|
3936
|
-
# r = self.session.get(url = self.base_gui_proxy_url + '/resultat/studieresultat/resultat/student/'+studentUID, headers = self.headers).json()
|
|
3937
|
-
# return r
|
|
3938
|
-
|
|
3939
|
-
# def student_participation_JSON (self, studentUID):
|
|
3940
|
-
# headers = self.headers.copy()
|
|
3941
|
-
# headers['Content-Type'] = 'application/vnd.ladok-studiedeltagande'
|
|
3942
|
-
# headers['Accept'] = headers['Accept']+', application/vnd.ladok-studiedeltagande'
|
|
3943
|
-
# r = self.session.get(url = self.base_gui_proxy_url + '/studiedeltagande/tillfallesdeltagande/kurstillfallesdeltagande/'+studentUID, headers = self.headers)
|
|
3944
|
-
# return {r.status_code, r.text}
|
|
3945
|
-
# added by GQMJr
|
|
3946
|
-
#####################################################################
|
|
3947
|
-
#
|
|
3948
|
-
# examen_student_uid_JSON
|
|
3949
|
-
#
|
|
3950
|
-
# studentUID -- student's UID
|
|
3951
|
-
# RETURNERAR JSON of admission round
|
|
3952
|
-
def examen_student_uid_JSON(self):
|
|
3953
|
-
r = self.session.get(
|
|
3954
|
-
url=self.base_gui_proxy_url + "examen/student/+studentUID",
|
|
1403
|
+
+ "/resultat/internal/studieresultat/resultat/student/"
|
|
1404
|
+
+ studentUID,
|
|
3955
1405
|
headers=self.headers,
|
|
3956
1406
|
).json()
|
|
3957
1407
|
return r
|
|
@@ -4443,7 +1893,46 @@ class Student(LadokRemoteData):
|
|
|
4443
1893
|
"""
|
|
4444
1894
|
The list of the students' suspensions.
|
|
4445
1895
|
"""
|
|
4446
|
-
|
|
1896
|
+
suspensions = self.ladok.get_student_suspensions_JSON(self.ladok_id)[
|
|
1897
|
+
"Avstangning"
|
|
1898
|
+
]
|
|
1899
|
+
return [Suspension(**suspension) for suspension in suspensions]
|
|
1900
|
+
|
|
1901
|
+
|
|
1902
|
+
class Suspension(LadokData):
|
|
1903
|
+
"""A suspension"""
|
|
1904
|
+
|
|
1905
|
+
def __init__(self, /, **kwargs):
|
|
1906
|
+
super().__init__(**kwargs)
|
|
1907
|
+
self.__note = kwargs.pop("Anteckning")
|
|
1908
|
+
self.__validity = (
|
|
1909
|
+
datetime.date.fromisoformat(kwargs["Giltighetsperiod"]["Startdatum"]),
|
|
1910
|
+
datetime.date.fromisoformat(kwargs["Giltighetsperiod"]["Slutdatum"]),
|
|
1911
|
+
)
|
|
1912
|
+
|
|
1913
|
+
@property
|
|
1914
|
+
def note(self):
|
|
1915
|
+
"""
|
|
1916
|
+
The note of the suspension. This is usually a case number.
|
|
1917
|
+
"""
|
|
1918
|
+
return self.__note
|
|
1919
|
+
|
|
1920
|
+
@property
|
|
1921
|
+
def validity(self):
|
|
1922
|
+
"""
|
|
1923
|
+
A tuple (start, end) of the validity period of the suspension.
|
|
1924
|
+
"""
|
|
1925
|
+
return self.__validity
|
|
1926
|
+
|
|
1927
|
+
@property
|
|
1928
|
+
def is_current(self):
|
|
1929
|
+
"""
|
|
1930
|
+
Is True if the suspension is currently valid.
|
|
1931
|
+
"""
|
|
1932
|
+
return self.validity[0] <= datetime.date.today() <= self.validity[1]
|
|
1933
|
+
|
|
1934
|
+
def __str__(self):
|
|
1935
|
+
return f"{self.validity[0]}--{self.validity[1]}"
|
|
4447
1936
|
|
|
4448
1937
|
|
|
4449
1938
|
class CourseInstance(LadokRemoteData):
|