WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
from django.core.management.base import BaseCommand
from seshat.apps.core.models import HabitationSite
from seshat.apps.stlm.models import (
Number_of_ziggurats, Number_of_palaces, Number_of_temples,
Defensive_wall, Tablet, Seal_indicator
)

from seshat.apps.stlm.allen_data_sample import full_dic

MODEL_MAP = {
"number_of_ziggurats": Number_of_ziggurats,
"number_of_palaces": Number_of_palaces,
"number_of_temples": Number_of_temples,
"defensive_wall": Defensive_wall,
"tablet": Tablet,
"seal_indicator": Seal_indicator,
}


class Command(BaseCommand):
help = "Import city variable data into the database"

def handle(self, *args, **options):
for var_name, records in full_dic.items():
Model = MODEL_MAP.get(var_name)
if not Model:
self.stdout.write(self.style.WARNING(f"Model not found for var_name: {var_name}"))
continue

for entry in records:
try:
city = HabitationSite.objects.get(name=entry["name"])
except HabitationSite.DoesNotExist:
self.stdout.write(self.style.WARNING(f"City not found: {entry['name']}"))
continue

obj = Model.objects.create(
settlement=city,
year_from=entry["period_start"],
year_to=entry["period_end"],
general_ref_id = 4,
)

# Set coded value
if hasattr(obj, "count"):
obj.count = entry["coded_val"]
elif hasattr(obj, "present"):
obj.present = bool(entry["coded_val"])

obj.save()
self.stdout.write(self.style.SUCCESS(f"Created {var_name} for {city.name} ({entry['period_start']}–{entry['period_end']})"))

self.stdout.write(self.style.SUCCESS("Import completed."))
2 changes: 1 addition & 1 deletion seshat/apps/core/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -1604,7 +1604,7 @@ class SeshatCityCommon(models.Model):
tag = models.CharField(max_length=5, choices=CityTags, default="1")
is_disputed = models.BooleanField(default=False, blank=True, null=True)
is_uncertain = models.BooleanField(default=False, blank=True, null=True)
expert_reviewed = models.BooleanField(null=True, blank=True, default=True)
expert_reviewed = models.BooleanField(null=True, blank=True, default=False)
curator = models.ManyToManyField(Seshat_Expert, related_name="%(app_label)s_%(class)s_related",
related_query_name="%(app_label)s_%(class)ss", blank=True,)
comment = models.ForeignKey(SeshatComment, on_delete=models.SET_NULL, related_name="%(app_label)s_%(class)s_related", related_query_name="%(app_label)s_%(class)s", null=True, blank=True)
Expand Down
114 changes: 113 additions & 1 deletion seshat/apps/core/templates/core/polity/settlement_detail.html
Original file line number Diff line number Diff line change
Expand Up @@ -235,6 +235,15 @@
background-color: white; /* Optional */
}

.shadow-box-2 {
/* Light gray shadow */
box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1);
/* Optional: Add a border if you like */
border: 1px solid #b4d2ac;
padding: 0px; /* Adjust as needed 23212529 */
background-color: white; /* Optional */
}

.accordion-body {
padding:0px !important;
}
Expand Down Expand Up @@ -646,11 +655,114 @@ <h4>Population Over Time</h4>
</table>

</div>





</div>

{% if allen_data_dic %}


<h4 class="pt-4">Allen Data</h4>

<div class="row">
<div class="col-md-12" id="population-table">








<table class="table mb-2 shadow-box-2" style="width: 100%;">
<thead>
<tr class="bg-primary text-white">
<td>Variable</td>
<td>Coded Value</td>

<td>Year(s)</td>
<td>Scientific Resource</td>
</tr>
</thead>
<tbody>
{% for k, v in allen_data_dic.items %}

{% for vv in v %}
<tr>
<td class="px-2">
<span class="h6 text-dark fw-bold">{{ k }}</span>
</td>
<td class="px-2">
<span class="h6 text-dark fw-bold">{{ vv.show_value }}</span>
</td>
{% if vv.year_from == None and vv.year_to == None %}
<td>
</td>

