-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpopulate_competence.py
More file actions
169 lines (133 loc) · 13.4 KB
/
populate_competence.py
File metadata and controls
169 lines (133 loc) · 13.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'api.settings')
import django
django.setup()
from api.models import User
from api.models import CompetenceProfile
from api.models import Logo
from api.models import ResearchNetwork
from api.models import ResearchProject
from api.models import ResearchCluster
from api.models import ResearchNetworkEvent
from api.models import ResearchNetworkNews
from api.models import Address
"""
Each function encapsulates the logic to create and persist an instance of a specific Django model into the database.
After saving the instance, the function returns the actual object that represents that entry in the database
"""
#These functions create and save instances of Django models to the database.
def create_logo(photo):
logo = Logo(photo=photo)
logo.save()
return logo
def create_research_network_event(name, photo):
research_network_event = ResearchNetworkEvent(name=name, photo=photo)
research_network_event.save()
return research_network_event
def create_research_network_news(title, photo, description, eyecatcher):
research_network_news = ResearchNetworkNews(title=title, photo=photo, description=description, eyecatcher=eyecatcher)
research_network_news.save()
return research_network_news
def create_research_network(shortcut, name, photo, events, description, news, research_description, address):
research_network = ResearchNetwork(shortcut=shortcut,name=name, photo=photo, description=description, research_description= research_description, address=address)
research_network.save()
research_network.events.add(*events)
research_network.news.add(*news)
return research_network
def create_research_project(name, description):
research_project = ResearchProject(name=name, description=description)
research_project.save()
return research_project
def create_research_cluster(name, description):
research_cluster = ResearchCluster(name=name, description=description)
research_cluster.save()
return research_cluster
def create_address(street1, street2, city, state, country, zip):
address = Address(street1=street1, street2=street2, city=city, state=state, country=country, zip=zip)
address.save()
return address
def create_user(firstname, lastname,title, email, position, photo):
user = User(firstname = firstname,lastname = lastname,title=title, email = email, position = position, photo = photo)
user.save()
return user
def create_competence_profile(author, title, shortcut, summary, logos, research_focus, representatives, research_projects, research_networks, research_clusters, publications, address):
competence_profile = CompetenceProfile(author=author, title=title, shortcut=shortcut, summary=summary, research_focus=research_focus,
#representatives=representatives,
address = address,
publications=publications)
competence_profile.save()
competence_profile.logos.add(*logos)
competence_profile.research_networks.add(*research_networks)
competence_profile.research_projects.add(*research_projects)
competence_profile.research_clusters.add(*research_clusters)
competence_profile.representatives.add(*representatives)
return competence_profile
"""
Deletes all entries from specified database tables (CompetenceProfile, User, Logo, etc.).
Ensures a clean slate before populating the database again.
"""
def delete_db():
print('truncate db')
competence_profile_count = CompetenceProfile.objects.all().count()
if competence_profile_count > 1:
CompetenceProfile.objects.all().delete()
user_count = User.objects.all().count()
if user_count > 1:
User.objects.all().delete()
logo_count = Logo.objects.all().count()
if logo_count > 1:
Logo.objects.all().delete()
research_projects_count = ResearchProject.objects.all().count()
if research_projects_count > 1:
ResearchProject.objects.all().delete()
research_networks_count = ResearchNetwork.objects.all().count()
if research_networks_count > 1:
ResearchNetwork.objects.all().delete()
research_clusters_count = ResearchCluster.objects.all().count()
if research_clusters_count > 1:
ResearchCluster.objects.all().delete()
print('finished truncate db')
#Creation of database entries using the functions defined above.
def populate():
user0 = create_user("Henrik", "Wagner", "M. Sc.", "h.wagner@tu-bs.de", "Researcher, Contact Person", "/competence/assets/competence/profile_mock/henrikwagner.png")
user1 = create_user("Bernd", "Engel", "Prof. Dr.-Ing.", "bernd.engel@tu-braunschweig.de", "Representative, Institute Management", "/competence/assets/competence/profile_mock/berndengel.png")
logo0 = create_logo("/media/logos/2022/06/15/tu_braunschweig_logo (2).svg")
logo1 = create_logo("/media/logos/2022/06/15/csm_logo_ELENIA_3006623f42.png")
research_project0 = create_research_project("ALPHEUS - Augmenting grid stability through Low-head Pumped Hydro Energy Utilization & Storage", "Im Rahmen des Projektes ALPHEUS werden konzeptionelle Entwürfe für neue und nachgerüstete PSK-Becken mit niedriger Förderhöhe entworfen. Eine umfassende Beurteilung der mechanischen, elektrischen und strukturellen Komponenten ermöglicht es, die Kosten dieser Systeme zu bestimmen und die Risiken zu bewerten. Tools zur Informations- und Entscheidungsunterstützung werden entwickelt, um das Wissen in die Gesellschaft zu tragen.")
research_project1 = create_research_project("BaSS", "Im Rahmen des Projektes ALPHEUS werden konzeptionelle Entwürfe für neue und nachgerüstete PSK-Becken mit niedriger Förderhöhe entworfen. Eine umfassende Beurteilung der mechanischen, elektrischen und strukturellen Komponenten ermöglicht es, die Kosten dieser Systeme zu bestimmen und die Risiken zu bewerten. Tools zur Informations- und Entscheidungsunterstützung werden entwickelt, um das Wissen in die Gesellschaft zu tragen.")
# Research Network stuff start
research_network_event0 = create_research_network_event("EFZN Event Niedersachsen", "https://www.visit-hannover.com/var/storage/images/_aliases/full/media/01-data-neu/bilder/hmtg/kongress-stadt/locations/panorama/locations-hannover/star-event-center/10784180-1-ger-DE/Star-Event-Center.jpg")
research_network_event1 = create_research_network_event("Research Network Event Niedersachsen", "https://www.research-network.org.uk/wp-content/themes/research/images/research-network-logo.gif")
research_network_event2 = create_research_network_event("Research Network Event Braunschweig", "https://www.efzn.de/typo3conf/ext/demotemplate/Resources/Public/Icons/efzn-logo.svg")
research_network_event3 = create_research_network_event("VIP Event", "https://www.fiylo.de/static/p/3/d/star-event-center-event-06-318c9a30e0.jpg")
address = create_address("Schleinitzstraße 23", "", "Braunschweig", "Niedersachsen", "Deutschland", "38321")
addressefzn = create_address("Am Stollen 19A", "", "Goslar", "Niedersachsen", "Deutschland", "38640")
addressRN2 = create_address("Adolph-Roemer-Straße 2A", "", "Clausthal-Zellerfeld", "Niedersachsen", "Deutschland", "38678")
research_network_news0 = create_research_network_news("This is a title for some exciting news",
"https://www.efzn.de/typo3conf/ext/demotemplate/Resources/Public/Icons/efzn-logo.svg",
"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.",
"Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.")
research_network_news1 = create_research_network_news("Biggest upcoming event ever", "https://www.research-network.org.uk/wp-content/themes/research/images/research-network-logo.gif", "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.",
"Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.")
research_network0 = create_research_network("EFZN","Energie-Forschungszentrum Niedersachsen", "https://www.efzn.de/typo3conf/ext/demotemplate/Resources/Public/Icons/efzn-logo.svg" , [research_network_event0, research_network_event1,research_network_event2,research_network_event3], "Das Energie-Forschungszentrum Niedersachsen (EFZN) ist ein gemeinsames wissenschaftliches Zentrum der Universitäten Braunschweig, Clausthal, Göttingen, Hannover und Oldenburg.",[research_network_news0,research_network_news1], "Die Energieforschungslandschaft in Niedersachsen ist vielgestaltig. Sie ist reich an einzelnen Kompetenzschwerpunkten ebenso wie an gemeinsamer EFZN-Verbundforschung an fünf niedersächsischen Standorten.", addressefzn)
research_network1 = create_research_network("RN1", "Research Network1", "https://www.research-network.org.uk/wp-content/themes/research/images/research-network-logo.gif", [research_network_event1], "Das Energie-Forschungszentrum Niedersachsen (EFZN) ist ein gemeinsames wissenschaftliches Zentrum der Universitäten Braunschweig, Clausthal, Göttingen, Hannover und Oldenburg. Als zentrale Forschungs-, Vernetzungs- und Kommunikationsplattform bündelt es die Energieforschungskompetenzen der Universitätsstandorte aus den Natur- und Ingenieurwissenschaften sowie Rechts-, Sozial- und Wirtschaftswissenschaften und führt die Akteure der Transformation des Energiesystems aus Wissenschaft, Wirtschaft, Politik und Zivilgesellschaft zusammen. (https://www.efzn.de/de/home/)",[], "Die Energieforschungslandschaft in Niedersachsen ist vielgestaltig. Sie ist reich an einzelnen Kompetenzschwerpunkten ebenso wie an gemeinsamer EFZN-Verbundforschung an fünf niedersächsischen Standorten.", None)
research_network2 = create_research_network("Research Network2", "Energie-Forschungszentrum Niedersachsen 2", "https://www.efzn.de/typo3conf/ext/demotemplate/Resources/Public/Icons/efzn-logo.svg", [research_network_event1, research_network_event0], "testdescriptino0", [], "", addressRN2)
research_network3 = create_research_network("RN", "Research Network", "https://www.research-network.org.uk/wp-content/themes/research/images/research-network-logo.gif",[research_network_event0, research_network_event1], "testdescriptino0", [], "", None)
# Research Network stuff end
research_cluster0 = create_research_cluster("Co-Simulation", "Co-Simulation bla")
research_cluster1 = create_research_cluster("Grid Integration of electric vehicles Grid Integration of electric vehicles", "Grid Integration")
competence_profile = create_competence_profile(None, "Elenia Institut an der TU BS", "eleniaa",
"The elenia Institute for High Voltage Technology and Power Systems belongs to the Fakultät 5 für Elektrotechnik, Informationstechnik, Physik of the Technische Universität Braunschweig. In the workgroup Energy Systems of elenia insitute at Technische Universität Braunschweig, our research as well as our teaching is based on the techonological and economic challenges of electrical power supply that the 21st centry offers. At elenia, our research as well as our teaching is based on the technological and economic challenges of electrical power supply that the 21st century offers. Our three focus groups smart grid, electric mobility, and components for power supply, work on various current research questions. Some exemplary topics in this broad field of study at the elenia are the integration of renewable resources in future energy supply systems, the charging behaviour of electric vehicles, and the analysis of switch gear.",
# [logo0, logo1],
[] ,
"Am elenia werden verschiedene Forschungsprojekte mit unterschiedlichen Schwerpunkten im Bereich der elektrischen Energieversorgung bearbeiten. Nachfolgend ist eine Auswahl zur aktuellen Forschung und Entwicklung zu sehen. Aus dem Strategieprozess der TU Braunschweig hat sich als ein Schwerpunkt die Mobilität ergeben. Die strategische Ausrichtung innerhalb dieses Themenfeldes wird durch die erstmalige Einführung des Masterstudiengangs „Elektromobilität“ zum WS 14/15 unterstrichen. An der Umsetzung ist das elenia mit einer Reihe von Vorlesungen beteiligt. Durch die Forschungsinfrastruktur des Niedersächsischen Forschungszentrums Fahrzeugtechnik (NFF) und der Battery LabFactory Braunschweig (BLB) ist das elenia in interdisziplinären Projekten zur Elektromobilitätsforschung aktiv integriert. Die Kompetenzen sind dabei in den Bereichen der Ladeinfrastruktur und dem Lademanagement mit dem Ziel der System- und Netzintegration von Elektrofahrzeugen und der Batterietechnik. Wir forschen entlang des gesamten Lebenszyklus einer Batterie von der Herstellung über die Mobilitätsanwendung hin zur SecondLife-Anwendung.",
[user0, user1], [research_project0, research_project1], [research_network0, research_network1, research_network2, research_network3], [research_cluster0, research_cluster1], "https://bibbase.org/show?bib=https://dblp.org/pid/82/359.bib&jsonp=1"
, address)
print('populated competence_profile: ' + str(competence_profile))
"""
Executes the populate() function.
Initializes the population of the database.
"""
if __name__ == '__main__':
print("Starting Population script...")
populate()