Browse Source

extra page added for exhb list

graphics
Cailean Finn 3 weeks ago
parent
commit
b22db506a9
  1. 17
      app.py
  2. 38
      public/css/styles.css
  3. BIN
      public/images/support/Goethe Institut irland.png
  4. 19
      templates/_ex.html
  5. 7
      templates/_list-header.html
  6. 71
      templates/_scrap.html
  7. 55
      templates/list-exhibitions.html
  8. 90
      templates/list.html

17
app.py

@ -26,8 +26,16 @@ def events():
@app.route('/exhibitions') @app.route('/exhibitions')
def exhibitions(): def exhibitions():
return render_template('list.html', title='Exhibitions')
@app.route('/exhibitions/<type>')
def exhibition_type(type):
if type == "local-artists-network":
type = "LAN"
elif type == "unsettling-the-algorithm":
type = "UTA"
exhibitions = get_all_content('exhibition') exhibitions = get_all_content('exhibition')
return render_template('list.html', title='Exhibitions', content=exhibitions) return render_template('list-exhibitions.html', title="Exhibitions", content=exhibitions, type=type)
@app.route('/conferences') @app.route('/conferences')
def conference(): def conference():
@ -57,9 +65,9 @@ def get_content_by_title(title, pre_type):
def process_content(entries, type): def process_content(entries, type):
content_list = [] content_list = []
exh_type = None exh_type = None
for entry in entries: for entry in entries:
# Clear arrays
times = [] times = []
dates = [] dates = []
if type == 'event': if type == 'event':
@ -86,7 +94,6 @@ def process_content(entries, type):
try: try:
bookUrl = getattr(entry, 'book_url') bookUrl = getattr(entry, 'book_url')
print(bookUrl)
except: except:
bookUrl = None bookUrl = None
@ -103,8 +110,8 @@ def process_content(entries, type):
} }
content_list.append(content) content_list.append(content)
print(dates)
# Sort the content list by the 'title' key alphabetically # Sort the content list by the 'title' key alphabetically
content_list.sort(key=lambda x: x['title'].lower()) content_list.sort(key=lambda x: x['title'].lower())
return content_list return content_list

38
public/css/styles.css

