Skip to content

Commit 48f4f4e

Browse files
committed
WIP: Submission logic refactor
closes #3947
1 parent af317a2 commit 48f4f4e

File tree

6 files changed

+22
-59
lines changed

6 files changed

+22
-59
lines changed

econplayground/api/serializers.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -231,9 +231,7 @@ class SubmissionSerializer(serializers.ModelSerializer):
231231
class Meta:
232232
model = Submission
233233
fields = (
234-
'graph', 'score',
235-
'feedback_fulfilled', 'feedback_unfulfilled',
236-
'created_at',
234+
'graph', 'score', 'created_at',
237235
)
238236

239237

econplayground/api/tests/test_views.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -462,16 +462,12 @@ def test_create(self):
462462

463463
response = self.client.post('/api/submissions/', {
464464
'graph': self.g2.pk,
465-
'feedback_unfulfilled': 'a;;b',
466-
'feedback_fulfilled': 'success!',
467465
'score': 0.6,
468466
})
469467
s = Submission.objects.last()
470468
self.assertEqual(response.status_code, 201)
471469
self.assertEqual(Submission.objects.count(), 2)
472470
self.assertEqual(s.score, Decimal('0.6'))
473-
self.assertEqual(s.feedback_unfulfilled, 'a;;b')
474-
self.assertEqual(s.feedback_fulfilled, 'success!')
475471

476472
def test_create_dup_fail(self):
477473
response = self.client.post('/api/submissions/', {
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Generated by Django 5.2.1 on 2025-05-29 20:06
2+
3+
from django.db import migrations
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('main', '0127_cohort_context_id_cohort_deployment_id'),
10+
]
11+
12+
operations = [
13+
migrations.RemoveField(
14+
model_name='submission',
15+
name='feedback_fulfilled',
16+
),
17+
migrations.RemoveField(
18+
model_name='submission',
19+
name='feedback_unfulfilled',
20+
),
21+
]

econplayground/main/models.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -550,8 +550,5 @@ class Meta:
550550
# Corresponds to the line_x_x_score
551551
score = models.DecimalField(max_digits=8, decimal_places=4, default=0)
552552

553-
feedback_fulfilled = models.TextField(blank=True, default='')
554-
feedback_unfulfilled = models.TextField(blank=True, default='')
555-
556553
created_at = models.DateTimeField(auto_now_add=True)
557554
updated_at = models.DateTimeField(auto_now=True)

econplayground/main/tests/factories.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,6 @@ class Meta:
111111

112112
graph = factory.SubFactory(GraphFactory)
113113
user = factory.SubFactory(UserFactory)
114-
feedback_fulfilled = fuzzy.FuzzyText()
115-
feedback_unfulfilled = fuzzy.FuzzyText()
116114
score = fuzzy.FuzzyDecimal(0.0, 1.0)
117115

118116

media/js/src/GraphViewer.jsx

Lines changed: 0 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -398,40 +398,6 @@ export default class GraphViewer extends React.Component {
398398
</div>
399399
);
400400
}
401-
// When the submission is loaded by the Viewer, see if
402-
// this.state.currentFeedback should be updated.
403-
componentDidUpdate(prevProps) {
404-
if (prevProps.submission !== this.props.submission) {
405-
this.loadFeedback(
406-
this.props.submission.feedback_unfulfilled,
407-
this.props.submission.feedback_fulfilled);
408-
}
409-
}
410-
loadFeedback(unfulfilledFeedback, fulfilledFeedback) {
411-
const currentFeedback = [];
412-
413-
unfulfilledFeedback = unfulfilledFeedback.split(';;');
414-
fulfilledFeedback = fulfilledFeedback.split(';;');
415-
416-
unfulfilledFeedback.forEach(e => {
417-
if (e) {
418-
currentFeedback.push({
419-
feedback: e,
420-
fulfilled: false
421-
});
422-
}
423-
});
424-
fulfilledFeedback.forEach(e => {
425-
if (e) {
426-
currentFeedback.push({
427-
feedback: e,
428-
fulfilled: true
429-
});
430-
}
431-
});
432-
433-
this.setState({currentFeedback: currentFeedback});
434-
}
435401
handleSubmit(event) {
436402
event.preventDefault();
437403
const assessment = new Assessment(this.props.assessment);
@@ -448,21 +414,8 @@ export default class GraphViewer extends React.Component {
448414

449415
this.setState({score: score});
450416

451-
// Save the user's feedback on their Submission object to
452-
// make it persistent.
453-
const fulfilledFeedback = responses
454-
.filter(x => x.fulfilled)
455-
.map(x => x.feedback)
456-
.join(';;');
457-
const unfulfilledFeedback = responses
458-
.filter(x => !x.fulfilled)
459-
.map(x => x.feedback)
460-
.join(';;');
461-
462417
getOrCreateSubmission({
463418
graph: this.props.gId,
464-
feedback_fulfilled: fulfilledFeedback,
465-
feedback_unfulfilled: unfulfilledFeedback,
466419
score: score
467420
}).then(function() {
468421
form.submit();

0 commit comments

Comments
 (0)