Compare commits
15 Commits
5e33be47a7
...
59229f280b
Author | SHA1 | Date | |
---|---|---|---|
![]() |
59229f280b | ||
![]() |
4c57725862 | ||
![]() |
8ded12a7cf | ||
![]() |
0180242d2a | ||
![]() |
bf29716008 | ||
![]() |
2027adaaba | ||
![]() |
05abc7f386 | ||
![]() |
c1d70301c9 | ||
![]() |
323002ffe1 | ||
![]() |
a49a2cadc5 | ||
![]() |
a733efa173 | ||
![]() |
ce776a6297 | ||
![]() |
7126b7b006 | ||
![]() |
ba4eb27ae3 | ||
![]() |
375713717a |
16
devel/migrations/0011_userprofile_social.py
Normal file
16
devel/migrations/0011_userprofile_social.py
Normal file
@@ -0,0 +1,16 @@
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('devel', '0010_merge_20230312_1527'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='userprofile',
|
||||
name='social',
|
||||
field=models.CharField(blank=True, max_length=200, null=True),
|
||||
),
|
||||
]
|
@@ -40,6 +40,9 @@ class UserProfile(models.Model):
|
||||
website = models.URLField(max_length=200, null=True, blank=True)
|
||||
website_rss = models.URLField(max_length=200, null=True, blank=True,
|
||||
help_text='RSS Feed of your website for planet.archlinux.org')
|
||||
social = models.URLField(max_length=200, null=True, blank=True,
|
||||
verbose_name="Social account URL",
|
||||
help_text="Mastodon or Fediverse account URL")
|
||||
yob = models.IntegerField("Year of birth", null=True, blank=True,
|
||||
validators=[MinValueValidator(1950), MaxValueValidator(2500)])
|
||||
country = CountryField(blank=True)
|
||||
|
@@ -1,5 +1,5 @@
|
||||
import json
|
||||
from datetime import datetime
|
||||
from datetime import datetime, timezone
|
||||
from operator import attrgetter
|
||||
|
||||
from django.contrib.auth.models import User
|
||||
@@ -99,7 +99,7 @@ def keys(request):
|
||||
user_key_ids = frozenset(user.userprofile.pgp_key[-16:] for user in users
|
||||
if user.userprofile.pgp_key)
|
||||
|
||||
not_expired = Q(expires__gt=datetime.utcnow()) | Q(expires__isnull=True)
|
||||
not_expired = Q(expires__gt=datetime.now(timezone.utc)) | Q(expires__isnull=True)
|
||||
master_keys = MasterKey.objects.select_related('owner', 'revoker',
|
||||
'owner__userprofile', 'revoker__userprofile').filter(
|
||||
revoked__isnull=True)
|
||||
@@ -155,7 +155,7 @@ def keys_json(request):
|
||||
'group': 'master'
|
||||
} for key in master_keys)
|
||||
|
||||
not_expired = Q(expires__gt=datetime.utcnow()) | Q(expires__isnull=True)
|
||||
not_expired = Q(expires__gt=datetime.now(timezone.utc)) | Q(expires__isnull=True)
|
||||
signatures = PGPSignature.objects.filter(not_expired, revoked__isnull=True)
|
||||
edge_list = [{ 'signee': sig.signee, 'signer': sig.signer }
|
||||
for sig in signatures]
|
||||
|
@@ -1,5 +1,5 @@
|
||||
from base64 import b64encode
|
||||
from datetime import datetime
|
||||
from datetime import datetime, timezone
|
||||
|
||||
import pytest
|
||||
from bencode import bencode
|
||||
@@ -24,7 +24,7 @@ def torrent_data():
|
||||
data = {
|
||||
'comment': 'comment',
|
||||
'created_by': 'Arch Linux',
|
||||
'creation date': int(datetime.utcnow().timestamp()),
|
||||
'creation date': int(datetime.now(timezone.utc).timestamp()),
|
||||
'info': {
|
||||
'name': 'arch.iso',
|
||||
'length': 1,
|
||||
|
@@ -1,19 +1,19 @@
|
||||
-e git+https://github.com/fredj/cssmin.git@master#egg=cssmin
|
||||
Django==5.0.14
|
||||
Django==5.1.10
|
||||
IPy==1.1
|
||||
Markdown==3.3.7
|
||||
bencode.py==4.0.0
|
||||
django-countries==7.6.1
|
||||
django-extensions==3.2.3
|
||||
django-extensions==4.1
|
||||
jsmin==3.0.1
|
||||
pgpdump==1.5
|
||||
parse==1.20.2
|
||||
sqlparse==0.5.0
|
||||
django-csp==3.8
|
||||
django-csp==4.0
|
||||
ptpython==2.0.4
|
||||
feedparser==6.0.11
|
||||
bleach==6.0.0
|
||||
requests==2.32.3
|
||||
requests==2.32.4
|
||||
xtarfile==0.2.1
|
||||
zstandard==0.23.0
|
||||
django-prometheus==2.3.1
|
||||
|
@@ -324,6 +324,10 @@ function filter_signoffs() {
|
||||
/* start with all rows, and then remove ones we shouldn't show */
|
||||
var rows = $('#tbody_signoffs').children(),
|
||||
all_rows = rows;
|
||||
/* apply the filters, cheaper ones first */
|
||||
if ($('#id_mine_only').is(':checked')) {
|
||||
rows = rows.filter('.mine');
|
||||
}
|
||||
/* apply arch and repo filters */
|
||||
$('#signoffs_filter .arch_filter').add(
|
||||
'#signoffs_filter .repo_filter').each(function() {
|
||||
@@ -352,6 +356,7 @@ function filter_signoffs() {
|
||||
function filter_signoffs_reset() {
|
||||
$('#signoffs_filter .arch_filter').prop('checked', true);
|
||||
$('#signoffs_filter .repo_filter').prop('checked', true);
|
||||
$('#id_mine_only').prop('checked', false);
|
||||
$('#id_pending').prop('checked', false);
|
||||
filter_signoffs();
|
||||
}
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 7.4 KiB |
Binary file not shown.
Before Width: | Height: | Size: 3.7 KiB |
@@ -16,7 +16,7 @@
|
||||
<th>Multilib Version</th>
|
||||
<th>x86_64 Version</th>
|
||||
<th>x86_64 Name</th>
|
||||
<th>x864_ Repo</th>
|
||||
<th>x86_64 Repo</th>
|
||||
<th>Multilib Last Updated</th>
|
||||
<th>x86_64 Last Updated</th>
|
||||
</tr>
|
||||
|
@@ -26,6 +26,8 @@
|
||||
<div><label for="id_repo_{{ repo_name|lower }}" title="Target Repository {{ repo_name }}">[{{ repo_name|lower }}]</label>
|
||||
<input type="checkbox" name="repo_{{ repo_name|lower }}" id="id_repo_{{ repo_name|lower }}" class="repo_filter" value="{{ repo_name|lower }}" checked="checked"/></div>
|
||||
{% endfor %}
|
||||
<div><label for="id_mine_only" title="Show only packages packaged by me">Only Mine</label>
|
||||
<input type="checkbox" name="mine_only" id="id_mine_only" value="mine_only"/></div>
|
||||
<div><label for="id_pending" title="Packages with not enough signoffs">Only Pending Approval</label>
|
||||
<input type="checkbox" name="pending" id="id_pending" value="pending"/></div>
|
||||
<div><label> </label><input title="Reset search criteria" type="button" id="criteria_reset" value="Reset"/></div>
|
||||
@@ -50,7 +52,8 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="tbody_signoffs">
|
||||
{% for group in signoff_groups %}<tr class="{{ group.arch.name }} {{ group.target_repo|lower }}">
|
||||
{% for group in signoff_groups %}
|
||||
<tr class="{% if user == group.packager %} mine{% endif %} {{ group.arch.name }} {{ group.target_repo|lower }}">
|
||||
<td>{% pkg_details_link group.package %} {{ group.version }}</td>
|
||||
<td>{{ group.arch.name }}</td>
|
||||
<td>{{ group.target_repo }}</td>
|
||||
|
@@ -49,6 +49,11 @@
|
||||
<td>{% if prof.website %}<a itemprop="url" href="{{ prof.website }}"
|
||||
title="Visit the website for {{ dev.get_full_name }}">
|
||||
{{ prof.website }}</a>{% endif %}</td>
|
||||
</tr><tr>
|
||||
<th>Social:</th>
|
||||
<td>{% if prof.social %}<a itemprop="url" href="{{ prof.social }}"
|
||||
title="Visit social account for {{ dev.get_full_name }}" rel="me">
|
||||
{{ prof.social }}</a>{% endif %}</td>
|
||||
</tr><tr>
|
||||
<th>Occupation:</th>
|
||||
<td>{{ prof.occupation }}</td>
|
||||
|
@@ -53,17 +53,6 @@
|
||||
<img src="{% static "nitrokey_logo.png" %}"
|
||||
class="sponsor-btn-nitrokey" title="" alt="Nitrokey logo"/></a>
|
||||
|
||||
<p>We would also like to thank <a href="https://www.privateinternetaccess.com/"
|
||||
title="Private Internet Access">Private Internet Access</a> for sponsoring
|
||||
dedicated servers across the globe. Private Internet Access is the leading
|
||||
VPN Service provider specializing in secure, encrypted VPN tunnels which
|
||||
create several layers of privacy and security providing users safety on the
|
||||
internet.</p>
|
||||
|
||||
<a href="https://www.privateinternetaccess.com/" title="Private Internet Access">
|
||||
<img src="{% static "pia_logo.png" %}"
|
||||
class="sponsor-btn-pia" title="" alt="Private Internet Access logo"/></a>
|
||||
|
||||
<p>We would also like to thank <a href="https://www.shells.com/"
|
||||
title="Shells">Shells.com</a> for their monetary donation.
|
||||
Shells provides you with a 1-click, powerful virtual desktop environment,
|
||||
@@ -74,14 +63,6 @@
|
||||
<img src="{% static "shells_logo.png" %}"
|
||||
title="" alt="Shells logo"/></a>
|
||||
|
||||
<p>We would also like to thank <a href="https://uptimerobot.com/"
|
||||
title="UptimeRobot">UptimeRobot</a> for providing their monitoring service to us.
|
||||
UptimeRobot is a leading uptime monitoring service.</p>
|
||||
|
||||
<a href="https://uptimerobot.com/" title="UptimeRobot">
|
||||
<img src="{% static "uptimerobot_logo.png" %}"
|
||||
title="" alt="UptimeRobot logo"/></a>
|
||||
|
||||
<h3>Past donors</h3>
|
||||
|
||||
<p><a href="http://www.dotcom-monitor.com/" title="Dotcom-Monitor">Dotcom-Monitor</a> & <a href="https://www.loadview-testing.com/" title="LoadView">LoadView</a></p>
|
||||
|
@@ -77,13 +77,6 @@
|
||||
title="Arch Linux Netboot">Arch Linux Netboot</a></li>
|
||||
</ul>
|
||||
|
||||
<h3>Vagrant images</h3>
|
||||
|
||||
<p>Vagrant images for libvirt and virtualbox are available on the <a href="https://app.vagrantup.com/archlinux/boxes/archlinux">Vagrant Cloud</a>. You can bootstrap the image with the following commands:</p>
|
||||
<code>vagrant init archlinux/archlinux</code>
|
||||
<br/>
|
||||
<code>vagrant up</code>
|
||||
|
||||
<h3>Docker image</h3>
|
||||
|
||||
<p>The official Docker image is available on <a href="https://hub.docker.com/_/archlinux/">Docker Hub</a>. You can run the image with the following command:</p>
|
||||
@@ -148,7 +141,7 @@
|
||||
Alternatively, using GnuPG, download the signing key from WKD:
|
||||
<pre><code>$ gpg --auto-key-locate clear,wkd -v --locate-external-key {{ release.wkd_email }}</code></pre>
|
||||
Verify the signature:
|
||||
<pre><code>$ gpg --keyserver-options auto-key-retrieve --verify archlinux-{{ release.version }}-x86_64.iso.sig archlinux-{{ release.version }}-x86_64.iso</code></pre>
|
||||
<pre><code>$ gpg --verify archlinux-{{ release.version }}-x86_64.iso.sig archlinux-{{ release.version }}-x86_64.iso</code></pre>
|
||||
|
||||
{% cache 600 download-mirrors %}
|
||||
<div id="download-mirrors">
|
||||
|
@@ -133,8 +133,6 @@
|
||||
<h4>Support</h4>
|
||||
<ul>
|
||||
<li><a href="{% url 'page-donate' %}" title="Help support Arch Linux">Donate</a></li>
|
||||
<li><a href="https://www.unixstickers.com/tag/archlinux" title="Arch
|
||||
Linux stickers, t-shirts, hoodies, mugs, posters and pins">Products via Unixstickers</a></li>
|
||||
<li><a href="https://www.freewear.org/?page=list_items&org=Archlinux"
|
||||
title="T-shirts">T-shirts via Freewear</a></li>
|
||||
<li><a href="https://www.hellotux.com/arch"
|
||||
@@ -155,6 +153,7 @@
|
||||
<ul>
|
||||
<li><a href="https://wiki.archlinux.org/title/Getting_involved"
|
||||
title="Getting involved">Getting involved</a></li>
|
||||
<li><a href="https://devblog.archlinux.page" title="Dev Blog">Dev Blog</a></li>
|
||||
<li><a href="https://gitlab.archlinux.org/archlinux/"
|
||||
title="Official Arch projects (git)">Projects in Git</a></li>
|
||||
<li><a href="https://wiki.archlinux.org/title/DeveloperWiki"
|
||||
@@ -202,11 +201,6 @@
|
||||
title="" alt="Hetzner logo"/>
|
||||
</a>
|
||||
|
||||
<a href="https://www.privateinternetaccess.com/" title="Private Internet Access">
|
||||
<img src="{% static "pia_logo.png" %}"
|
||||
 title="" alt="Private Internet Access logo"/>
|
||||
</a>
|
||||
|
||||
<a href="https://icons8.com/" title="Icons8">
|
||||
<img src="{% static "icons8_logo.png" %}"
|
||||
title="" alt="Icons8 logo"/>
|
||||
|
@@ -2,6 +2,8 @@
|
||||
{% load static %}
|
||||
{% load package_extras %}
|
||||
{% load todolists %}
|
||||
{% load tz %}
|
||||
{% load humanize %}
|
||||
|
||||
{% block title %}Arch Linux - Todo: {{ list.name }}{% endblock %}
|
||||
|
||||
@@ -103,7 +105,15 @@
|
||||
<span class="{{ pkg.status_css_class }}">{{ pkg.get_status_display }}</span>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>{{ pkg.user|default:"" }}</td>
|
||||
<td>
|
||||
{% if pkg.user %}
|
||||
{% if user.is_authenticated %}
|
||||
{{ pkg.user }} <span title="{{ pkg.last_modified|timezone:user.userprofile.time_zone|date:"Y-m-d H:i T" }}">({{ pkg.last_modified|naturaltime }})</span>
|
||||
{% else %}
|
||||
{{ pkg.user }} <span title="{{ pkg.last_modified|date:"Y-m-d H:i T" }}">({{ pkg.last_modified|naturaltime }})</span>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
|
Reference in New Issue
Block a user