{% else %}
<td style="padding-top:5px;">
<span class="text-secondary fw-bold fs-6" style="border-radius:5px">
{% if vv.year_from == None %}
&nbsp;
{% elif vv.year_from == vv.year_to %}
{% if vv.year_from < 0 %}
{{ vv.year_from|abs }}
<span class="text-secondary fw-light fs-6">BCE</span>
{% else %}
{{ vv.year_from }}
<span class="text-secondary fw-light fs-6">CE</span>
{% endif %}
{% elif vv.year_to == None %}
{% if vv.year_from < 0 %}
{{ vv.year_from|abs }}
<span class="text-secondary fw-light fs-6">BCE</span>
{% else %}
{{ vv.year_from }}
<span class="text-secondary fw-light fs-6">CE</span>
{% endif %}
{% elif vv.year_to == None and vv.year_from == None %}
<i class="fa-solid fa-minus"></i>
{% else %}
{% if vv.year_from < 0 and vv.year_to < 0 %}
{{ vv.year_from|abs }}
<span class="text-secondary fw-light fs-6">BCE</span>
<i class="fas fa-long-arrow-alt-right"></i> {{ vv.year_to|abs }}
<span class="text-secondary fw-light fs-6">BCE</span>
{% elif vv.year_from < 0 and vv.year_to >= 0 %}
{{ vv.year_from|abs }}
<span class="text-secondary fw-light fs-6">BCE</span>
<i class="fas fa-long-arrow-alt-right"></i> {{ vv.year_to }}
<span class="text-secondary fw-light fs-6">CE</span>
{% else %}
{{ vv.year_from }}
<span class="text-secondary fw-light fs-6">CE</span>
<i class="fas fa-long-arrow-alt-right"></i> {{ vv.year_to }}
<span class="text-secondary fw-light fs-6">CE</span>
{% endif %}
{% endif %}
</span>
</td>

<td>

<span class="bg-secondary text-white rounded px-3" style="vertical-align:center;">{{vv.general_ref.title}}</span>

</td>
{% endif %}
</tr>
{% endfor %}

{% endfor %}
</tbody>

</table>

</div>
</div>
{% endif %}



</div>
Expand Down
76 changes: 76 additions & 0 deletions seshat/apps/core/templates/core/polity/settlement_list.html
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,63 @@

}


.bg-info-light {
background: #ffffff; /* rgb(134, 134, 134);*/
color: dodgerblue;
border: 1px solid rgba(30, 143, 255, 0.178);
background: rgba(30, 143, 255, 0.06);

}

.bg-danger-light {
background: lightpink;

}

.my_small_link:hover {
color:navajowhite;
}

.bg-success-light {
background: #ffffff; /* rgb(134, 134, 134);*/
color: teal;
border: 1px solid rgba(0, 128, 128, 0.18);
background: rgba(0, 128, 128, 0.08);

}

.bg-success-light-small {
background: #ffffff; /* rgb(134, 134, 134);*/
color: teal;
padding-bottom:1px;
padding-top:2px;
padding-left:2px;
padding-right:2px;

border: 1px solid rgba(0, 128, 128, 0.18);
background: rgba(0, 128, 128, 0.08);

}

.bg-warning-light {
background: #ffffff; /* rgb(134, 134, 134);*/
color: darkorange;
border: 1px solid goldenrod;
}

.bg-uncoded-light {
background: #ffffff; /* rgb(134, 134, 134);*/
color: darkred;
border: 1px solid rosybrown;
}

.bg-trans-light {
background: cadetblue;

}


.tight-link {
margin: 0;
padding: 0;
Expand All @@ -101,6 +158,13 @@
justify-content: center; /* optional: center badges horizontally */
}


.bg-absent-light {
background: #ffffff; /* rgb(134, 134, 134);*/
color: gray;
border: 1px solid lightgray;

}


</style>
Expand Down Expand Up @@ -258,6 +322,7 @@ <h2 class="fs-2 ps-2 ms-2 py-2 mt-3 custom-left-border-shadowed" style="display:
<th class="ps-2 fw-normal" style="border: 0px solid red !important;"> <i class="fa-solid fa-circle-chevron-right fa-xs text-secondary"></i> &nbsp; Name
<small class="text-secondary"> &nbsp;(Alternative Names)</small> </th>
<th class="ps-2 fw-normal" style="border: 0px solid red !important;"> Coordinates </th>
<th class="ps-2 fw-normal" style="border: 0px solid red !important;"> Datasets </th>
<th class="ps-2 fw-normal" style="border: 0px solid red !important; text-align:right;"> Current Country </th>
</tr>
</thead>
Expand All @@ -278,6 +343,17 @@ <h2 class="fs-2 ps-2 ms-2 py-2 mt-3 custom-left-border-shadowed" style="display:
<td class="col-md-3 ps-2 py-2 fw-bold" style="text-align: left; ">
({{ a_city.latitude|floatformat:2 }}, {{ a_city.longitude|floatformat:2 }})
</td>
<td>
{% if a_city.has_allen_data %}
<span class="badge bg-success-light" ><i class="fa-solid fa-database"></i> &nbsp; Allen</span>
{% endif %}
{% if a_city.has_pop_data %}
<span class="badge bg-info-light" >👥 &nbsp; Population</span>
{% endif %}
{% if a_city.has_rels %}
<span class="badge bg-absent-light" >🏛 &nbsp; Polity</span>
{% endif %}
</td>
<td class="col-md-3 ps-2 py-2" style="text-align: right; ">
<span >
<img src="https://flagsapi.com/{{a_city.current_country_obj.flag_code }}/flat/24.png" style="border-radius: 50%;">
Expand Down
Loading
Loading