diff --git a/app/app/settings.py b/app/app/settings.py
index e83ab463597..a35c2809356 100644
--- a/app/app/settings.py
+++ b/app/app/settings.py
@@ -895,7 +895,7 @@ def callback(request):
# Match Payouts contract
MATCH_PAYOUTS_ABI = '[ { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" }, { "internalType": "address", "name": "_funder", "type": "address" }, { "internalType": "contract IERC20", "name": "_dai", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [], "name": "Finalized", "type": "event" }, { "anonymous": false, "inputs": [], "name": "Funded", "type": "event" }, { "anonymous": false, "inputs": [], "name": "FundingWithdrawn", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "PayoutAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "PayoutClaimed", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "_recipient", "type": "address" } ], "name": "claimMatchPayout", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "dai", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "enablePayouts", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "finalize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "funder", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "payouts", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "internalType": "struct MatchPayouts.PayoutFields[]", "name": "_payouts", "type": "tuple[]" } ], "name": "setPayouts", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "state", "outputs": [ { "internalType": "enum MatchPayouts.State", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "withdrawFunding", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]'
-MATCH_PAYOUTS_ADDRESS = '0x7cD181f83D74932156089D60dc0AFd976cFd6C4e'
+MATCH_PAYOUTS_ADDRESS = '0x0ebd2e2130b73107d0c45ff2e16c93e7e2e10e3a'
MATCH_PAYOUTS_ROUND_NUM = 11
# BulkCheckout contract
diff --git a/app/assets/v2/images/avatar3d/SSShiine.svg b/app/assets/v2/images/avatar3d/SSShiine.svg
new file mode 100644
index 00000000000..6aa947682f5
--- /dev/null
+++ b/app/assets/v2/images/avatar3d/SSShiine.svg
@@ -0,0 +1,589 @@
+
+
\ No newline at end of file
diff --git a/app/assets/v2/images/avatar3d/artipedia.svg b/app/assets/v2/images/avatar3d/artipedia.svg
new file mode 100644
index 00000000000..9ad8ffe7023
--- /dev/null
+++ b/app/assets/v2/images/avatar3d/artipedia.svg
@@ -0,0 +1,12514 @@
+
+
\ No newline at end of file
diff --git a/app/assets/v2/images/avatar3d/avrilapril.svg b/app/assets/v2/images/avatar3d/avrilapril.svg
new file mode 100644
index 00000000000..070ad0f1f47
--- /dev/null
+++ b/app/assets/v2/images/avatar3d/avrilapril.svg
@@ -0,0 +1,3002 @@
+
+
+
diff --git a/app/assets/v2/images/avatar3d/azizyano.svg b/app/assets/v2/images/avatar3d/azizyano.svg
new file mode 100644
index 00000000000..4456fd0ce0b
--- /dev/null
+++ b/app/assets/v2/images/avatar3d/azizyano.svg
@@ -0,0 +1,1292 @@
+
+
\ No newline at end of file
diff --git a/app/assets/v2/images/avatar3d/bruno-tandon.svg b/app/assets/v2/images/avatar3d/bruno-tandon.svg
new file mode 100644
index 00000000000..d0bff887c30
--- /dev/null
+++ b/app/assets/v2/images/avatar3d/bruno-tandon.svg
@@ -0,0 +1,1679 @@
+
+
\ No newline at end of file
diff --git a/app/assets/v2/images/avatar3d/eknobl.svg b/app/assets/v2/images/avatar3d/eknobl.svg
new file mode 100644
index 00000000000..9c864d8ee74
--- /dev/null
+++ b/app/assets/v2/images/avatar3d/eknobl.svg
@@ -0,0 +1,18424 @@
+
+
+
diff --git a/app/assets/v2/images/avatar3d/hamzaghz.svg b/app/assets/v2/images/avatar3d/hamzaghz.svg
new file mode 100644
index 00000000000..6b6f0499b8a
--- /dev/null
+++ b/app/assets/v2/images/avatar3d/hamzaghz.svg
@@ -0,0 +1,18478 @@
+
+
\ No newline at end of file
diff --git a/app/assets/v2/images/avatar3d/hasssan04.svg b/app/assets/v2/images/avatar3d/hasssan04.svg
new file mode 100644
index 00000000000..9cc8034dec5
--- /dev/null
+++ b/app/assets/v2/images/avatar3d/hasssan04.svg
@@ -0,0 +1,961 @@
+
+
\ No newline at end of file
diff --git a/app/assets/v2/images/avatar3d/lkh.svg b/app/assets/v2/images/avatar3d/lkh.svg
new file mode 100644
index 00000000000..b2943f8770e
--- /dev/null
+++ b/app/assets/v2/images/avatar3d/lkh.svg
@@ -0,0 +1,6765 @@
+
+
\ No newline at end of file
diff --git a/app/assets/v2/images/avatar3d/maystro4.svg b/app/assets/v2/images/avatar3d/maystro4.svg
new file mode 100644
index 00000000000..bb7b4a03361
--- /dev/null
+++ b/app/assets/v2/images/avatar3d/maystro4.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/assets/v2/images/avatar3d/merit-tech.svg b/app/assets/v2/images/avatar3d/merit-tech.svg
new file mode 100644
index 00000000000..3202e2f96c1
--- /dev/null
+++ b/app/assets/v2/images/avatar3d/merit-tech.svg
@@ -0,0 +1,5294 @@
+
+
\ No newline at end of file
diff --git a/app/assets/v2/images/avatar3d/nanshulot.svg b/app/assets/v2/images/avatar3d/nanshulot.svg
new file mode 100644
index 00000000000..4228f76b305
--- /dev/null
+++ b/app/assets/v2/images/avatar3d/nanshulot.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/assets/v2/images/avatar3d/petushka1.svg b/app/assets/v2/images/avatar3d/petushka1.svg
new file mode 100644
index 00000000000..2055314ca9d
--- /dev/null
+++ b/app/assets/v2/images/avatar3d/petushka1.svg
@@ -0,0 +1,2190 @@
+
+
+
diff --git a/app/assets/v2/images/avatar3d/riyasoganii.svg b/app/assets/v2/images/avatar3d/riyasoganii.svg
new file mode 100644
index 00000000000..42c71ab0290
--- /dev/null
+++ b/app/assets/v2/images/avatar3d/riyasoganii.svg
@@ -0,0 +1,480 @@
+
+
\ No newline at end of file
diff --git a/app/assets/v2/images/avatar3d/wahyu243.svg b/app/assets/v2/images/avatar3d/wahyu243.svg
new file mode 100644
index 00000000000..0878eef07e7
--- /dev/null
+++ b/app/assets/v2/images/avatar3d/wahyu243.svg
@@ -0,0 +1,3116 @@
+
+
\ No newline at end of file
diff --git a/app/assets/v2/images/avatar3d/writeprovidence.svg b/app/assets/v2/images/avatar3d/writeprovidence.svg
new file mode 100644
index 00000000000..47a96d87bf0
--- /dev/null
+++ b/app/assets/v2/images/avatar3d/writeprovidence.svg
@@ -0,0 +1,107822 @@
+
+
+
diff --git a/app/assets/v2/images/avatar3d/zak102.svg b/app/assets/v2/images/avatar3d/zak102.svg
new file mode 100644
index 00000000000..2ccdba36c9d
--- /dev/null
+++ b/app/assets/v2/images/avatar3d/zak102.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/avatar/views_3d.py b/app/avatar/views_3d.py
index 8d630373950..4038746c09c 100644
--- a/app/avatar/views_3d.py
+++ b/app/avatar/views_3d.py
@@ -771,6 +771,18 @@ def get_avatar_attrs(theme, key):
'path': 'assets/v2/images/avatar3d/joker.svg',
},
}
+ new_avatars = ['SSShiine','avrilapril','eknobl','lkh','nanshulot','wahyu243','zak102','artipedia','azizyano','hasssan04','maystro4','riyasoganii','writeprovidence', 'petushka1', 'merit-tech', 'hamzaghz', 'bruno-tandon', 'KayZou', 'the-hack-god', 'old-monger', 'virtual-face', 'art-maniac', 'vinhbhn', 'masket-bask']
+ for _key in new_avatars:
+ avatar_attrs[_key] = {
+ 'preview_viewbox': {
+ },
+ 'skin_tones': [],
+ 'hair_tones': [],
+ 'skin_tones': [],
+ 'tone_maps': [],
+ 'path': f'assets/v2/images/avatar3d/{_key}.svg',
+ }
+
return avatar_attrs.get(theme, {}).get(key, {})
diff --git a/app/dashboard/models.py b/app/dashboard/models.py
index 0d052a3f9fc..b650c0adae5 100644
--- a/app/dashboard/models.py
+++ b/app/dashboard/models.py
@@ -468,6 +468,10 @@ def handle_event(self, event):
self.bounty_state = next_state
self.save()
+ @property
+ def interested_count(self):
+ return self.interested.count()
+
@property
def is_bounties_network(self):
if self.web3_type == 'bounties_network':
@@ -4956,10 +4960,6 @@ def coinbase_short(self):
class SearchHistory(SuperModel):
"""Define the structure of a Search History object."""
- class Meta:
- """Define metadata associated with SearchHistory."""
-
- verbose_name_plural = 'Search History'
search_type = models.CharField(max_length=50, db_index=True)
user = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True)
@@ -4967,9 +4967,9 @@ class Meta:
ip_address = models.GenericIPAddressField(blank=True, null=True, db_index=True)
class Meta:
- """Define metadata associated with Bounty."""
+ """Define metadata associated with SearchHistory."""
- verbose_name_plural = 'Bounties'
+ verbose_name_plural = 'Search History'
index_together = [
["data", "search_type", "ip_address"],
["data", "search_type", "ip_address", "user"],
diff --git a/app/dashboard/router.py b/app/dashboard/router.py
index 8a5a80630e4..8ffa6c05040 100644
--- a/app/dashboard/router.py
+++ b/app/dashboard/router.py
@@ -306,9 +306,9 @@ class Meta:
"""Define the bounty serializer metadata."""
model = Bounty
fields = (
- 'pk', 'url', 'title', 'experience_level', 'status', 'fulfillment_accepted_on', 'event',
+ 'pk', 'url', 'title', 'github_url', 'experience_level', 'status', 'fulfillment_accepted_on', 'event',
'fulfillment_started_on', 'fulfillment_submitted_on', 'canceled_on', 'web3_created', 'bounty_owner_address',
- 'avatar_url', 'network', 'standard_bounties_id', 'github_org_name', 'interested', 'token_name', 'value_in_usdt',
+ 'avatar_url', 'network', 'standard_bounties_id', 'github_org_name', 'interested_count', 'token_name', 'value_in_usdt',
'keywords', 'value_in_token', 'project_type', 'is_open', 'expires_date', 'latest_activity', 'token_address',
'bounty_categories'
)
@@ -326,8 +326,7 @@ class Meta:
class BountiesViewSet(viewsets.ModelViewSet):
"""Handle Bounties view behavior."""
- queryset = Bounty.objects.prefetch_related('fulfillments', 'interested', 'interested__profile', 'activities', 'event') \
- .all().order_by('-web3_created')
+ queryset = Bounty.objects.order_by('-web3_created')
serializer_class = BountySerializer
filter_backends = (django_filters.rest_framework.DjangoFilterBackend,)
@@ -401,8 +400,8 @@ def get_queryset(self):
# filter by standard_bounties_id
if 'standard_bounties_id__in' in param_keys:
- statuses = self.request.query_params.get('standard_bounties_id__in').split(',')
- queryset = queryset.filter(standard_bounties_id__in=statuses)
+ stdbounties = self.request.query_params.get('standard_bounties_id__in').split(',')
+ queryset = queryset.filter(standard_bounties_id__in=stdbounties)
# filter by statuses
if 'status__in' in param_keys:
@@ -601,7 +600,7 @@ def get_queryset(self):
if 'github_url' in param_keys:
url = self.request.query_params.get('github_url')
- queryset = queryset.filter(github_url__iexact=url)
+ queryset = queryset.filter(github_url=url.lower())
queryset = queryset.order_by('-web3_created')
queryset = queryset.distinct()
diff --git a/app/dashboard/templates/bounty/details2.html b/app/dashboard/templates/bounty/details2.html
index 9b007cb0433..83b25be705a 100644
--- a/app/dashboard/templates/bounty/details2.html
+++ b/app/dashboard/templates/bounty/details2.html
@@ -60,7 +60,7 @@
-
+ [[ bounty.title ]]
@@ -536,7 +536,7 @@
diff --git a/app/retail/templates/shared/result.html b/app/retail/templates/shared/result.html
index 7da5ee287f9..309b3fbf0dc 100644
--- a/app/retail/templates/shared/result.html
+++ b/app/retail/templates/shared/result.html
@@ -47,8 +47,8 @@
[[if github_comments]]
[[>github_comments]] {% trans 'Comments' %}
[[/if]]
- [[if interested.length]]
- [[>interested.length]] {% trans 'Applicants' %}
+ [[if interested_count]]
+ [[>interested_count]] {% trans 'Applicants' %}
[[else]]
0 {% trans 'Applicants' %}
[[/if]]