@ -471,9 +471,11 @@ hr {
} }
.list-header { .list-header {
font-size: 18px; font-size: 36px;
text-transform: uppercase; text-transform: uppercase;
font-weight: 700; font-weight: 700;
color: #0075FF;
text-decoration: underline;
} }
#page-header { #page-header {
@ -719,6 +721,40 @@ hr {
padding: 10px; padding: 10px;
} }
.exh-container {
flex-direction: column;
display: flex;
width: 60%;
justify-content: left;
gap: 20px;
margin-bottom: 100px;
text-transform: uppercase;
}
.exh-container p {
text-indent: 2rem;
text-transform: none;
font-size: 18px;
}
.exh-container h1 {
text-decoration: underline;
cursor: pointer;
}
.exh-info {
margin-top: 25px;
display: flex;
flex-direction: column;
gap: 25px;
}
.exh-info p{
text-indent: 0;
display: flex;
font-weight: 500;
}
@keyframes fadeInUp { @keyframes fadeInUp {

BIN
public/images/support/Goethe Institut irland.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 354 KiB

After

Width:  |  Height:  |  Size: 320 KiB

19
templates/_ex.html

@ -0,0 +1,19 @@
<div class="exh-container">
<a href="exhibitions/unsettling-the-algorithm"><h1>Unsettling The Algorithm ↑</h1></a>
<p>Increasingly our lives are lived within digital systems and infrastructures. Our online clicks and browsing habits are a key component of technical systems designed and optimised for profit through surveillance and tracking. Whether online shopping or browsing dating apps , these algorithmic systems not only track and predict but determine what information we see and what realities we make from it. Platform boosted disinformation has the capacity to influence elections and instigate riots, while AI generated images spread propaganda and anti-science clickbait turns profits. As software syncs across networks and platforms, and the economics of platforms become intrinsic to everyday life, our behaviour online increasingly conforms to data profiles and model user behaviour.</p>
<p>Seeds of Resistance questions this growing encapsulation of life, and asks how we can reclaim our agency within the systems that seek to control and influence us. Highlighting not only the mechanisms of control but also the subversive strategies that push against them, the works in the exhibition demonstrate the unfolding politics of extractive platforms and networks, and the possibilities for resistance and dissent within them. Imposing acts of defiance with and through technology, the artists show how subversive coding practices can challenge state surveillance, how virtual environments can reclaim marginalised cultural memory, or how wasting the time of CEOs and executives can make material gains against climate collapse. Moving beyond resistance and acting with new forms of agency, Seeds of Resistance subverts, resists and defies — demonstrating how opportunities for transformation still exist.</p>
<p>Featuring works by: !Mediengruppe Bitnik, Basil Al-Rawi, Caroline Campbell, Firas Shehadeh, Jennifer Gradecki and Derek Curry, Nora Al Badri, Patricia Domínguez and Suzanne Treister, Sebastian Schmieg, Tega Brain and Sam Lavigne, and TzuTung Lee and Winnie Soon.</p>
<div class="exh-info">
<p>Date: 1 -> 17 November</p>
<p>Location: The Bank, Digital Hub, Thomas St</p>
</div>
</div>
<div class="exh-container">
<a href="exhibitions/local-artists-network"><h1>Local Artists Networks ↑</h1></a>
<p>Local Networks spotlights exciting Irish voices with emergent practices. This strand of the programme is dedicated to new work by some of Ireland’s most exciting artists experimenting with art and technology featuring new work from Pallas Projects artist Conan McIvor and new commissions from Aisling Phelan, Cailean Finn and Screen Service artists Aindriú Ó’Deasún and Mel Galley.</p>
<div class="exh-info">
<p>Date: 1 -> 17 November</p>
<p>Location: The Bank, Digital Hub, Thomas St</p>
</div>
</div>

7
templates/_list-header.html

@ -0,0 +1,7 @@
<div id="page-header">
<a href="/exhibitions"><div class="hyperlink-header" id="exhibitions">\Exhibitions</div></a>
<a href="/events"><div class="hyperlink-header" id="events">\Events</div></a>
<a href="/conferences"><div class="hyperlink-header" id="conferences">\Conferences</div></a>
</div>
<hr>

71
templates/_scrap.html

@ -0,0 +1,71 @@
<hr>
<div class="list-header">
Unsettling the Algorithm
</div>
<div id="list-container" class="fadeInUp-animation">
{% for event in content %}
{% if event.exh_type == "UTA"%}
<a href='/{{ title.lower() }}/{{ event.title }}'>
<div class="list">
<div class="list-image">
<img src="{{ event.image }}" alt="{{ event.title }}" loading="lazy">
<div class="list-image-overlay"></div>
</div>
<div class="list-title">{{ event.title }}</div>
<div class="list-artists">
<p>{{ event.artists | join(', ') }}</p>
</div>
<div class="list-details">
{% if event.dates %}
<div class="list-date">● {{ event.dates | join(', ') }}</div>
{% endif %}
{% if event.times %}
<div class="list-date">● {{ event.times | join(', ')}}</div>
{% endif %}
<div class="list-date">● {{ event.location[0] }}</div>
</div>
</div>
</a>
{% endif %}
{% endfor %}
</div>
<hr>
<div class="list-header">
Local Artists Network
</div>
<div id="list-container" class="fadeInUp-animation">
{% for event in content %}
{% if event.exh_type == "LAN"%}
<a href='/{{ title.lower() }}/{{ event.title }}'>
<div class="list">
<div class="list-image">
<img src="{{ event.image }}" alt="{{ event.title }}" loading="lazy">
<div class="list-image-overlay"></div>
</div>
<div class="list-title">{{ event.title }}</div>
<div class="list-artists">
<p>{{ event.artists | join(', ') }}</p>
</div>
<div class="list-details">
{% if event.dates %}
<div class="list-date">● {{ event.dates | join(', ') }}</div>
{% endif %}
{% if event.times %}
<div class="list-date">● {{ event.times | join(', ')}}</div>
{% endif %}
<div class="list-date">● {{ event.location[0] }}</div>
</div>
</div>
</a>
{% endif %}
{% endfor %}
</div>

55
templates/list-exhibitions.html

@ -0,0 +1,55 @@
{% extends "base.html" %}
{% block title %}{{ '| '+ title }}{% endblock %}
{% block content %}
<div id="main-wrapper">
{% include '_nav.html' %}
{% include '_list-header.html'%}
<div id="main-container">
{% if type == "UTA" %}
<div class="list-header">
Unsettling the Algorithm
</div>
{% endif %}
{% if type == "LAN" %}
<div class="list-header">
Local Artists Network
</div>
{% endif %}
<div id="list-container" class="fadeInUp-animation">
{% for event in content %}
{% if event.exh_type == type %}
<a href='/{{ title.lower() }}/{{ event.title }}'>
<div class="list">
<div class="list-image">
<img src="{{ event.image }}" alt="{{ event.title }}" loading="lazy">
<div class="list-image-overlay"></div>
</div>
<div class="list-title">{{ event.title }}</div>
<div class="list-artists">
<p>{{ event.artists | join(', ') }}</p>
</div>
<div class="list-details">
{% if event.dates %}
<div class="list-date">● {{ event.dates | join(', ') }}</div>
{% endif %}
{% if event.times %}
<div class="list-date">● {{ event.times | join(', ')}}</div>
{% endif %}
<div class="list-date">● {{ event.location[0] }}</div>
</div>
</div>
</a>
{% endif %}
{% endfor %}
</div>
</div>
</div>
<div id="container"></div>
<script type="module" src="{{ url_for('static', filename='js/list.js') }}"></script>
<script type="module" src="{{ url_for('static', filename='js/skybox.js') }}"></script>
{% endblock content %}

90
templates/list.html

@ -5,102 +5,24 @@
{% block content %} {% block content %}
<div id="main-wrapper"> <div id="main-wrapper">
{% include '_nav.html' %} {% include '_nav.html' %}
<div id="page-header"> {% include '_list-header.html'%}
<a href="/exhibitions"><div class="hyperlink-header" id="exhibitions">\Exhibitions</div></a>
<a href="/events"><div class="hyperlink-header" id="events">\Events</div></a>
<a href="/conferences"><div class="hyperlink-header" id="conferences">\Conferences</div></a>
</div>
<hr>
<div id="main-container"> <div id="main-container">
<div id="list-info-container"> <div id="list-info-container">
{% if title == 'Conferences'%} {% if title == 'Conferences'%}
<p id="list-info-text">Beta’s conference of discussions and workshops will return this year including keynotes from Abeba Birhane and Kay Watson with the full programme due to be announced and tickets available from mid September.</p> <p id="list-info-text">Beta’s conference of discussions and workshops will return this year including keynotes from Abeba Birhane and Kay Watson with the full programme due to be announced and tickets available from mid September.</p>
{% endif %} {% endif %}
{% if title == 'Exhibitions'%}
<p class="list-info-text"><u>This year Beta Festival will have two main exhibitions:</u></p>
<p class="list-info-text">An international thematic exhibition curated by Nora O’ Murchú and Aisling Murray called <b>Unsettling the Algorithm</b> including works by: !Mediengruppe Bitnik, Basil Al-Rawi, Caroline Campbell, Firas Shehadeh, Jennifer Gradecki and Derek Curry, Nora Al Badri, Patricia Domínguez and Suzanne Treister, Sebastian Schmieg, Tega Brain and Sam Lavigne, and TzuTung Lee and Winnie Soon.</p>
<p class="list-info-text"><b>Local Artist Networks</b> spotlights exciting Irish voices with emergent practices. This strand of the programme is dedicated to new work by some of Ireland’s most exciting artists experimenting with art and technology this year this includes new work from Pallas Studios/Project artist Conan McIvor and new commissions from Aisling Phelan, Cailean Finn and Screen Service artists Mel Galley and Aindriú Ó’Deasún.</p>
{% endif %}
{% if title == 'Events'%} {% if title == 'Events'%}
<p class="list-info-text">Beta Festival will feature a variety of performances, workshops and discussions as part of this year's programme including collaborations with D.A.T.A., Base, Fire Station Artists Studios, Creative Futures Academy and Creative Sparks Fab Lab.</p> <p class="list-info-text">Beta Festival will feature a variety of performances, workshops and discussions as part of this year's programme including collaborations with D.A.T.A., Base, Fire Station Artists Studios, Creative Futures Academy and Creative Sparks Fab Lab.</p>
<p class="list-info-text">We will also present Noire, the Cannes award-winning immersive experience directed by Stéphane Foenkinos and Pierre-Alain Giraud, based on the work by Tania de Montaigne, produced by Novaya in partnership with the Centre Pompidou, co-produced with Flash Forward Entertainment (Taiwan).</p> <p class="list-info-text">We will also present Noire, the Cannes award-winning immersive experience directed by Stéphane Foenkinos and Pierre-Alain Giraud, based on the work by Tania de Montaigne, produced by Novaya in partnership with the Centre Pompidou, co-produced with Flash Forward Entertainment (Taiwan).</p>
{% endif %} {% endif %}
</div>
{% if title == 'Exhibitions'%}
<hr>
<div class="list-header">
Unsettling the Algorithm
</div>
<div id="list-container" class="fadeInUp-animation"> {% if title == 'Exhibitions' %}
{% include '_ex.html' %}
{% for event in content %} {% endif %}
{% if event.exh_type == "UTA"%}
<a href='/{{ title.lower() }}/{{ event.title }}'>
<div class="list">
<div class="list-image">
<img src="{{ event.image }}" alt="{{ event.title }}" loading="lazy">
<div class="list-image-overlay"></div>
</div>
<div class="list-title">{{ event.title }}</div>
<div class="list-artists">
<p>{{ event.artists | join(', ') }}</p>
</div>
<div class="list-details">
{% if event.dates %}
<div class="list-date">● {{ event.dates | join(', ') }}</div>
{% endif %}
{% if event.times %}
<div class="list-date">● {{ event.times | join(', ')}}</div>
{% endif %}
<div class="list-date">● {{ event.location[0] }}</div>
</div>
</div>
</a>
{% endif %}
{% endfor %}
</div>
<hr>
<div class="list-header">
Local Artists Network
</div> </div>
<div id="list-container" class="fadeInUp-animation">
{% for event in content %}
{% if event.exh_type == "LAN"%}
<a href='/{{ title.lower() }}/{{ event.title }}'>
<div class="list">
<div class="list-image">
<img src="{{ event.image }}" alt="{{ event.title }}" loading="lazy">
<div class="list-image-overlay"></div>
</div>
<div class="list-title">{{ event.title }}</div>
<div class="list-artists">
<p>{{ event.artists | join(', ') }}</p>
</div>
<div class="list-details">
{% if event.dates %}
<div class="list-date">● {{ event.dates | join(', ') }}</div>
{% endif %}
{% if event.times %}
<div class="list-date">● {{ event.times | join(', ')}}</div>
{% endif %}
<div class="list-date">● {{ event.location[0] }}</div>
</div>
</div>
</a>
{% endif %}
{% endfor %}
</div>
{% endif %}
{% if title == 'Conferences' or title == 'Events'%} {% if title == 'Conferences' or title == 'Events'%}
<div id="list-container" class="fadeInUp-animation"> <div id="list-container" class="fadeInUp-animation">
@ -131,8 +53,6 @@
{% endfor %} {% endfor %}
</div> </div>
{% endif %} {% endif %}
</div> </div>
</div> </div>
<div id="container"></div> <div id="container"></div>

Loading…
Cancel
Save