Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CONCD-552 Merge Main into Feature branch #2161

Merged
merged 67 commits into from
Oct 31, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
f3cfb59
Added ability to redownload all items from a bulk import. Added autom…
joshuastegmaier Aug 29, 2023
1ff500c
fix image tag env variable qualifier (#2076)
jkueloc Aug 29, 2023
a06c790
Added the ability to stack the viewer and transcription form vertical…
joshuastegmaier Aug 30, 2023
00c009c
Added automatic zoom when changing the transcription layout (#2079)
joshuastegmaier Aug 30, 2023
b853776
CONCD-467 backfill daily data (#2080)
rasarkar Sep 1, 2023
478c0b0
Added redirects from projects, items and assets that don't exist but …
joshuastegmaier Sep 5, 2023
8cf6149
Merge pull request #2082 from LibraryOfCongress/CONCD-521-jstegmaier-…
joshuastegmaier Sep 5, 2023
461e5fc
Merge pull request #2081 from LibraryOfCongress/CONCD-491-rsar-tutori…
joshuastegmaier Sep 5, 2023
e00e85d
Added new and updated text for the OCR help modal (#2087)
joshuastegmaier Sep 12, 2023
4740aa9
Removed ocr disclaimer (#2088)
joshuastegmaier Sep 12, 2023
bce88be
Use environments for deploy workflows (#2090)
jkueloc Sep 12, 2023
8e88d1c
Updated help button hover and pop-up text (#2091)
joshuastegmaier Sep 12, 2023
19a7187
Correct/additional changes to the nothing to transcribe help (#2093)
joshuastegmaier Sep 13, 2023
0c6e045
initial commit prod deploy (#2095)
jkueloc Sep 14, 2023
41d2c63
Update job name and add second ecs service (#2097)
jkueloc Sep 18, 2023
e54adfa
add apt-get update and dist-install to system package install step fo…
jkueloc Sep 18, 2023
027a9df
fix command permissions (#2099)
jkueloc Sep 18, 2023
c892172
update remaining workflow install system packages step (#2101)
jkueloc Sep 18, 2023
a79c8b8
Add a height of 489px when the screen height is greater than 768px wh…
joshuastegmaier Sep 18, 2023
06bf515
Explicitly set the height of the viewer column when switching layouts…
joshuastegmaier Sep 18, 2023
13c9821
Accessibility changes on the account profile page (#2106)
joshuastegmaier Sep 20, 2023
2c56226
Removed code that set height in vertical layout (#2107)
joshuastegmaier Sep 20, 2023
878b999
CONCD-536 Fix indenting in profile template (#2108)
rasarkar Sep 20, 2023
638f02f
CONCD-533 update workflow to run for specific events on specified bra…
jkueloc Sep 20, 2023
7387409
update system packages for codeQL workflow (#2110)
jkueloc Sep 21, 2023
7361d25
Separated sizes for vertical and horizontal layouts (#2112)
joshuastegmaier Sep 22, 2023
08a8d6b
Bump cryptography from 41.0.3 to 41.0.4 (#2111)
dependabot[bot] Sep 22, 2023
cc72f7c
capture CloudFormation Template drift prior to stack deletion (#2113)
jkueloc Sep 28, 2023
4058476
Moved and changed styling of OCR button (#2116)
joshuastegmaier Oct 3, 2023
d8c1474
Bump urllib3 from 1.26.16 to 1.26.17 (#2118)
dependabot[bot] Oct 4, 2023
f43cfb1
Bump pillow from 10.0.0 to 10.0.1 (#2121)
dependabot[bot] Oct 4, 2023
d0324c4
Bump yargs-parser and yargs (#2122)
dependabot[bot] Oct 4, 2023
5625cb5
Added text to ocr help link. (#2120)
joshuastegmaier Oct 4, 2023
0908aa5
Added a task to fix storage images that didn't get downloaded (#2123)
joshuastegmaier Oct 4, 2023
1894471
Style change to link text (#2124)
joshuastegmaier Oct 4, 2023
287a63b
Removed debugging break (#2127)
joshuastegmaier Oct 4, 2023
490bb46
Update locust version and code to support its use (#2126)
joshuastegmaier Oct 4, 2023
0799c1f
Added automatically submission of tags when a tag is added or removed…
joshuastegmaier Oct 11, 2023
b974282
Merge pull request #2128 from LibraryOfCongress/CONCD-549-jstegmaier-…
joshuastegmaier Oct 11, 2023
28c8a9a
Added validation for duplicate tags to the tag form
joshuastegmaier Oct 12, 2023
dacba09
Merge pull request #2129 from LibraryOfCongress/CONCD-550-jstegmaier-…
joshuastegmaier Oct 12, 2023
1239882
Added recent pages data to service letter view/template
joshuastegmaier Oct 13, 2023
45705d8
Added header to recent pages section of service letter
joshuastegmaier Oct 13, 2023
b851e3c
Merge pull request #2130 from LibraryOfCongress/CONCD-540-jstegmaier-…
joshuastegmaier Oct 13, 2023
13022df
Bump @babel/traverse from 7.12.12 to 7.23.2 (#2133)
dependabot[bot] Oct 17, 2023
f47f465
Updated tables styles on the service letter, added row numbers and ad…
joshuastegmaier Oct 17, 2023
3b69925
Updates to support storage_image not allowing empty values (#2136)
joshuastegmaier Oct 17, 2023
4b8cf26
Merge pull request #2139 from LibraryOfCongress/release
joshuastegmaier Oct 18, 2023
bf2ffd9
Added logging to asset status signal and transcription views
joshuastegmaier Oct 18, 2023
deda79e
Merge pull request #2141 from LibraryOfCongress/CONCD-570-jstegmaier-…
joshuastegmaier Oct 18, 2023
a68963b
Added styles to the page number
joshuastegmaier Oct 18, 2023
55516e9
Merge pull request #2142 from LibraryOfCongress/CONCD-571-jstegmaier-…
joshuastegmaier Oct 18, 2023
3dba963
Various code compliance changes and updates
joshuastegmaier Oct 18, 2023
2c6cb12
Merge pull request #2143 from LibraryOfCongress/CONCD-537-jstegmaier-…
joshuastegmaier Oct 18, 2023
891995a
Changed table header
joshuastegmaier Oct 19, 2023
fcc21bc
Merge pull request #2144 from LibraryOfCongress/CONCD-571-jstegmaier-…
joshuastegmaier Oct 19, 2023
e7650e4
Bump urllib3 from 1.26.17 to 1.26.18 (#2140)
dependabot[bot] Oct 23, 2023
32710ab
Modified service letter text (#2148)
joshuastegmaier Oct 24, 2023
e36bcd5
CONCD-546 Allow users to add first/ last name data via profile page (…
rasarkar Oct 24, 2023
f9c3871
CONCD-565 Add user name to service letter when one exists (#2151)
rasarkar Oct 25, 2023
6cab59a
Added missing sentence to service letter (#2150)
joshuastegmaier Oct 25, 2023
84394ec
CONCD-526 update data in the site's daily review actions field (#2153)
rasarkar Oct 26, 2023
3c73a78
CONCD-564 Initial tweaks (#2154)
rasarkar Oct 27, 2023
dee9da5
Bump werkzeug from 3.0.0 to 3.0.1 (#2152)
dependabot[bot] Oct 30, 2023
3612993
CONCD-575 Rename Recent Pages "Campaign" column (#2156)
rasarkar Oct 30, 2023
247ac74
CONCD-552 Merge Main into Feature branch (WiP)
rasarkar Oct 30, 2023
300307b
CONCD-552 let's try this again
rasarkar Oct 31, 2023
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
18 changes: 9 additions & 9 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,25 +1,25 @@
exclude: '.*/vendor/.*'
repos:
- repo: https://github.com/adamchainz/django-upgrade
rev: 1.12.0
rev: 1.15.0
hooks:
- id: django-upgrade
args: [--target-version, '3.2']
- repo: https://github.com/charliermarsh/ruff-pre-commit
rev: v0.0.261
rev: v0.1.0
hooks:
- id: ruff
args: [--fix, --exit-non-zero-on-fix]
- repo: https://github.com/rtts/djhtml
rev: 'v1.5.2'
rev: '3.0.6'
hooks:
- id: djhtml
- repo: https://github.com/ambv/black
rev: 23.3.0
rev: 23.10.0
hooks:
- id: black
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
rev: v4.5.0
hooks:
- id: check-added-large-files
args: ['--maxkb=128']
Expand Down Expand Up @@ -49,12 +49,12 @@ repos:
exclude: fixtures/.*
- id: trailing-whitespace
- repo: https://github.com/pre-commit/mirrors-prettier
rev: v2.7.1
rev: v3.0.3
hooks:
- id: prettier
files: \.(css|less|scss|ts|tsx|graphql|gql|json|js|jsx|md|yaml|yml)$
- repo: https://github.com/pre-commit/mirrors-eslint
rev: v8.32.0
rev: v8.51.0
hooks:
- id: eslint
additional_dependencies:
Expand All @@ -72,11 +72,11 @@ repos:
- 'stylelint-config-recommended@^3.0.0'
- 'stylelint-value-no-unknown-custom-properties@^4.0.0'
- repo: https://github.com/aws-cloudformation/cfn-python-lint
rev: v0.72.9
rev: v0.82.2
hooks:
- id: cfn-python-lint
files: cloudformation/.*\.(json|yml|yaml)$
- repo: https://github.com/PyCQA/bandit
rev: 1.7.4
rev: 1.7.5
hooks:
- id: bandit
1 change: 1 addition & 0 deletions Pipfile
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ weasyprint = "*"
tesseract = "==0.1.3"
pytesseract = "*"
django-redis = "*"
locust = "*"

[dev-packages]
invoke = "*"
Expand Down
1,111 changes: 742 additions & 369 deletions Pipfile.lock

Large diffs are not rendered by default.

8 changes: 6 additions & 2 deletions cloudformation/add_cloudflare_ips_to_sgs.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,12 @@

EC2_CLIENT = boto3.client("ec2")

CLOUDFLARE_IPV4 = requests.get("https://www.cloudflare.com/ips-v4").text.splitlines()
CLOUDFLARE_IPV6 = requests.get("https://www.cloudflare.com/ips-v6").text.splitlines()
CLOUDFLARE_IPV4 = requests.get(
"https://www.cloudflare.com/ips-v4", timeout=30
).text.splitlines()
CLOUDFLARE_IPV6 = requests.get(
"https://www.cloudflare.com/ips-v6", timeout=30
).text.splitlines()


def add_ingess_rules_for_group(sg_id, existing_permissions):
Expand Down
5 changes: 5 additions & 0 deletions concordia/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,11 @@ def confirm_login_allowed(self, user):
raise forms.ValidationError(inactive_message, code="inactive")


class UserNameForm(forms.Form):
first_name = forms.CharField(label="", required=False)
last_name = forms.CharField(label="", required=False)


class UserProfileForm(forms.Form):
email = forms.EmailField(label="", required=True)

Expand Down
4 changes: 2 additions & 2 deletions concordia/management/commands/import_site_reports.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ def handle(self, *, csv_file, **options):
reader = csv.reader(csv_file, delimiter=",")
header = reader.__next__()
for row in reader:
site_report_data = {key: value for key, value in zip(header, row)}
site_report = dict()
site_report_data = dict(zip(header, row, strict=True))
site_report = {}

for key in site_report_data:
if site_report_data[key] != "":
Expand Down
21 changes: 21 additions & 0 deletions concordia/migrations/0085_auto_20231016_1432.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Generated by Django 3.2.22 on 2023-10-16 18:32

from django.db import migrations, models

import concordia.models


class Migration(migrations.Migration):
dependencies = [
("concordia", "0084_rename_review_actions_sitereport_daily_review_actions"),
]

operations = [
migrations.AlterField(
model_name="asset",
name="storage_image",
field=models.ImageField(
max_length=255, upload_to=concordia.models.Asset.get_storage_path
),
),
]
20 changes: 0 additions & 20 deletions concordia/migrations/0087_auto_20231016_1056.py

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Generated by Django 3.2.20 on 2023-10-31 17:04

from django.db import migrations


class Migration(migrations.Migration):
dependencies = [
("concordia", "0085_auto_20231016_1432"),
("concordia", "0086_auto_20230911_1112"),
]

operations = []
35 changes: 20 additions & 15 deletions concordia/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -440,6 +440,17 @@ def add_contribution_counts(self):


class Asset(MetricsModelMixin("asset"), models.Model):
def get_storage_path(self, filename):
s3_relative_path = "/".join(
[
self.item.project.campaign.slug,
self.item.project.slug,
self.item.item_id,
]
)
filename = self.media_url
return os.path.join(s3_relative_path, filename)

objects = AssetQuerySet.as_manager()

item = models.ForeignKey(Item, on_delete=models.CASCADE)
Expand Down Expand Up @@ -478,6 +489,8 @@ class Asset(MetricsModelMixin("asset"), models.Model):

difficulty = models.PositiveIntegerField(default=0, blank=True, null=True)

storage_image = models.ImageField(upload_to=get_storage_path, max_length=255)

class Meta:
unique_together = (("slug", "item"),)
indexes = [
Expand All @@ -491,6 +504,13 @@ class Meta:
def __str__(self):
return self.title

def save(self, *args, **kwargs):
# This ensures all 'required' fields really are required
# even when creating objects programmatically. Particularly,
# we want to make sure we don't end up with an empty storage_image
self.full_clean()
super().save(*args, **kwargs)

def get_absolute_url(self):
return reverse(
"transcriptions:asset-detail",
Expand All @@ -505,21 +525,6 @@ def get_absolute_url(self):
def latest_transcription(self):
return self.transcription_set.order_by("-pk").first()

def get_storage_path(self, filename):
s3_relative_path = "/".join(
[
self.item.project.campaign.slug,
self.item.project.slug,
self.item.item_id,
]
)
filename = self.media_url
return os.path.join(s3_relative_path, filename)

storage_image = models.ImageField(
upload_to=get_storage_path, max_length=255, blank=True, null=True
)

def get_ocr_transcript(self):
return pytesseract.image_to_string(Image.open(self.storage_image))

Expand Down
8 changes: 5 additions & 3 deletions concordia/secrets.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,13 @@ def get_secret(secret_name):
get_secret_value_response = client.get_secret_value(SecretId=secret_name)
except ClientError as e:
if e.response["Error"]["Code"] == "ResourceNotFoundException":
raise Exception("The requested secret " + secret_name + " was not found")
raise Exception(
"The requested secret " + secret_name + " was not found"
) from e
elif e.response["Error"]["Code"] == "InvalidRequestException":
raise Exception("The request was invalid due to:", e)
raise Exception("The request was invalid due to:", e) from e
elif e.response["Error"]["Code"] == "InvalidParameterException":
raise Exception("The request had invalid params:", e)
raise Exception("The request had invalid params:", e) from e
else:
# Decrypted secret using the associated KMS CMK Depending on whether the
# secret was a string or binary, one of these fields will be populated
Expand Down
20 changes: 16 additions & 4 deletions concordia/signals/handlers.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ def add_user_to_newsletter(sender, user, request, **kwargs):

@receiver(post_save, sender=Transcription)
def update_asset_status(sender, *, instance, **kwargs):
logger.info("update_asset_status for %s", instance.id)
new_status = TranscriptionStatus.IN_PROGRESS

if instance.rejected:
Expand All @@ -96,11 +97,22 @@ def update_asset_status(sender, *, instance, **kwargs):
elif instance.submitted:
new_status = TranscriptionStatus.SUBMITTED

instance.asset.transcription_status = new_status
instance.asset.full_clean()
instance.asset.save()
asset = instance.asset
logger.info(
"Updating asset status for %s (%s) from %s to %s",
asset,
asset.id,
asset.transcription_status,
new_status,
)

asset.transcription_status = new_status
asset.full_clean()
asset.save()

logger.info("Status for %s (%s) updated", asset, asset.id)

calculate_difficulty_values(Asset.objects.filter(pk=instance.asset.pk))
calculate_difficulty_values(Asset.objects.filter(pk=asset.pk))


@receiver(post_save, sender=Asset)
Expand Down
3 changes: 0 additions & 3 deletions concordia/signals/signals.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
import django.dispatch

# signals notify channels of asset reservation - kwargs from handlers
# ["asset_pk", "reservation_token"]

reservation_obtained = django.dispatch.Signal()

reservation_released = django.dispatch.Signal()
22 changes: 10 additions & 12 deletions concordia/static/admin/editor-preview.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,17 +26,17 @@
var frameDocument = this.contentDocument;
frameDocument.open();
frameDocument.write(
'<html><body><main>Loading…</main></body></html>'
'<html><body><main>Loading…</main></body></html>',
);
frameDocument.close();

var previewTemplate = document.querySelector(
'template#preview-head'
'template#preview-head',
).content;

previewTemplate.childNodes.forEach((node) => {
frameDocument.head.appendChild(
frameDocument.importNode(node, true)
frameDocument.head.append(
frameDocument.importNode(node, true),
);
});

Expand Down Expand Up @@ -90,7 +90,7 @@
$formRow.find('.errornote').remove();

editorLineWidgets.forEach((widget) =>
editor.removeLineWidget(widget)
editor.removeLineWidget(widget),
);

try {
Expand All @@ -110,21 +110,19 @@
lineWarning.style.whiteSpace = 'nowrap';
lineWarning.style.overflow = 'hidden';

var icon = lineWarning.appendChild(
document.createElement('span')
var icon = lineWarning.append(
document.createElement('span'),
);
icon.style.marginRight = '1rem';
icon.innerHTML = '⚠️';
lineWarning.appendChild(
document.createTextNode(error.message)
);
lineWarning.append(document.createTextNode(error.message));

editorLineWidgets.push(
editor.addLineWidget(
error.loc.start.line - 1,
lineWarning,
{coverGutter: false, noHScroll: true}
)
{coverGutter: false, noHScroll: true},
),
);
}
});
Expand Down
Loading